Part Number:ADS1298R
Hello,
I am communicating with the ADS1298 using a TMS320F28377S. I am able to program the ADC and verify that the registers are changing to the value I desire. However, once I put it in RDATAC mode I cannot get data from the DOUT pin. Here is an image of my waveform. Please note that the top DATA is DIN and the bottom DATA is DOUT.
I expect this to work as I start the clock once DRDY goes low. I also expect to see 0xC for the first nibble, then other data afterwards due to the defaults of the 24-bit STATUS. I shouldn't be seeing all 0s
Here is a copy of my ISR
interrupt void ISR_DRDY_XINT1(void)
{
//Delay_us(1);
ADC_DOUT = SPI_RX_DATA();
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1);
}
Here is a copy of my MAIN
void main(void)
{
General_Setup();
// Set up SPI, manual control over /CS-pin61
SPI_INIT();
// Begin Power up routine for ADC, requires manual control over /CS-pin61
ADC_POWER_INIT();
INTERRUPT_INIT(); // will cause above mentioned ISR to trigger when DRDY goes low
SPI_TX_CMD(SDATAC); // stop default data flow so we can write to registers
SPI_RX_BYTE(ID); // verify SPI works by confirming ID
SPI_TX_STRING(ADC_INIT_ADDR, ADC_INIT_DATA, sizeof(ADC_INIT_ADDR)); // Program the device: write to register and read from register to confirm proper write
SPI_TX_CMD(RDATAC); // put device is read data continuous mode
SPI_TX_CMD(START); // start data conversions
while(1); // wait here forever while ISR get triggered
}