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.

[参考译文] ADS122U04:ADC 在随机时间间隔后停止发送

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1220952/ads122u04-adc-stops-sending-after-a-random-interval-of-time

器件型号:ADS122U04

我已让 ADS122u04与 STM32通信、这在一段时间内运行良好、但在随机时间段后、通信停止、UART 超时、我无法从 UART 获取任何其他内容。  软件复位0x55 0x06失败、我使电路板再次工作的唯一方法是重新加载程序。  尝试读取寄存器也会失败。

规格:

 运行单次模式并轮询寄存器2中的 DRDY 标志。  它变为低电平然后高电平。

2. 10uS 寄存器设置延迟和100uS 复位延迟。  通信波特率为115200。

3. 数据速率设置为最低速度,正常模式下为每秒20个样本。

4. 在两个 PT100传感器之间切换,根据需要切换数据输入多路复用器。

5. STM32上的 UART 处理程序是使用 STM32Cube 创建的、因此这可能没问题。   我使用无中断或 DMA 的轮询。

不知道什么原因会导致 ADS122U04停止发送数据?

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

    您好、Lee、

    您能否使用逻辑分析仪再次检查您的数字计时? 导致此问题的可能原因是、您是向 ADC 发送命令/数据、而 ADC 正在移出数据或响应先前的命令、因此总线已锁定。

    此致、

    戴尔

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

    此问题似乎在 STM 端。  每当我获得 HAL_TIME_OUT 时、我们就会在 STM 上重新初始化 LPUART1。  问题仍然存在、为什么会发生这种情况?

    据我所知、所有的通信都是半双工的;发送寄存器更改、等待10us、然后接收。

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

    实际上、经过进一步调查、问题在于 ADS122U04。  出现的情况是、在 RDATA 之后、偶尔发出的数据小于3个字节。  STM 上的 UART 需要3个字节、当接收到小于这个字节的数据时、超时标志被置位、并且永远不会被清零。  没有更多信息可以读取。

    下面是我的读取序列的伪代码:

    1. 发送启动命令

    2. 等待10uS

    3. 轮询寄存器2中的 DRDY 以确定 DRDY 由低电平变为高电平、在每次发送后等待10us

    3. 发送 RDATA

    4. 等待10uS

    5. 读取3个字节

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

    尊敬的 Lee Holeva:

    您的通信波特率为115200、因此每条命令(START、RDATA...) 需要8*(1/115200)=86.8us 才能完成数据传输。 我不确定是否已检查 STM32控制器上的 UART 缓冲区以确保缓冲区已完全清空、然后再执行下一步读取操作。 为了进行测试、我建议将您的10us 延迟时间延长(例如10ms)。

    此外、该 ADC 的数据速率仅为2ksps、因此 我建议保持较长的时间间隔、以便在第3步中检查 CR 寄存器中的 DRDY 位、频繁读取寄存器和检查该位可能会占用总线并导致总线冲突。

    您能告诉我您在 ADC 上的寄存器配置吗?

    此致、

    戴尔

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

    好的、问题似乎是由寄存器2中的 DRDY 轮询导致的。  我将 POLL 操作替换为转换时间延迟、温度转换现在可以正常工作、没有任何加速。  我将寄存器稳定延迟保持在10us。