Hi
I'm working with the ADS1256EVM board. Right now I have the ADC working with my DSP (DSPIC33FJ256GP506).
I need to cycle 3 channels and the output sampling rate must be at least 1000 SPS each, so 3000 SPS in total.
My problem is that when I have to change the MUX register, I'm loosing too much time, so I'm not able to have more than 2.232 kHz. I'm cycling the channels in the follwoing way:
//Change MUX register
switch(adcSelChannel)
{
case 0x01: adsWriteReg(ads_REG_MUX, ads_MUX_CH2, 1); break;
case 0x02: adsWriteReg(ads_REG_MUX, ads_MUX_CH3, 1); break;
case 0x03: adsWriteReg(ads_REG_MUX, ads_MUX_CH1, 1); break;
default: break;
}
//Send SYNC command to restart conversation
adssync(1);
//WAKEUP command
adswakeup(1);
//RDAT command to read data from ADC
adsrdata(1);
//Receive 24 bit Data
spi1Ctrl(spiCTRL_RECEIVE, 1, 3);
So Is it possible to reach the 3000 SPS? According to the datasheet I should be able to get a cycling throughput of 4374 Hz, which would be enought. So what am I doing wrong? Below you can see a scope picture, this was recorded with a ADC sampling rate of 7500 Hz, you can also see the throughput rate of 2.232 kHz.
Thans for any help!
Stephen