亲爱的人们:
我在单次模式下使用 ads124s08一个通道、并使用通过 COM 运行 LabVIEW Code 的主机 PC 对其进行控制。
如果我启动 LabVIEW 代码、ads124s08并运行以下第 I 节和第2节代码:
第1节:(在 main 函数中)
将 CS 设为低电平;
td 延迟(CSST);
发送 RESET 命令(06h)、确保器件在上电后正确复位;
延迟4096·tCLK;
使用 WREG 命令写入相应的寄存器配置;(设置单次触发;PGA;采样率;选择单通道 AI6+AI7)
td 延迟(SCCS);
将 CS 清除为高电平;
将 START/SYNC 设置为低电平;
延迟至少为24tCLK·;
将 START/SYNC 设置为高电平; //首次启动 ADC 单次转换
延迟至少为28tCLK·;
将 START/SYNC 设置为低电平; // ADC 转换完成,停止进行下一次转换
第2节:(在中断函数中)
环路
{
等待 DRDY 转换为低电平;(中断)
将 CS 置为低电平;
td 延迟(CSST);
发送 RDATA 命令;
发送24个 SCLK 上升沿以读取 DOUT/DRDY 中的转换数据;
td 延迟(SCCS);
将 CS 清除为高电平;
将 START/SYNC 设置为高电平; //再次开始 ADC 单次转换
延迟至少为28tCLK·;
将 START/SYNC 设置为低电平; // ADC 转换完成,停止进行下一次转换
//等待/DRDY 中断
}
通过这种方式、ads124s08将在单次模式下"连续"采集。 然后我停止 LabVIEW 代码、它将在第2节中停止循环。 到目前为止情况非常好。
问题是、如果我再次重新启动 LabVIEW 代码、有时(可能是20%)我可以看到第一个样本显然是错误的(其余样本都是正常的)。 通过进一步的研究,我发现错误的第一个样本正是前一次采集的最后一个样本,如下图。
我个人认为问题可能来自 内部数据保存寄存器、因为我是通过 RDATA Command 读取 ads124s08。 似乎我在第2节中停止循环、并重新启动第1节、最后一个样本可以保留在数据保存寄存器中、主机 LabVIEW 将在下一次采集中再次读取。
我的问题是,
1) 是否有办法可以完全清除数据保存寄存器中的数据、以便以后采集时永远不会读取数据?
2) 在第一节中,我发送一个延迟4096*tclk 的 RESET 命令,尝试重置 ads124s08。 但结果不好、因为我仍然可以找到错误的第一个样本。
3) 此外,从数据表第66页,"重置命令重置数字滤波器并将所有配置寄存器值设置为默认设置". 复位对数据寄存器没有影响?
4) 当然、如果我关闭设备硬件电源然后再次打开电源、一切都运行良好。 我从未见过错误的第一个样本。 但我在实际工作中无法做到这一点。
关于 RDATA 命令、您能提供一些建议吗? 谢谢。