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.

[参考译文] DAC8740H:HART 解调到 UART 有成帧错误

Guru**** 2553190 points
Other Parts Discussed in Thread: DAC8740H

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1558152/dac8740h-hart-demodulation-to-uart-has-framing-errors

器件型号:DAC8740H


工具/软件:

您好:

我将使用 DAC8740H 和 UART 构建一个 HART 现场器件 (DUT)。 硬件与数据表中的参考设计图 34(第 33 页)类似。

我将使用经认证的 USB HART 调制解调器作为主机、它将 HART FSK 信号传输到 DUT。 该信号包含 UART8O1 数据。 该错误发生在最后的字节 4 UART8O1 封装(最后 4 个字节:0xa3d70ac2)上。
但是、从 DAC8740H 到 MCU 的 DUT 上的 UART 信号存在很多成帧错误。 使用示波器测量 FSK 信号会显示正确的信号:

C1 是 DAC8740H 中的 UART、M4 是参考设计中 DAC8740H 和 C7 之间测量的 FSK。 但是、M4 会延迟、以便与 UART 同步。

C2 是在 C7 之前在 24V 上调制的 FSK、而 C4 是 DAC8740H 和 C7 之间的 FSK、没有延迟。

通过查看停止位、可以看到 1.2kHz FSK 信号、该信号会转换为高电平信号。 这是调制解调器的问题吗? 还有其他问题吗?

此致、

Nico

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

    Nico、

    我查看了该图、似乎停止位被误解了。 看起来这是 您提到的最后四个 0xa3d70ac2 的 0xd7 字节传输。 当然,我还不知道这是什么。  

    您能否提供设置的示意图? 我认为只有 DAC8740H 部分就可以了。 需要说明的是、这是 HART 接收中的错误、那么这是进入 MOD_IN 并从 UART_OUT 发出的 HART 信号? 您接收的总传输时间是多长? 您是否仅在最后四个字节中收到错误? 字节通信之间是否有任何额外空间?  您是否使用外部振荡器或 DAC8740H 内部时钟?

    同样、我不确定这是什么、但我想问一些有关您的设置的问题、以帮助我理解这个问题。


    Joseph Wu

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

    您好:吴志伟:

    以下是我的 DAC8740H 原理图:

    我使用内部时钟和内部滤波器。 然而、我也将 1V5REF2 用于 4 –20mA 接口作为 Vref(数据表中的图 35)。 测量的电压为 1.48V。 从 4 –20mA 接口删除后、组帧错误仍然存在。 在新设计中、它将被删除、因为这是一种不好的做法。

    测量是在 UART_OUT (HART_RX) 和 MOD_IN (TP4) 上进行的。 这是硬盘接收中的错误。 总传输包含 19 个字节:0xFF ff ff ff ff ff off 82 80 00 00 00 00 83 05 03 3b A3 D7 0A C2

    错误可能到处都出现、但在最后 4 个字节中更常见。 没有额外的空间。 以下是包含错误的完整传输(UART 绿色,载波检测红色)的快照:

    示波器中相应的 UART 表如下所示:

    UART 稳定时间 数据 DataLength 比特率 链路状态
    1. 000137119 0xFF 8. 1229
    2. 001029511. 0xFF 8. 1223
    3. 01926916 0xFF 8. 1225
    4. 002822701 0xFF 8. 1198
    5. 003741116 0xFF 8. 1225
    6. 004636719 0x82 8. 1200
    7. 05553302. 0x80 8. 1200
    8. 06463106. 0x00 8. 1221
    9. 0.07348395 0x00 8. 1204.
    10. 008259699 0x00 8. 1203.
    11. 009171101. 0x00 8. 1204.
    12 0.10080915 0x83 8. 1200
    13 010973115 0x05 8. 1199
    14 01189131 0x03 8. 1216
    15 012783712 0x3B 8. 1200
    16 013717708. 0xa3 8. 1150 组帧错误
    17 0.14924114 0x3D 8. 1202. 组帧错误
    18 015922316 0x98 8. 1233 组帧错误
    19 0.17147903. 0xFF 8. 1214

    值得注意的是比特率通常高于预期的 1.200kbit/s 另外,我旋转数据来确定是否包长度或字符 是错误的因子: 0xFF ff ff ff ff ff ff ff ff ff ff ff off 05 03 3b A3 D7 0A C2 82 80 00 00 00 83。 3ba3d7 数据中出现的错误仍然最多。

    通过进一步的测量、我发现 FSK 信号的传输帧长度通常为 8.9ms、远低于 HART 协议预期的 9.17ms+–1%:

    这是在外部认证的 HART 调制解调器和 400R 的分流电阻条件下测得的。 它显示了具有开始位、小端字节序数据、奇偶校验位和停止位的 0x01 帧。 整个帧只需要 8.854ms。 我也会联系外部 HART 调制解调器的制造商。 DUT 上的 HART 调制解调器是否不同步?

    如果您对我的设置还有任何疑问、或者如果我可以协助进行测量、可以随时提出问题。

    此致、

    Nico

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

    Nico、


    “对不起,我不知道该怎么办。“

    HART 信号看起来速度有点快。 如果传输的帧长度为 8.854ms、大约比预期快 3.4%。 我确实预计 DAC8740H 将能够跟上帧速度的一些不匹配情况。 不过、这有点太多。

    不过、能否检查 DAC8740H 的传输以查看信号的时序? 您可能只能设置/RTS 并打开 DAC8740H 调制器。 发生这种情况时、器件应发出 1200Hz 正弦波。 通过该工具、您可以检查器件是否也处于正确的频率(该 1200Hz 输出是否过于快或太慢?)。

    我本以为任何给定的帧都可能被误读、因此我不会想到帧结束时会出现所有问题。 但是、我认为更快的帧确实可能是问题所在。


    Joseph Wu