Hello,
I'm using ADS1298 MDK board with C5505 EVM and I'm running the sample code for the ADS1298 provided by TI...
I noticed a following suspicious behavior:
I'm watching a value of SPIBuf which is being read directly from the chip through SPI (line 153 in InterruptHandlers.c). I set the ADS registers to use only the first channel, so usualy I get something like this: (correct and valid data)
SPIBuf = 0x000056DA@DATA
[0] = 00000000110000000000000000000000 // Sequence 1100 means that data package from the ADS is being read properly
[1] = 00000000111111111011011000101100
[2] = 00000000000000000000000000000000
[3] = 00000000000000000000000000000000
[4] = 00000000000000000000000000000000
[5] = 00000000000000000000000000000000
[6] = 00000000000000000000000000000000
[7] = 00000000000000000000000000000000
[8] = 00000000000000000000000000000000
[9] = 00000000000000000000000000000000
But sometimes (this happens randomly), some of the other channels also have values inside them:
SPIBuf = 0x000056DA@DATA
[0] = 00000000110000000000000000000000
[1] = 00000000111111111011011000000100
[2] = 00000000000000000000000000000000
[3] = 00000000000000000000000000000000
[4] = 00000000000000000000000000000000
[5] = 00000000000000000000000111111111
[6] = 00000000110000000000000000000000
[7] = 00000000111111111011010111100110
[8] = 00000000000000000000000000000000
[9] = 00000000000000000000000000000000
This is also happening when I'm using more than one channel. Data coming from the ADS is just garbled.
As I increase the speed of ADS chip this start to happen more often, and when speed is set to 32K, I always get invalid data from SPI. I'm guessing this is related to SPI and not to the actual ADS chip. I tried increasing the speed of SPI but that didn't make any difference.
Any help is welcome, since for our project we should run the ADS on 32Ksps, and I'm struggling to get valid data on that speed.