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.

ADS1298 - ID_Register

Other Parts Discussed in Thread: ADS1298, ADS1198, ADS1294, ADS1296

Hello,

i would like to read out the ID_Register of the ADS1298 and check the DEV_ID Bits.

Your wrote at page 40 of the datasheet the bit table and say that the bit 2 and 3 are the DEV_ID Bits.

In the next few lines you say the following:

"Bits[2:0] Factory-programmed device identification bits (read-only)"

Whats the right answer?

Thank you very much for your help and sorry for my english ; )

  • Hi Kai,

    The device ID bit is bit 2, a '0' represents the ADS1298 and a '1' represents the ADS1198.  Bits 1 and 0 determine the channel count.  Bit 3 in the bit table is an error, we'll get that cleared up as soon as possible.  Thank you for pointing that out.

  • Hi Tom,

    thank you for your fast response. But there is still a question regarding the Bits 1 and 0 which representing the channel count. When i read these bits i will get "001 (Bit[2:0])" which means: ADS1298 with how many channels?! I think the following datasheet table (page 40) won't be correct, right?!

    These bits indicate the device version.

    000 = ADS1294; 24-bit resolution, 4 channels

    001 = ADS1296; 24-bit resolution, 6 channels (these code bits were received)

    010 = ADS1298; 24-bit resolution, 8 channels (these code bits were expected)

     

     

    Thank you very much and good night from germany : )

    Kai

  • Kai -

    Let me re-phrase my answer - a '0' in bit two represents the ADS129x, a '1' in bit two represents the ADS119x - bits one and zero decide the channel count and the difference from the ADS1x94, ADS1x96 and ADS1x98.  Does that help clarify? 

  • Hi Tom,

    i'm sorry : )

    I understand the meaning of Bit 2 ('0' for ADS129x and '1' for ADS119x). It match with my measurement (Bit2 = 0 for ADS1298).

    But the last two bits (Bit 1 and Bit 0) are not clear. Maybe you can explain it with a truth-table?!

    Bit1 Bit0 Comment
    0 0 x Channels
    0 1 x Channels
    1 0 x Channels
    1 1 x Channels

    The discription on page 42 doesn't match with my measurment, which says (Bit1 = 0 and Bit0 = 1).

     

  • OK -

    If I understand correctly, you have an ADS1298 mounted on the board, but it is reporting itself as an ADS1296?  The truth table is there on page 42 and it is correct.  Please review the power-up sequencing description on page 69 of the current ADS1298 datasheet.  If you power and reset the device as described in that section of the datasheet, you should not have any issues with the device misrepresenting itself. 

  • OK -

    You understand correctly. So maybe the mistake would be in my power-up routine. This will lead us to my next question regarding the power-up sequence.

    At page 69 you wrote "Before device power-up, all digital and analog inputs must be low". How can i do this?

    All the timing requirements of page 69 would be observed.

    Let me short explain my system-environment:

    ATmega8 connected with ADS1298 over SPI-Interface (used pins: SCLK, DIN, DOUT, !RESET)

    ADS1298 CLK_SEL Pin permanently tied low (hardware wired).

    ADS1298 !PWDN Pin permanently tied low (hardware wired).

    ADS1298 !CS Pin permanently tied low (hardware wired).

     

    Thank you very much!

    Kai

  • Hi Kai,

    If you have the ability to control /CS through a GPIO, that would be the preferred implementation.  If the SPI interface gets out of sync for some reason (glitch on the SCLK for instance) the only way to recover without completely powering down or resetting the chip to its default conditions is to toggle the /CS input.  This allows the serial communication to 'reset' without resetting the entire register structure.  As for the power up sequence, having the digital/analog inputs low at power up ensure you do not enhance the ESD cells.  After the supplies are up and stable, pulsing the reset pin should ensure that the device ID bits are properly read and the device is ready to accept commands/analog input signals.

  • Hi Tom,

     

    i have still problems with the ADS1298 like i discribed above.

    Now i use the /CS pin to select the ADS1298. The reset will be triggered by the corresponding SPI-Command (RESET = 0x06). /CS will be always tied low for the whole spi-communication.

    For reading the ID-Register i need the following command-flow:

    1) 0x20

    2) 0x00

    3) 0xAA => Dummy command for debug purpose and to provide the needed SCLK to the slave

    The content of the id_register would be 0xA8 and i think thats not correct, right?!

    To test the spi-communication for correct work i tried to write into the CONFIG1-Register to force the ADS1298 to output the internal clock on Pin 37. So here are the commands i send:

    1) 0x41

    2) 0x00

    3) 0x26

    After that, i can measure the internal clock on pin 37 (ca. 2MHz).

    If i want to read the CONFIG1-Register like i read the ID_Register above i will get 0x00 as the result.

    I'm on the end with my latin like we say in germany : )

    Hope you can help me with this problems.  

  • Hi Kai,

    Take a look at the command definitions on page 37/38 of the data sheet.  After RESET, the device defaults to RDATAC mode.  When in RDATAC, the device ignores read reg commands.  Try  modifying your code to add the SDATAC (0x11) between your reset and 0x20 00 00/AA command sequence and let me know if that resolves the issue.

  • Hi Tom,

    i have forgotten to write that i send the SDATAC command between my reset and 0x20 0x00 0xAA command.

    But the discribed behavior is still present.

     

  • Hi Kai,

    Can you capture a screen shot of your communications?  Here is what I see when I do the same thing as you:

     

  • Hi Tom,

    i'm not able to provide a timing image like you but i'm working on it to get a similar figure.

    One question according the current consumption after these steps i do. I measure 6mA. Is this correct or maybe a evidence to another problem?

     

    Greetings from germany!

     

    Kai

  • Hi Kai,

    Depending on how you have the device configured, 6.1mA is not necessarily high.  Where are you measuring the current?  Is there anything else on the node or just the ADS1298?

  • Hi Tom,

    the 6mA are the power consumption of the unconfigured ADS1298 and there are no other devices connected to that node.

  • Hi Kai and Tom,

    it seem to be I'm just running in the same problem. I'm not able to read the correct ID from the ADS1298. I can write and read all registers correct except the channel register 4 to 8, are always 0x00. The ID is always 0x80. Take a lock into "Register Read.png", the first two bytes (0x00,0x00) are the respond from the read register order 0x20, 0x00.

    At first I  thought I have a wrong chip in the package and changed the device on my board. But the same result. I believe the chip is a 1294.

    The next problem is, in continue read mode I get always the same data. Please take a lock into the scope picture (ContinueDataRead.png). No noise on the channels, unbelievable! And the data for channel 4 to 8 are always 0x00. All LOFF registers are switched to disable. I have no idea what's going wrong.  Please give me a hint.

    thanks Olli

  • and here is the other picture.

    Olli

  • Hi Tom and Oliver,

    i'm little bit happy that i'm not the only one with this problem. Here are my timing-figures.

    First signal (yellow) is alway CS, the second is SCLK, the third is SPI_DIN (from ATMega8 to ADS1298) and the last (blue) is SPI_DOUT (ADS1298 to ATMega8).

    Figure 1)

    1st command is RESET (0x06) followed by SDATAC (0x11).

    Figure 2)

    1st command is from READ_ID_REGISTER (0x20) only one byte (0x00) followed by DummyByte (0xAA) 

     

     

    And here you can see the blue curve, with other words the device id 0xA8...

     

     

  • Hi Kai,

    my problem with the wrong ID and the missing channels could i solve. 3 off 6 analog power pins were unconnected because off a broken pcb track. Probably the power supply for the higher channels.  So, i get the right ID (0x92) and data from all channels.
    The ADS1298 is fine working now and i'm happy.
    I hope you could solve your problem also, Kai.