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.

ADS1226 Data Converter Questions?

Other Parts Discussed in Thread: ADS1226, REF3312, ADS1248

Hi.

I am designing temperature Measurement system.

Flow chart is

Temp Sensor(TMP36) -> ADS1226  ->MSP430...

System features are generally good.

In other words, TMP36 anlog output value(ADS1226 Input) is valid ADS1226 Digital output value. 

But Sometimes ADS1226's output is not valid analog input value.

Even though input is changing, output is not changing.( I checked these points with oscilloscope)

ADS1226  is setting( START tied high, Buf disable, High resolution mode)...

How about this problems?

Board noise? ADC Using error?

 

 

  • Dong Hyun Kwon,


    To try to figure out what the problem is, I'll need more information about what is wrong.

    1. What is the voltage coming out of the TMP36 (is it about 750mV at room temperature)?

    2. What is the reference voltage of the ADS1226 (from VREFP to VREFN)?

    3. What is the output code coming out of the ADS1226? Can you show this with an oscilloscope?

    4. As a test can you tie TEMPEN high to turn on the temperature sensor? What reading do you get with this?

    If your output from the ADC is not changing, it probably would not be board noise and I would check the reference and input voltages to make sure they are where you expect them to be. Also, since the ADS1226 is a two-channel part, I would make sure that you have the proper channel selected and set the other channel to a known voltage just to make sure.


    Joseph Wu

  • Hi.

    1. What is the voltage coming out of the TMP36 (is it about 750mV at room temperature)?
    >> TMP36 using voltage range 100mV ~ 1750mV


    2. What is the reference voltage of the ADS1226 (from VREFP to VREFN)?
    >> Ref chip: REF3312(VrefP : +1.25V, VrefN:Gnd)

    3. What is the output code coming out of the ADS1226? Can you show this with an oscilloscope?
    >> for example, MUX - 0(Low)

    Real Input Value: about 764mV (output code converting 2's complement -> straight binary)  2 time sample

    first time:0100 1110 1100 1101 0110 0010(valid data)
    2nd time:0100 1111 1100 1101 1101 1000(invalid data)

    perhaps about 65536(10000000000000000b)

    What happens this red bit? Our system(MSP430) spi speed is less than 1MHz.(Using GPIO Port ,Not spi PORT)

    Is it time error(in spi interface)? No, I think that time tolerance is enough.


    4. As a test can you tie TEMPEN high to turn on the temperature sensor? What reading do you get with this?

     

    >> Tempen Pin is tied Low(GND).

    ...

    Can I attach schematics in this post?

  • Dong Hyun Kwon


    It looks like your system is set up correctly but you have some communication errors that cause a bad read. Now that I have a clearer picture of the problem, I have a few more questions to try to understand exactly how the error occurs.

    1. How often does do you get a read error? For every 100 readings, how many errors do you get?

    2. Can you capture a read error on the oscilloscope? I'd like to see DRDYn/DOUT and SCLK to see the read back error.

    3. Can you capture 100-500 reads and post the read values in an excel file? I'd like to see several errors within this file so capture enough data to show at least five errors. You can also check to see if the errors come periodically.

    I don't know what is causing the read error, but I have a few guesses. However, I'm not sure these errors would cause the bad data you are seeing.

    First, the error could be caused by the wrong SCLK polarity setup in your microcontroller. The DOUT is setup by the rising edge of SCLK and data should be read at the falling edge.  Second, make sure that the SCLK is clean, A small amount of capacitance from DOUT to SCLK will cause the DOUT pulse to accidentally trigger the SCLK so the ADC thinks that 2 SCLKs have been pulse instead of 1. This can advance the DOUT line and cause it to clock out the data early. The last thing I can think of is that the data is clocked out without synchronizing to the DRDYn going low. If data is being clocked out and a DRDYn pulse occurs (signalling the completion of a conversion), then the DOUT is updated with the new data immediately. This will cause the first bits of DOUT to be data for one conversion, and the last bits of DOUT to be the data for the next conversion.

    Again, this isn't what you've shown in your explanation, but I'd still like to see your data to be sure, and I'd also like to see the scope shot of a bad data if possible. You can post a schematic if you like, but I think that the problem is similar to what I've described. If you still want to post the schematic, you can post and choose "options" and it will allow you to add an attachment.



    Joseph Wu

  • Thank you!

    We will check out system in detail again. And If it is nessary, we change Circuit or PCB layout...etc.

    And then,

    1. How often does do you get a read error? For every 100 readings, how many errors do you get?

    >> random. Any board is none.

    2. Can you capture a read error on the oscilloscope? I'd like to see DRDYn/DOUT and SCLK to see the read back error.
    >> So, I can't trig this point.

    3. Can you capture 100-500 reads and post the read values in an excel file? I'd like to see several errors within this file so capture enough data to show at least five errors. You can also check to see if the errors come periodically.
    >> I will attach my test reports.

    It is 4 board case.

    BD1 is invalid value sometimes.

     

    TestReports.xls
  • Dong Hyun Kwon,


    Thanks for the post, I will be looking it over soon.

    For the excel file, can you post the ADC output code (not the voltage). The output code is more useful in looking at the problems I described in the previous post.


    Joseph Wu

  • Hi.

    I attach new report file.(ADC output code(hex value))

     

    TestReports.xls
  • Dong Hyun Kwon,


    I've looked through your data and I'm still not sure what is wrong.  It looks like the error that you have is associated with some bad data, but I'm not sure where it comes from.

    First, the error seems periodic. It seems to occur every 352 of your readings and every 11 minutes and 44 seconds. It does look like it is a single bit error of the 8th MSB. It is likely not an error in the reference or the input because if you flipped that bit, the data looks like it would be correct.

    I also noticed that in some cases (at the end of the plot) there were some good readings so the error did not continue through the entire readout. However, the periodicity of the error did not change. For example, sample number 20659 is in error. However, ther next readings were correct for a long time. The next error was sample number 21715 which is 1056 (or 3*352 samples later). This periodicity is very consistent (over the course of over 12 hours).

    My current thinking is that this is some sort of communication error. Mostly because I haven't heard of this device with this type of error, it is periodic, and it is an error with the same single bit within the readout.

    Since the error is periodic, I would think that it is possible to get a scope photo of the readout (I'd need the CS, DOUT, and SCLK) when there is an error. This would give the most information about what the error could be.

    Regardless, I'll need even more information about how the device is read out, how the DRDYn is captured, and the commands being given to the ADS1248 (and in what sequence). I'd also like to know if the ADS1248 is put in different states between reads and if the part is continuously converting between reads.


    Joseph Wu