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.
I use ADS7953 in AUTO-1 mode( all channels ), but receive the data as blow :
340
1710
2703
374f
481e
5838
63a8
7810
8782
8718
838a
180
c330
c182
e381
f180
My code is :
// Request next frame to enter programming mode for Auto Mode 1 spi1_send_data(ADS79XX_PROG_AUTO1); // Program Auto Mode 1 Channel Sequence to include all channels spi1_send_data(AUTO1_ALL_CHAN_ENABLE); // Program Auto Mode 1 Range and configuration settings spi1_send_data(ADS79XX_AUTO_MODE1 | AUTO1_PROG_ENABLE | AUTO1_CHAN_COUNT_RESET | AUTO1_5VRANGE_SEL | AUTO1_NORM_OP_SEL | AUTO1_CHAN_ADDY_SEL); while(1) { res = spi1_send_data(0x0000); // send to ADS7953 printf("%x\n",res); delay_ms(2000); }
Why do I have the wrong data? Please help me, thanks!
Hello user3681320
This could be issue related to timing mismatch between SPI signals. Can you capture SDI/CS/SCLK/SDO signals on scope and share the details.
One more way to validate if it is a timing related issue is to set device is manual mode and repeatedly monitor only one channel (preferrably channel on which you are getting incorrect data). Data you get back from ADC should be same in each case. If it is not then it is timing related issue
Thanks & Regards
Abhijeet
Hello, Abhijeet Godbole!
I have resolved the problem because of the power on my board.
But now I have a new problem, I receive data from ADS7953 like this:
xxxx ( first I get this one after ADS7953 initialization )
0xxx
1xxx
2xxx
3xxx
4xxx
5xxx
6xxx
7xxx
8xxx
9xxx
Axxx
Bxxx
Cxxx
Dxxx
Exxx
Fxxx
0xxx
1xxx
2xxx
3xxx
4xxx
5xxx
6xxx
7xxx
8xxx
9xxx
Axxx
Bxxx
Cxxx
Dxxx
Exxx
Fxxx
...
My Code is:
// Request next frame to enter programming mode for Auto Mode 1 spi1_send_data(ADS79XX_PROG_AUTO1); // Program Auto Mode 1 Channel Sequence to include all channels spi1_send_data(AUTO1_ALL_CHAN_ENABLE); // Program Auto Mode 1 Range and configuration settings spi1_send_data(ADS79XX_AUTO_MODE1 | AUTO1_PROG_ENABLE | AUTO1_CHAN_COUNT_RESET | AUTO1_5VRANGE_SEL | AUTO1_NORM_OP_SEL | AUTO1_CHAN_ADDY_SEL); while(1) { res = spi1_send_data(0x0000); // first I get xxxx ( only once ) printf("%x\n",res); delay_ms(2000); }
Why do I get the xxxx in the beginning? Please help me, thanks!
Hello
First conversion after power up or reset is invalid and should be ignored. Please refer to electrical char table specs on page12 fo datasheet for more information
Thanks
Abhijeet