This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1298R:在RDATAC模式下,Dout没有响应

Guru**** 2487425 points
Other Parts Discussed in Thread: ADS1298

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/638303/ads1298r-dout-not-responding-in-rdatac-mode

部件号:ADS1298R
线程中讨论的其他部件:TMS320F2.8377万SADS1298

您好,

我正在使用TMS320F2.8377万S与ADS1298通信。 我能够对ADC进行编程,并验证寄存器是否更改为所需的值。 但是,一旦我将其置于RDATAC模式,我就无法从DOUT引脚获取数据。 这是我的波形图像。 请注意,顶部数据为DIN,底部数据为DOUT。  

我希望在DRDY变低时启动时钟时,这种方法会起作用。 由于24位状态的默认值,我还希望在第一个半字节中看到0xC,然后看到其他数据。 我不应该看到所有的0

这是我的ISR的副本

 中断无效ISR_DRDY_XINT1 (无效)
 {
  //delay_us (1);
  ADC_DOUT = SPI_RX_DATA();
  interrupT_clearACKGroup(interrupT_ACK_Group1);
 }

这是我的主页的副本

Void主(void)

 常规设置();

   //设置SPI,手动控制/CS-pin61
   SPI_init();

   //开始ADC的通电例程,需要手动控制/CS-pin61
   ADC_POWER_INIT();

 interrupT_init();// 将导致上述ISR在DRDY变低时触发

   SPI_TX_CMD (SDATAC); //停止默认数据流,以便写入寄存器
 SPI_RX_BYTE (ID);  //通过确认ID验证SPI工作
 SPI_TX_STRING(ADC_INIT_ADDR, ADC_INIT_DATA, sizeof(ADC_INIT_ADDR); //对设备进行编程:写入寄存器,读取寄存器以确认正确写入
 SPI_TX_CMD (RDATAC); // PUT器件处于读取数据连续模式
 SPI_TX_CMD (START);  //开始数据转换

  while (1); //在ISR被触发时,请永远在此处等待
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Seth:

    我不能立即确定问题可能是什么。 我知道在RDATAC模式下不应该发送任何SPI命令,因此start命令应该在重新启用RDATAC之前发出。

    尽管如此,设备似乎正在转换,因为您捕获的/DRDY值变低。 如何在主板上配置起始引脚?

    此致,
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Ryan:

    我现在有start命令出现在RDATAC命令之前。 到目前为止,我在LSA上获得了相同的输出。

    在整个程序期间,我一直保持低起始针脚。

    此致,
    Seth KIttles