Other Parts Discussed in Thread: ADC088S022
I am attempting to use the uDMA SPI on the TM4C129 in 8-bit ping pong mode to continually acquire data from an external ADC (the TI ADC088S022). This ADC is to go on the tip of a set of electrodes with a low noise amplifier design to minimize noise. The TM4C129 will go on a separate PCB. I have set up the TM4C129 to sucessfully communicate via uDMA with another board and am now attempting to get it to communicate with the ADC. The problem I am having is in the timing. The TM4C129 is set up for 8-bit transfer using SPI uDMA ping pong mode. The board uses an interrupt on Timer 0 to send the address of the ADC channel required to the ADC088S022. This is all set up for a transfer at 50KSPS, ie a 0.8 MHz clock and an interrupt that triggers every 20us. The ADC is setup with a 5V supply. Upon reading the data, I can see that when a 3.3V signal is sent to one of the channels, the value received and stored is 10. When a 5V signal is sent to one of the channels, the value received is 15. I believe this is because of a timing issue. According to the datasheet, the first 4 bits received from the ADC are 0, the 8 data bits are then sent followed by another 4 zeros. This may be the reason why for 5V, although I should be seeing a value of 11111111, I am only seeing a value of 00001111. And for 3.3V, why I am seeing a value of 00001010 instead of 10101010. Can anyone suggest to me how I can get around this issue, I am relatively new to using uDMA and have never used this ADC before. Here is the link to the ADC datasheet for reference.