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.

ADS1292R: Failed read the device ID ADS1292R

Part Number: ADS1292R
Other Parts Discussed in Thread: ADS1292

Hello friends, I'm having some difficulty getting the ADS1292R Chip ID read correctly. After running the code in debug mode, I notice that at the point where it checks the device ID, several values are returned, such as: 0, 254, 255. I checked the entire power up routine and I don't think there is an error.

void ADS1292R_PowerOnInit(void){

    ADS1292R_CS_H;
    ADS1292R_START_L;
    ADS1292R_PWDN_H;
    delay_ms(2000);
    ADS1292R_CS_H;
    ADS1292R_START_L;
    ADS1292R_PWDN_L;            /*ENTER POWER DOWN MODE*/
    delay_ms(20);
    ADS1292R_PWDN_H;
    delay_ms(20);
    ADS1292R_PWDN_L;
    delay_ms(2);
    ADS1292R_PWDN_H;
    delay_ms(200);
    ADS1292R_CMD(ADS1292R_SDATAC);
    delay_ms(200);
    ADS1292R_CMD(ADS1292R_ADSRESET);
    delay_ms(1000);
    ADS1292R_CMD(ADS1292R_SDATAC);
    delay_ms(200);

    delay_ms(10);
    while(device_id!=83){      
        device_id=ADS1292R_REG(ADS1292R_RREG|ADS1292R_ID,0x00);
        printf("\rVALUE ID %u",device_id);
        delay_ms(200);
    }

Thanks in advance

  • using the saleae logic analyzer software, i obtained the following measurements between signals...

    MOSI: dimention between signals=0.2007s;frequency=4.982Hz

    MISO: no signals

    CLK: dimention between signals=0.2007s;frequency=4.982Hz

    CS: dimention between signals=0.5us;frequency=2MHz

  • Hi Armando,

    Thanks for the post. 

    Please refer to the power-up sequencing shown in Figure 72 (Section 10.1) and the initial device flow at power-up in Figure 44 of the datasheet for information. Your logic analyzer plot is not clear if you have interfaced the SPI signals correctly with the device. Please refer to Section 8.5.1 for the operation of the SPI interface. The SPI timing diagram in Figure 1 of the datasheet is how the SPI works for the device.

    We also have some basic steps for debugging the SPI interface in the FAQ. Please see the direct link below.

    Thanks

    -TC

  • Hello TCT,
    I've been checking all the requirements mentioned in your post and following all the initial directives in order to detect the error so far I still don't get the Chip ID.
    I don't know if the following will help a lot, but:
    -I'm using a protoboard from the protocentral;
    -the GPIO and CLK pins are not connected to anything
    -Clock_System is set to 48MHz, SPICLK is working 2MHz 

  • Hi Armando,

    All the protoboards with the ADS1292 are open source and have example source code that you can use for your initial development. In addition, I suggest getting familiar with the ADS1292 by reviewing all the information in the datasheet. It will be helpful to observe the SPI interface transactions on the logic analyzer for debugging purposes and provide the plots for review.

    Other than the ID register, what values are you getting for the rest of the registers?

    Thanks

    -TC

  • Hello TCT, 

    Thanks for your advices,

    I already review the whole information  disposed in the datasheet, I think nothing has escaped me. Maybe is something external to code, like the hardware, I try to connect the GPIO's Pins to DGND, and the CLK  to a 3.3V DVDD. The result is the same.

    After this I review the entire power-up sequence, but without success. With a  logic analyzer, I realize some test's  getting the following results.

    The remaining records are not in accordance with the data sent, which makes me even more worried

  • Hi Armando,

    Thanks for showing the waveform. It looks like you are reading the correct ID register in your waveform for ADS1292R which is 0x73 (0b01110011). I am not sure how the hardware is connected, but the CSB (SPI-Enable) signal should not be high during the SPI transactions.

    It is unnecessary to connect the GPIO pins to DGND or the CLK to 3.3V DVDD for normal device operation. Instead, the device should be clocked either with the internal oscillator or an external CLK.

    Thanks

    -TC

  • Hello TCT, 

    Sorry for my nonsense , but when you send or transmit 0x00, it was not supposed to be the chip responding with ID 0x73. So the mosi should be 0x00 transmission and the miso answer would be 0x73, I'm right or wrong, because it's the first time I'm using the digital analyzer

  • Hi Armando,

    Yes, you are correct. Sorry, I missed the label on the waveform. Please see the waveform below for the SPI interface for reading the device ID. Why are you sending the 0x73 to the device when you are reading the device ID? Please review Section 8.5 in the datasheet for the device SPI interface operation. 

     

    Thanks

    -TC

  • Hello TCT, 

    I think there is a problem with my ADS1292R, I'am sending 0x00, and not come back 0x73. Every time I send some data the response from the chip is "saturated data" or 0xFF; 255;

  • Hi Armando,

    I recommend using the steps shown in the FAQ link below for debugging. Please get in touch with the hardware manufacturer if you think the device is not functional. You can also replace the device on the board and retest. The DOUT line should not be HIGH, as shown in your previous logic analyzer waveform. Please make sure you set the DOUT pin logic state correctly with your uC.

    Thanks

    -TC

  • Hi TCT , 

    I made progress on my problem, however a doubt remains in the air. My internal oscillator is not triggered, my question is... In order to trigger the internal oscillator this must be done via hardware or code? I looked for this information everywhere and I couldn't find it. I have  verified your the link you gave me and, the result for my ADS1292 was:

    Vcap1 = AVSS + 1.2V=> Vcap1 = 0 + 1.2 = 1.2V

    Vcap2 = AVDD +1.9V=> Vcap2 = 3.32 + 1.9 = 5.22V 

    but verifiing localy in the board the values the Vcap1= 1.09V and the  Vcap2 = 2.54V.  Consulting the data sheet I find something like "Enable the internal master clock or provide an external master clock ". How you enable the internal clock if the code does not pass the part where it requires the CHIP ID. Hence my question, an oscillator is triggered externally with the aid of pull up resistance, or through code

     This is the new plot of the digital analyser..

  • Hi Armando,

    To use the internal oscillator, you will need to set the CLKSEL pin (Pin# 14) to logic HIGH. Please refer to Section 8.3.7 for the information on the device clock operation. As mentioned, it is essential to review the complete datasheet to understand how the device operates. This should help you with some basic setup of the device.

    Thanks

    -TC