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 problem

Other Parts Discussed in Thread: ADS1248, ADCPRO, ADS1248EVM-PDK, OPA277

We have problem regarding ads1248 EVM board. We have followed 1248EVM user manual to make necessary settings. We have sent SPI commands WREG to ads1248 but we are not able to confirm whether ADS1248 is working or not. Kindly suggest me how  exactly we can come to know that ads1248 is functioning or not. Is there any indication in ads1248 which will indicates it is functioning or not.

Thnks n regards,

Shweta Kosamkar

Research And Development Team

MEssung Systems.

  • Hi Shweta,

    Are you using the ADS1248EVM as a stand alone board (with your own processor/code) or as part of the ADS1248EVM-PDK setup with our ADCPro software?  If the former, when everything is configured/jumpered/powered properly as per the EVM Users Guide and device datasheet, you should see the DRDY output pulsing at some constant rate (rate depends on your configuration settings).  The EVM itself cannot tell you it is configured properly and working correctly - there are no "System OK" indicators.

    If you are using the ADS1248EVM-PDK within the ADCPro environment, there are certain error messages that pop up if something is not configured correctly.  If you have an error message from that system, please let us know what that is.

    Regards,

    Tom Hendrick

  •  

    Thnx for your reply.  We are using ads1248EVM as stand alone module. It is been interfaced to ST72561 MCU through SPI interface.
    We have send following data to configure some registers of ADS1248.

    Data : 0x42, 0x01, 0x30, 0x78
                0x4A, 0x01, 0x0E, 0x01
    with START   pin high

    Foloowing are the jumper settings :

    1) We have configured EVM board to run at 5V logic (Digital and Analog supply). (But labelled pin on the EVM-board display  3.3 - digital and +/- 2.5V Analog supply)
    2)  Download link  http://rapidshare.com/files/260474529/ADS1248_EVM_Settings.JPG.html for our custom settings

    Following are the observation after data is sent
    1) DRDY : On scope we have found that DRDY after power ON goes to high for period 376msec (approx) then it goes low for around 10usec then again goes high for the 376 msec. after that it constantly low.
    2) VREF pin showed 0 V
    3) SPI is configured for 125KHZ baud rate in mode 2 (CLK has 0 phase i.e CPHA = 0 and polarity is invert i.e CPOL = 1)
    4) /CS signal is been toggled after every command frame of SPI
    5) DOUT  signal is following /CS signal

     

     

     

  • Shweta,


    I'm currently looking through your setup and it looks ok.
    However, I'm using DVDD=3.3V because my SPI interface is
    expecting 3.3V digital signals and if I run DVDD=5V, the
    signals may not drive high enough. Also, you need to make
    sure that AVSS is connected to AGND (and to DGND). I've
    used J10 to connect to those points as well.

    I've put together this together and I can read and write
    to the part with these supplies. I've changed the data rate
    and seen the /DRDY pulses change period.

    For a good first test, I would send a command to read the
    registers to see if that was correct. It's always a good
    first test to see if the communications are correct and the
    results should be known and repeatable. The values read back
    should be the reset values given in the datasheet.
    (They should be in hex: 01 00 x0 00

    If the register readback is correct, then try writing
    something to the register to see that the part takes the
    value correctly. Then, you can readback the changes.

    If you change the data rate as I had done (that would be the
    first four bits of SYS0 or address 03h), you can also monitor
    the change of the /DRDY line. In the default case, the /DRDY
    should be showing a narrow pulse every 200ms as a default.
    If the data rate is changed, you can see the pulse period
    get shorter.

    Here are a few more comments to some of your notes:

    1. Note that the setup that I have outlined did not have the
    +5V or -5V supply. This is required for the REF5020 and the
    OPA277 buffer. In this case you can use the internal reference,
    but you'll need to make sure this is turned on in the ADS1248
    and sent to an external pin to read it.

    2. I think the SPI communication setup you describe is wrong.
    The data is setup on the rising edge of an SCLK and sampled
    on the falling edge. In this case, the base of the clock
    should be zero. Therefor CPOL=0 and the CPHA=1. With the
    clock dwelling high, the tCSSC spec may be violated as shown
    in Figure 1 and Table 1 of the ADS1248 datasheet.

    Thats all I have - Let me know if you have any other problems.

    Joseph Wu

     

  • Thank you so much for your reply. I have followed ur suggestion. Now my EVM board (in stand alone mode) is working on 3.3V interfaced to ST72561 MCU through SPI. Following are my observations.

    Observations:

    1) DRDY interrupts are coming after 200 msec for 5SPS data rate(default)

    2) I can read conversion result using RDATA command

     However i am facing another problem

    Problems

    1) Unable to write and read configuration registers (Commands WREG, RREG)

    Then i have assembled ADS1248 IC on seperate board. And tried to interface ADC to my MCU ST72561. In this case i can successfully read and write registers.  After that i checked the same EVM board on MMB3-PDK kit. It is working on PDK setup.  can write configuration registers successfully.

    Can you please tell me which signal i am missing in my interface due to which I am unable to access the Configuration registers?

    According to datasheet this condition occurs only in shutdown mode. When START pin is low then only i cannot write registers. But in my case i pulled START signal high permenently.  Then also it is in shutdown mode

     

    Regards.

    Shweta

     

     

  • Shweta,

    While I don't know enough about your particular setup to know exactly what might be the issue in your SPI communications, there may be some hints to getting it going I can pass on.

    1. Make sure that all the digital communications are connected. This means that first the SPI needs communications (which means DIN, DOUT, SCLK, and /CS). Also, /RESET and START need to be held high also.

    2. Make sure that the microcontoller that you use has the same digital supply as the ADS1248. You also want to make sure that the digital grounds are the same. Also check the analog supplies to make sure that they are where you expect them to be,

    3. Once you have connections correct, you must make sure you have the correct type of SPI communications. For the ADS1248, CPOL is 0, and CPHA is 1. This means that the clock polarity is 0 and dwells low, while the clock phase is 1, meaning the data is setup on the rising edge of SCLK and read in or out on the falling edge of SCLK. This is shown in Figure 1 in the ADS1248 datasheet.

    4. Using the oscilloscope to watch the SPI lines is always helpful to make sure that the part is doing something.

    5. I recommend reading registers that are non-zero. For example, reading register 00h is a good one, because it should return 01h as the register contents. The command would be 20 00 00. The 20 indicates the read of register 00h, the next 00 indicates read for 1 register, and the last 00 clocks the SCLKs to read the data on DOUT line. Most of this can be seen in a combination of Figure 1 and Figure 60.

    I hope this helps you get the ADS1248 communicating!

    Joseph Wu

  •  

     Following are SPI Settings in my system:

    1) CPOL = 0, CPHA = 1

    2) Command Byte :  0x20, 00, oxFF ( 0x20 - Read MUX0 register.,  0x00 - No of bytes to be read -1 , 0xFF - NOP to get the data on DOUT)

     

    There are three ways to interface ADS1248

    Case 1)  Interfacing our MCU ST72561  to EVM board alone

    Set up is available at following path           

    http://rapidshare.com/files/267196635/Doc2.doc

    Observation :

    1) ADC is not responding to above command byte for RREG command. (No data on DOUT line. It is following /CS signal)

    2) On DRDY event  RDATA command ( 0x12, 0xFF, 0xFF, 0xFF )  is issued by MCU. In that case ADC is responding with some data on DOUT line. It looks like ADC goes into SLEEP mode.

    3) DRDY interrupts the MCU after 200 msec      

     

    Case2 :  Interfacing our MCU ST72561 to  ADS1248 IC mounted on PCB

     Setup will be available at following path

    http://rapidshare.com/files/267197098/Doc1.doc

    Observation:

    1) For the above command byte   (0x20, 0, 0xFF) , ADC responds to MCU with 0x01 data

    2) If i change the data rate by writing configuration register, the DRDY interval changes accordingly.

     

    Case 3 :  ADS1248 EVM board interfaced to MMB3 motherboard

    Observation:

    1) Made settings through ADCpro software and checked the performance of ADC. It is functioning properly.

     

              We want to know that since the ADS1248 EVM board is working properly when interfaced to MMB3 mother board but the same ADS1248 EVM board when interfaced to our ST7 MCU gives us some problem to read the ADS1248 IC therefor our question are we missing some kind of hardware/ Software interlock in case 1 ? Awaiting for reply.

    Thnx n Regards,

     Shweta

               

     

  • Shweta,

    First of all, there is no hardware/software interlock on the EVM, it is designed so that the part can be used by itself.

    We have looked at the interfacing diagram and seen no problems with the way you have it connected. However, would recommend measuring the supply voltages at the pins of the ADS1248 to make sure that the part is getting the proper supplies. I would also make sure that the proper signal is going to the control lines as well for START and RESET.

    It appears that you have case 2 and case 3 working. So using case 2, look at the SCLK, DIN, DOUT and CS lines with an oscilloscope, and make sure that you can duplicate the signals for case 1. When using the EVM standalone, there is certainly a chance to pick up more noise. I have had cases where the communications are so noisy that the part sees the noise as extra SCLKs and either commands are sent that are unintended or the data output advances bits unexpectedly.

    Also in case 1 is the data that you read out correct? If so, what is the exact data? If the data is correct, then the communications may not be a problem, but the part may be in reset or powerdown because of another bad signal.

    Joseph Wu

     

  •  

    Thnx for yout concern.  Observing the SPI communication in case 3 , we came know that after pressing the reset button provided on MMB3 board , the first command it sends is 0x00  three times i.e WAKEUP command according  datasheet. 

    We followed the same sequence of transmitting WAKEUP command thrice in case 1 , we were able to write and read registers of ADS1248.

    We dont know  why we need to send WAKEUP command thrice? 

    Does the EVM board goes into SLEEP mode after power ON?  This question arises because this is not true in case 2.

     

    Thanx n regards,

      Shweta

  • The ADS1248 does not go into SLEEP mode after the power ON.

    We've gone back to look at the firmware in the ADS1248EVM and the original intent was not to issue the WAKEUP command, but it is a read data that is associated with an interrupt service request for the MMB3. Normally this would be FFFFFFh used to read it out, but it was coded with the 000000h as an oversight.

    Joseph Wu

  • Thnx for your reply. I have some doubt regarding your reply

    1) As you said 0x000000 is send to read the data. But according to datasheet of ADS1248 , we need to send RDATA command  0x12 / 0x13 followed by  0xFFFFFF (NOP command) to read the conversion data.  But in case 3 I have not seen such kind of waveform. It sends only 0x000000 after DRDY interrupt.

    2) Then I removed the statement which sends 0x0000000 on interrupt from my firmware   i.e in case 1,  but still it is working fine.  In my firmware I am writing configuration registers after DRDY interrupt occurs. That means ADS1248 does not go into SLEEP mode.

    3) Again i have checked my previous firmware version where i write  \ read  configuration registers of ADS1248 before DRDY interrupt occurs with the delay of 20 msec after pulling START signal high.

     Following are my observations

      In case 1 :

                      Again i am unable to read and write configuration register.

    3) In case 2 :

                     I can successfully read and write register of ADS1248

       

          We were able to read \ write registers in EVM board only after DRDY interrupt occurs. Whereas  in case 2  i.e  ADS1248 mounted on separate PCB ,  we can read / write registers irrespective of DRDY interrupt,  Can you please tell me why there is difference between behavior of ADS1248 in EVM board and ADS1248 mounted on PCB ?

    Thnx n Regards,

     Shweta

     

     

     

     

  • I had problems with comm until I noticed that my ADS1248 was in constant Reset due to DVDD not being tied properly. I'm am using the ADS1248EVM board as standalone and noticed that the data sheet incorrectly labels J11.8 +3.3V however J11.9 is +3.3V. I'm looking at Users Guide SBAU142A - Apro; 2009- Revised July 2009. 

     

     

  • Shweta,

    I checked and the comment by lossol is correct, in the user guide table, the +3.3V supply is on J11.9, not J11.8.

    However, the schematic in the user guide is correct and the connections should be ok.

    Just to check that, I have taken an ADS1248EVM and put it together in standalone mode and I have gotten it to communicate. I was able to read and write to the registers without any difficulty.

    Most of the jumpers have been removed (this includes J5, J13, and J14).

    I have the power coming in to the EVM through the even pins (right side) of J10 (not J11). Here are my connections:
    J10.2=+5V (AVDD), J10.4=0V(AVSS), J10.6=+3.3V(DVDD), J10.8=0V (AGND), and J10.2=0V(AGND). AGND and DGND are connected  together at 0V. You can see that the supplies run from 0 to 5V for analog, and 0 to 3.3V for the digital (not the bipolar analog supplies used in the EVM-PDK connection).

    I use a USB to SPI emulator, and connect those signals to the J7 header:
    J7.1=/CS, J7.3=SCLK, J7.11=DIN, J7.13=DOUT, J7.15=/DRDY, J7.2=START, J7.6=/RESET. I also connect the ground from the SPI emulator to DGND on J7.18.

    I have START and /RST connected to +3.3V and /DRDY is only used to monitor the DRDY pulses from the ADS1248 from an oscilloscope.

    I have J2 set to the left side connection, but this is likely unimportant because the internal oscillator is running and the U8 oscillator is not on my board.

    After I set the connections, I was able to connect to the part immediately. I wrote in 20 00 FF, this gave back a reading of 01 which is correct. Then I read 23 00 FF, this reads back 00 which is also correct. Finally I sent 43 00 08 and this changed the data rate from 5SPS to 1000SPS.

    To be sure, I cycled the power to both analog and digital supplies. The data rate returned to 5SPS. The first command I sent to the part is 43 00 08, which immediately sent the part to 1000SPS.

    Even though I hadn't read data from the part, I think it proves that the part can be operated in a standalone mode without modification. Go through my description and see if you can duplicate this test.

    Joseph Wu

  •  

    Thanx for your post. I will check it out and let you know.

    Right now i am using ADS1248 EVM along with MMb3 PDK kit to chek ADC performance for RTD application.  I have some problem regarding RTD wire compensation. 

    In data sheet of ADS1248, the application note for ADS1248 in hardware compensated RTD measurement is given. 

    For my set up  I refer the application note of ADC AD7711 from analog devices (Fig 20.3) to avoid the external components. 

    As according to  AD7711 (Analog Device ADC) Fig 20.3 application note, we  don’t need any external hardware compensation as ADC is working in common mode configuration so it will not introduce any error.

    With reference to that , I have simulate the RTD configuration with ADS1248EVM  along with MMB3 – PDK kit to check the performance of ADS1248 for 3 wire compensation, but I did not find such results.  I have interfaced 100 ohm resistor from calibrator as RTD. My set up information and observation will be find on following link.

     http://rapidshare.com/files/270802280/ADC1248_in_RTD_application.doc.html

     To compensate the wire drop I have to subtract the drop across AINN wrt to GND from the analog input reading (i.e AINP and AINN) to get actual drop across RTD. But according to data sheet of ADS1248, I cannot get the reading of AINN wrt GND, as there is no provision to select MUX channel for AIN and GND in mux0 register.

    If I connect one of the channel from 8 analog channels to AGND then only I can read the drop across AINN and AGND, but there is no free channel available in my application as I am using all 8 channels.

     

     In datasheet Hardware compensation technique is available. But is there any other way (using software) to do 3 wire compensation in RTD? Is there any application note available for that? 

     

    Thnx n regards,

      Shweta