Hi,
I'm using the ADS8331 with SSP(SPI) interface connected to a Cortex-M3 (LPC1778) [figure 1]. My problem is that the communication break up, after the frist command.
show the following steps:
[figure 1 - schematics]
[figure 2 - Read CFR]
[figure 3 - write CFR]
I'm running out of ideas, what to do/change to get the ADC to run....
Thanks a lot for any hint, Sebastian
Hi Sebastian,
For some reason your pictures did not post (just an FYI), here is a link to a post that deals with the same issue that you are having with the ADS8331.
http://e2e.ti.com/support/data_converters/precision_data_converters/f/73/t/150096.aspx#545876
You can read through the whole post for yourself but here is the short answer to your problem:
The ADS8331/ADS8332 supports 3 of the 4 possible configurations of channel select mode and start conversion mode. Auto, channel select mode with Auto-trigger mode is supported, Auto-channel select mode with Manual-trigger mode is supported, and Manual-channel select mode with Manual-trigger mode is supported. Manual-channel select mode with Auto-trigger mode is not supported. The reason being, in Auto-trigger mode their is not control over /CONVST to EOC timing causing you to violate the timing specs when attempting to change the channel in manual channel mode. If run in Manual-channel select mode with Auto-trigger mode, the ADC will will continuously output the converted data for channel zero.
However, there is a "work-around" way to change channels and get the ADC to work in Man-channel select mode and Auto-trigger. To run it in this mode and change channels follow the steps below:
- Power on the ADC and set the CFR accordingly for Auto-trigger and Manual-channel select. You can perform a read back of the register is verify that you are communicating with the ADC correctly and set it correctly.
- Check the output of the ADC, you should reading back the converted data from channel zero.
- If you want to change to read channel one - Write to the CFR to set the ADC to Manual-trigger mode.
- Write to the ADC to set the internal mux to channel one.
- Write to the CFR to set the ADC back to Auto-trigger mode.
- Now your output will read back the converted data for channel one. You can repeat this process to read back any of the channels in auto-trigger, manual-channel select mode.
As of right now I do not know if we plan to write this procedure into the data sheet. I know we plan to revise the data sheet to make it clear that auto-trigger, manual-channel select mode is a supported mode in the ADC. However, if you follow the procedure above you can get it working.
Regards,
Michael Peffers
hi Michael,
thanks for the fast answer and sorry for the lost picture's. I have test many configurations, but I belive that the ADC goes in a error handler or something..
I have follow your work-around with worse luck :(. After the the frist command goes the SDO low and it exists noch communication. See below.
I hope you continue to help the fault finding....
Sebastian
Hello again,
it my be that the reference is the Problem? I have the reference of 2,96V and a supply of 3,3V.
Here the schematic:
The critical edge for the ADS8331 is the falling edge so the data needs to be stable on the falling edge and changing on the rising edge. From looking at your scope shots it seems that you are using the wrong edge to latch the data in. Take a look at the timing diagram on page 9 of the data sheet and reveiw tSU4 and tH3 timing specs. I have attached a picture of the correct phasing and polarity.
Michael
Unfortunately, the ADC is still no answer. in your picture of the ADC is indeed nothing back. It is only goes high to low, if yellow = CS, red = SCLK, green = MOSI and blue = MISO.
See my picture below, if send the second command, the MISO signal goes with the first clock to the low state and keep so.
4846.TEK0078.TIF
6523.TEK0079.TIF
please check the scope shot if it's ok.
What happends, if the reference is 0V or 2,96V during the communication?
Thanks for your fast answer.
Check your RESET pin and make sure it is held high, in your schematic this pin is connected to your controller.
From the pictures that you sent me it looks like you read back the default value of the CFR (FFFh) but then it looks like you read back 8000? Try writing E7FD to the CFR and attempt to read it back. Keep in mind that the last bit of the CFR (D0) is a software rest bit so this needs to be 1 for this test to work. Send me pictures of the write and read please and please outline what each channel is for me to take away from some of the confusion on my end.
To answer your question about the reference, it doesn't matter, that is just for your conversion.
since I have similar problems, I wanted to know if you got the chip running? Also, I think in your schematics the ADCIN needs to be connected to MUXOUT as mentioned on page 34 in the documentation.
Br,
Jan