Post Go back to editing

AD7381-4 Interface Problem.

Category: Software
Product Number: AD7381-4

Hello to everyone,

I have strange outputs when communicating with AD7381-4 and am hoping that someone can give me some tips.

First I would provide some basic information:

The data frame contains 16 bits. The MSB determines a read or write operation, followed by 3 bits of the register address. The rest 12 bits are the data to be written when the operation is a write. Details are in the following picture:

There are 5 registers available, the addresses are from 0x1 to 0x5. Details are in the following picture:

To read the registers, send a read command first, then send another command to get the register content.

Now here is my problem:

I use NRF52840 DK board to communicate with it:

The function spi sends its input to the ADC and display the received data:

When I send read commands, there is no useful data, but when I send write commands, I receive fix data:

Read register 0x1 ->  receive random numbers.

Read registers other than 0x1 -> receive 0x0.

Write anything to register 0x1 -> receive 0x800 (preset content of register 0x4).

Write anything to register 0x2 -> receive 0x7ff (preset content of register 0x5).

Write anything to register 0x4 or 0x5 -> receive 0x220.

I think the timing specification of my NRF MCU is correct, since I can somehow get fix outputs. However,  I still can't control the ADC.

So can anyone please share some tips?

Sincerely,

Yongkun

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.