线程中讨论的其他部件: ADS1262, ADS124S06, ADS1248
我正在负荷传感器应用程序中轮询ADS1231。 在我应用负载的情况下,我通常获得小于0x20万的ADC值。 有时我得到的ADC值为0x?FFFF。
我的代码是
void ReadAdc()
{
IF( GetDataBit())
{
返回;
}
//读取数据
long newValue =0;
for (int nBit=0;nBit<24;nBit++)
{
时钟(Clock_PIN);
新值<<= 1;
newValue += GetDataBit();
}
//添加另一个时钟以强制数据引脚高电平,以便上述轮询正常工作
时钟(Clock_PIN);
}
void delay() { delayMicroseconds(1);}
Void Clock (int nPin) { digitalWrite (nPin,1);Delay();digitalWrite (nPin,0); Delay();}
从示波器跟踪中,我可以看到,当我获得错误读数时,dout针脚在时钟脉冲中保持高位。
虽然我在开始读取之前正在检查DOUT是否过低,但我没有与ADS1231采样间隔同步,因此在我的轮询期间有可能启动新的采样。
我是否需要等待DOUT时钟高时低时,以便与采样间隔同步?
是否有更好的部分可用于此应用程序(理想情况下,我希望在大约1ksps的情况下使用20多位)