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,
Research And Development Team
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.
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, 0x01with 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 sent1) 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 V3) 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 SPI5) DOUT signal is following /CS signal
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 writeto the part with these supplies. I've changed the data rateand seen the /DRDY pulses change period.
For a good first test, I would send a command to read theregisters to see if that was correct. It's always a goodfirst test to see if the communications are correct and theresults should be known and repeatable. The values read backshould 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 ADS1248and 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 sampledon the falling edge. In this case, the base of the clock should be zero. Therefor CPOL=0 and the CPHA=1. With theclock dwelling high, the tCSSC spec may be violated as shownin Figure 1 and Table 1 of the ADS1248 datasheet.
Thats all I have - Let me know if you have any other problems.
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.
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
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
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!
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
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
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
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,
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.
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,
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.
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 ?
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.
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,
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.