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.

ADS1248 reading data

Other Parts Discussed in Thread: ADS1248

Hi

Im working on ads1248 and i can communicate with it. i can write registers and read them very good.

but when i was to read the temperature sensor I only read 0x000080 !!!!

when i deassemble the sensor my data output is 0x7fffff.

i write this registers only :

Mux0=0xC7;
VBias=0x00;
Mux1=0x03;
Sys0=0x7f;
IDAC0=0x07;
IDAC1=0x0F;


and i read the data with this command :

    SPI_CS=1;
    Delay100TCYx(10);
    SPI_CS=0;
    SPIWrite(0x12);
    DATA1=SPIWrite(0xFF);
    DATA2=SPIWrite(0xFF);
    DATA3=SPIWrite(0xFF);
    SPI_CS=1;

 i read the voltages of RTD. its zero!!! too.

i think current source not working!

can you help me?

how can i read the data correctly?

i see the DRDY signal in scope .90% is zero and 10% is 1.but in the datasheet write its 90% high and 10% its low!!!

is it  my code has problem ?

  • Mohamadreza,

    The first thing that I see is that the internal reference needs to be turned on. Even if you are using REF0 as the reference input, you still are using the IDAC0 and IDAC1 outputs. These current DAC output values are derived from the internal reference.

    Use the MUX1 settings for VREFCON (bits 6:5) to turn on the internal reference. Let me know if that helps.

    Joseph Wu

  • Hi Joseph;

    thanks for replying

    i do that and i was set Mux1=0x63

    but im only reading the data=0x000080 :(

    i said that i think the current source not config on its not working

    whats your idea about the DRDY signal?

    my DRDY signal is many percent '0' and only <10% is '1'

    in the datasheet says reverse of this...

  • Mohamadreza,


    First, lets start with your schematic. I assume you're making a ratiometric measurement, but to be sure, could you please post your schematic?

    If that is the case, then you definitely need the IDAC outputs. Could you please measure them directly? You can use an ammeter and short the IDAC outputs to ground to measure the output current.

    I would also readback any writing that you do to the registers of the device. This would be a good check to see that anything that you've written was correctly put into the device.

    The DRDY will pulse high and then low in response to a data conversion being read for output. If you don't clock SCLKs, then the DRDY will pulse similar to Figure 68. Note that the pulses in Figure 68 are not to scale and the pulses are narrower than shown. However if there are SCLKs being given, either to write to registers or to read out data, the DRDY will respond high with the SCLK pulses as shown in Figure 2.

    I would also try making a measurement using the internal reference just to make sure that it is correct. That way you can check to see if the device is behaving properly.


    Joseph Wu

  • 6087.Hi Joseph.pdf

    5707.ADS1248 .zip

    Hi Joseph

    thanks for replying.

    I attached my Schematic and Other thing that you want.

    i am waiting for your response intensively.

  • Mohamadreza,

    Just with a quick look at the schematic (and I'll keep looking at it), are you using R8 for your reference by driving current through from the IDACs? I would note that the example shows 833Ohms, not 388Ohms.

    Also, You have these large 6.04k resistors in series with the measurement. Note that your IDAC current will go through these resistors as well. These resistors reacting with the IDAC current will add voltage into your measurement. I would eliminate these first.

    Joseph Wu

  • Joseph,

    thanks...

    R8 is 833 ohms but im mistake in the schematic. i assembled 833ohms.

    in the first test i by pas the 6.04K and other feature and i want to get a simple response...

    Do you have any idea about the schematic and my code?! 

  • Mohamadreza

    I'm still reading through your material, but go through and measure back your input voltage and your reference voltages to makes sure that you are getting the proper values that you expect. If your IDAC current is 1.5mA and the resistance is 833Ohms, then the reference voltage should be almost 1.25V.

    Make sure all the voltages around the device are where you expect them to be.

    Joseph Wu

  • Joseph

    i test current source with IEX1 and IEX2 pin. 

    current source not working .

    and i measure the VREFOUT Pin and it was zero!!!

    i change value of MUX1 register and it was be zero too.

    is it possible burn out the internal VREF?!

    how can i measure the vref?!

    im waiting for your comment

    thanks

  • Mohamadreza,


    It's possible that you have damaged the reference, but let's check the registers first.

    In your setting, you have MUX1=63h. This says that the reference is on for the conversion, with REF0 selected, measuring the temp diode. I would make sure the reference is always on and re-measure the reference. You mentioned that you "changed value of MUX1 it was to be zero too". Can you explain that? Did you write something into the register and did you get 00h out?

    Make sure the reference is always on by setting MUX1 to 23h and check the measurement of the measurement and IDACs. Also, you should always read back the registers to make sure that they contain what you think is written into them.


    Joseph Wu

  • Joseph

    No.No. i write to register and read them successfully.

    i write to register as below:

    Mux0=0x07

    Mux1=0x25;

    Sys0=0x0f;

    and when i read them they are such as I am wrote to them.

    for reading the reference i use:

    SPI_CS=0;

    SPIWrite(0x16);//stop reas data coniunisly

    while(DRDY);
    SPIWrite(0x13);
    DATA1=SPIWrite(0xFF);
    DATA2=SPIWrite(0xFF);
    DATA3=SPIWrite(0xFF);
    SPI_CS=1;

    and when read the DATA1 , DATA2 , DATA3 they are 

    DATA1=0x80

    DATA2=0x00

    DATA3=0x00

     

  • Mohamadreza,



    Right now, it looks like you are measuring Ext REF0/4 according to your MUXCAL setting. Also, the data you are getting appears to be 800000h (the MSB comes out first).

    What are the IDAC0 and IDAC1 register set to?



    Joseph Wu

  • Mohamadreza,

    If you still have IDAC0 and IDAC1 at 07h and 0Fh, I'd like you to read them back to make sure.

    Also, since you have IEXT1 and IEXT2 attached to jumpers, you can route the IDACs there to measure them directly.

    Joseph Wu

  • Joseph,

    I set the IDAC0=0x07 and IDAC1=0x0F and i measure the current between GND and Jumper. I read only 0!

    when i write to registers i read them Instantly to sure they wrote successfully.

    what does it mean when I read the DATA=0x800000 ?!!!

    is it that i read the false data?!

    i test to read the other data such as Temperature diode and DVDD measurement .

    but i only read DATA=0x800000!!!

    i suggest that i have problem in VREF.

  • Mohamadreza,

    First, I would make sure that you have written what you think you have written into the device and read back the registers. I might also try to look at the digital signals with an oscilloscope.

    If this is all correct, then let's try something else. Instead of using the IDAC to drive a current through a resistance to setup the reference, turn off the IDACs. Then use the internal reference for measurements (but do not route it to REF0).

    This is done with the MUX1 register. Select the internal reference to always be on. Then have the onboard reference selected (but NOT to be internally connected to the REF0 input pair). Once this is done, use a multimeter to measure VREFOUT to VREFCOM to see that the reference is available. If you can see the reference, then measure the internal temperature diode.

    Measuring 800000h means that the measurement is measuring a negative full scale value. While this is unlikely because you've got positive signals going into the device, it may be possible to get this result because the reference is 0 right now. With turning on the reference and measuring it back, you may see if the device is working.

    Joseph Wu

  • Joseph

    thanks for helping

    I changed my ADS1248 and its work correctly.

    i think that ADS1248 has problem or has damaged ...!!!

    for ever thanks for helping ...:)

    have good time

  • Mohamadreza,

    I'm glad you found your problem. If you have any other questions, let me know.

    Joseph Wu