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.

DRDYB interrupt ADS1293

Other Parts Discussed in Thread: MSP430F2274, ADS1293, ADS1293EVM, CC430F5137

Hello,

I am trying to connect with ADS1293. I have used the example code demo-app03. I can write and read all registers of ADS1293 but the PORT2 interrupt never occurs. The pin DRDYB is to 3.3V, but when I connect this pin to MSP430F2274 this line goes to 0V.

I have modified the code including "TI_ADS1293_DRDYB_PxREN |=TI_ADS1293_DRDYB_PIN;" to enable pull-up resistor, and the pin goes to 3V but the interrupt doesn't ocurr.

Could you help me?

Thanks.

  • Hi Javi,

    Are you using the EVM or a different hardware? I noticed that the MSP430 model mentioned is different than the one found on the evaluation board.

    Can you probe the DRDYB pin with an oscilloscope and see if the data-ready signal is there? I am not familiar with the code, but from what I can see, if the program executes correctly up to the start of the "while(1)" loop, the data-ready line should toggle at a rate of 853Hz. 

    The evaluation board has an external pull-up resistor on the DRDYB line to 3.3V.

    Regards,

    Sergio

  • Hi Sergio,

    I am using:

    • EZ430-RF500
    • A dedicated board with ADS1293 and necessary hardware (similar to ADS1293EVM).

    I`m using an oscillospope and the DRDYB signal doesn´t change, in my case, DRDYB is to 0V. I have probed with 10k, 1.2MOhm pull-up resistorto 3.3V. I don´t understand why it doesnt work.

    Thank Sergio.

  • I sent you a friend request, can you contact me via email?

    We'll take it from there.

    Thanks,

    Sergio

  • Hello Sergio,

    Sorry for opening this old thread, but I have the same symptoms on my board and this is the only thread I could find about it.
    I am using the ADS1293 with a readout microcontroller CC430F5137.
    In my code I set up channel 1, and write all registers like the "typical applications" section in the data-sheet. Only difference is that I do not use an external 4 MHz crystal but I provide an external 400kHz clock from the CC430 to the ADS1293.

    What I see is that DRDYB is always 0. It never transitions to 1. Being 0, the program always thinks new data is available and keeps sampling at the maximal frequency my SPI setup allows.
    Reading the ADS with manually adding a few ms delay every readout works, but this is not an option for my final system where several sensors are read out and I can not afford to waste cycles like that. I would also rather not use a timer. If a data ready pin is available, it should work.

    Hope to hear from you,

    Tristan
  • Hi Tristan,

    Not a problem. If you use an external clock source instead of a crystal, the steps in the Typical Application section would change slightly. If you have not accounted for it, the clock configuration in register 0x12 should be done in steps as follows:

    0x12 = 0x00                                  // Disable the clock feed to the digital.

    0x12 = 0x02                                  // Shut-down internal oscillator to use external clock from CLK pin.

    0x12 = 0x06                                  // Feed external clock from CLK pin to the digital.

    The DRDYB line transitions to LOW when new data is available. If no SPI read is performed, the DRDYB line will remain low until 4 clock cycles (fclk) before the next data is available.  In your case, that is 4/400kHz. Therefore, even if you don't read the SPI data, if configured correctly, DRDYB should return to HIGH during 10us before transitioning to LOW again.

    The frequency of the DRDYB signal is equal to the output data rate configured by the R1, R2 and R3 decimation ratio. If the output data rate (ODR) is in the order of tens of hertz, you may have to set your scope trigger from AUTO to TRIGGERED or SINGLE to capture the event.

    If this has not solved your problem, next I would verify the following:

    1) Place a 10k pull-up resistor on DRDYB.

    2) Register 0x27 should be programmed to a value of 0x08 (DRDYB driven by CH1 ECG).

    3) Data conversion started by setting register 0x00 = 0x01 (older datasheet revisions had a typo in this step. Get the most recent datasheet here).

    Regards,

    Sergio

  • Thank you for the reply Sergio.

    I did indeed change the setup of register 0x12, I write a 2 and then a 6. I also know this part is correct, because I can read the ADS1293 data if I insert enough delay cycles, I just can't trigger on the DRDYB, but the digital circuitry works.

    My R1,R2 and R3 are setup for a 400 samples/s ODR.
    - I do not change R1 so it is 4.
    - I change R2 to 4.
    - I put R3 of channel 1 to 16
    This should give me the correct ODR, based on p33 of the most recent datasheet. I don't use high BW and resolution, so I believe p33 is the correct table to look in.

    I am testing the signal in the following way right now: I have a breakpoint in Code composer studio in the interrupt service routine of the pin that is connected to DRDYB. It only triggers exactly twice when I set register 0x00 to "1" (enable conversion) or "2" (disable conversion). While it is doing the conversions, the breakpoint never triggers again.

    (1) I will try to provide a 10k pullup resistor. I did not know this was required/advised since I did not see this in the datasheet.
    (2) This register is set correctly in my code
    (3) I also noticed the typo in the old version, but my code was correct. I am also doing this, I can change it via a serial port and that is how I see that changing the value triggers the ISR twice and then stops triggering.

    Kind regards,
    Tristan
  • Hey, I finally found the solution. I had to enable pullup resistors on the CC430 for the input. I did not do it before since I based my code on the example code of the ADS1293 EVM evaluation board. That code also doesn't enable pull-up resistors. But I did not notice that evaluation board has a pull-up resistor on the PCB (1M Ohm).
    Thank you for your time and sending me in the right direction!
    Tristan
  • Awesome!

    I had a quick look at the datasheet, and indeed, there is no pull-up resistor on DRDYB. As you mentioned, the EVM does have a pull-up resistor. If you are planing to monitor the ALARMB pin, you should enable the pull-up resistor on the input of the CC430 in the same manner.

    Best regards,

    Sergio