您好! 希望你们做得好!
我正在使用 ADS1248从其中的所有4个通道读取电压。 因此、我必须通过写入该 ADC 的 MUX0寄存器来循环浏览通道。 在 ADC 的首次初始化期间、我将设置 SPS、IDAC 电流、PGA 值、选择通道1等。 我不会将 ADC 的 START 引脚保持在高电平、但在某种程度上、当我从 ADC 寄存器读回时、我可以轻松地验证并查看寄存器是否发生了更改和更新、这不是德州仪器在数据表中描述的那样。 在数据表中、它指出 ADC 的 START 引脚应在寄存器读取和写入事务期间处于高电平。 这也很奇怪、因为通常使用 START 引脚来启动 ADC 转换、而不是更新寄存器值。 我正在使用 RDATAC 模式。 下面是我的伪代码在初始化时的样子、
- START 引脚设置为低电平。
- CS 引脚设置为低电平。
- 复位引脚设置为低电平。
- 等待0.2ms。
- 复位引脚设置为高电平。
- 等待0.9ms。
- 发送配置缓冲区(包括 RREG 命令以及用于读回寄存器的15个 NOP)。 如下所示、 Config_Buffer =[0x40、0x06、MUX0-OFC2、0x4A、 0x04、IDAC0-GPIODAT、0x20、0x0E、15NOPs]。
- 将接收到的值与发送的值进行比较。
- 将 START 引脚设置为高电平以开始数据采集。
当我比较它们时、它始终是正确的。 然后、我尝试执行上述操作、但现在 START 引脚保持高电平、直到比较结束状态、这也会产生相同的结果。
初始化后、我查找 DRDY 引脚的第一个下降沿;当我得到该下降沿时、我发送3个 NOP 以读取数据;读取完成后、我发送另一个具有新 MUX0 (将通道更改为通道2)、OFC0、OFC1和 OFC2 (用于偏移校准)的缓冲器。 将 START 引脚设置为低电平、直到经过25ms、在这里我将 START 引脚设置为高电平、等待 DRDY 下降沿、然后再次读取、这一次是从通道2读取、 然后通过写入 MUX0寄存器再次将通道更改为通道3、并使 START 引脚再次变为低电平、直到25ms。 它会持续到4个通道被读取并重新开始。 此外、当我读回 MUX0寄存器以验证通道是否正确更改时、它有时会发送上一个通道的值、当我重新发送未更改通道的 MUX0值时、它会修复并更改通道。 简而言之、通道在大部分时间都是正确的、但有时当我没有接收到我写入 MUX0的值时、需要2或3次尝试更改。
我所面临的主要困惑是、ADS1248数据表要求在写入和读取寄存器时保持 START 引脚为高电平、但它也在使 START 引脚设置为低电平的情况下工作。 这是正常的吗?
谢谢!


