This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1259

Other Parts Discussed in Thread: ADS1259

Hi ,

I am interfacing the ADS 1259 chip on the ADS 1259 EVM with a C2000 microcontroller ,

How ever i am getting different data when i read the device registers 

When i send 0x2000 followed by 0x0000 to read config  register 0 , i am receiving numbers like 0x4CFF , 0x4E00 in succesive read iterations 

Is the ADS chip on the EVM pre configured ?? 

To write to registers i am sending  0x40RR 0x00NN 0xDDDD 0xDDDD

To read from registers i am sending 0x20RR 0x00NN followed by 0x0000 to provide clock while ADS transmits data to be rwad

Where RR= Reg Addr , NN = ( numbers of registers to read or write -1) & DDDD  = Data to write

What am i doing wrong ? , the SPI communication is noise free (verified on DSO)

Please help 

Regards

Abhay

  • Hi Abhay,


    Here are the answers your questions:

    Abhay Kothari1 said:
    When i send 0x2000 followed by 0x0000 to read config  register 0 , i am receiving numbers like 0x4CFF , 0x4E00 in succesive read iterations 

    When reading or writing to the ADS1259 registers, make sure you first send the SDATAC command (0x11).

    The next byte, "0x2000", indicates that you are reading only the CONFIG0 register (this is correct). Therefore, you would only need to follow it with "0x00" to retrieve the 8-bit register value.

    Abhay Kothari1 said:
    Is the ADS chip on the EVM pre configured ?? 

    After a power-up or reset, the ADS1259 registers will initial to a default value as shown here:

    Abhay Kothari1 said:

    To write to registers i am sending  0x40RR 0x00NN 0xDDDD 0xDDDD

    To read from registers i am sending 0x20RR 0x00NN followed by 0x0000 to provide clock while ADS transmits data to be rwad

    Where RR= Reg Addr , NN = ( numbers of registers to read or write -1) & DDDD  = Data to write

    I see where you are getting confused. The ADS1259 datasheet defines the WRITE command as "0100 rrrr (40h + 0000 rrrr)". This is only an 8-bit command (0x4R), not a 16-bit command (0x40RR).

    Every data transaction is 8-bits; however, READ and WRITE commands require a second op-code byte.

    • The first 8-bit opcode defines the READ/Write command and the address to start.
    • The second 8-bit op-code defines how many byte to read or write.
    • The following bytes are each data reads or writes and should correspond on the number of bytes indicated in the second op-code!

    So to read a single register, you would send: 0x20, 0x00*, 0x00**.
    To write to a single register, you would send: 0x40, 0x00*, 0xDD**.

    * = for multiple register transactions, replace "0x00" with "0x0N"
    ** = this is where you read out or write data to the ADS1259. Therefore, if N > 0, then you need to send additional bytes.

    I hope that helps!

    Best Regards,
    Chris