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.

[参考译文] DAC8742H:丢失中断信号的情况...

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1125595/dac8742h-the-case-of-the-missing-interrupt-signal

器件型号:DAC8742H

我使用的开发板通过 SPI 连接到8位处理器。  我能够注入以下字节的10字节 HART 字符串:  0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x02 0x80 0x00 0x00 0x82。  Rx FIFO 缓冲区电平设置为1、 并确保 在 IQR 屏蔽寄存器中为 FIFO_M2D_LEVEL 启用中断。  我在所有 SPI 线路上都有一个逻辑分析仪探针、其中包括 IQR 输出和芯片选择、还有一个通道向我显示传入的 HART 信号。   我已经设置了相应的寄存器、以触发警报/中断、从而进行载波检测以及通过 HART 到达的每个新字节。  (FIFO 接收深度= 1)  

正如预测的那样、DAC8742会在每次新的载波检测突发时生成 IQR 信号。  所以、没有问题。  我希望在每个通过 HART 到达的新字节之后、每个 FIFO 级别警报触发器都能看到后续的中断脉冲、而大部分时间正好是发生的情况。  但是、在(也是)很多情况下、载波检测之后的第一个字节上没有收到中断。  相反、我始终获取 到达的其余9个字节的每个中断脉冲。  就好像它没有检测到到达 HART 输入的10个字节中的第一个字节。   

此外、如果我禁用 CD 中断、也会发生同样的情况。  它仍然无法在第一个字节上生成 IQR 脉冲、但将始终在剩余的九个字节上生成脉冲。   

有时、由于没有明显的原因、我会得到全部10个 IQR 脉冲-每个字节一个、如预期的那样。   

丢失的中断脉冲发生了什么情况?

提示?  线索?  

BTW、datasheet...it 可以更好。   

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

    您好!

    与 捕获整个事务相比、它缺少第一个字节的频率如何?

    您是否使用 DAC8742HEVM 或其他电路板与 DAC 进行交互? HART 信号是从 DAC8742H 生成还是从任何外部源生成?

    您能否在示波器上绘制 CD 和 HART 信号(以及 UART、如果可用)并共享捕捉? 请包含通过和失败的案例。  

    您的逻辑分析仪是 Saleae 吗? 如果是、也要共享您的逻辑文件。

    谢谢、
    卢卡斯

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

    与 捕获整个事务相比、它缺少第一个字节的频率如何?

    成功的次数多得多。

    您是否使用 DAC8742HEVM 或其他电路板与 DAC 进行交互?

    我们将自己的板用作初始开发平台、该平台连接到"EVM"板的接头引脚。  我有另一个板、用于处理连接 HART 调制解调器的4-20mA 回路的模拟部分。  外部5V 电源"EVM"板、我的处理器板和回路电路的一部分。  用于回路的独立隔离式24V 电源。   

     HART 信号是从 DAC8742H 生成还是从任何外部源生成?

    连接到 PC 的 HART 调制解调器提供的外部源。 在"EVM"板上、BPF_EN 和 REF_EN 均设置为5V。  内部振荡器。  我尝试使用2200pF 和2700pF 电容器-没有区别。  

    您能否在示波器上绘制 CD 和 HART 信号(以及 UART、如果可用)并共享捕捉?

    O'Scop?  不是真的。  (使用 SPI。)

    您的逻辑分析仪是 Saleae 吗?

    是的!  我尝试在此处上传 Saleae 文件。  不管用。  除非有另一种方法附加分析器文件、否则图像现在必须起作用。

    第一个图像显示了在接收第一个字节后的 CD 中断。   

       

    第2个图像显示了 CD 中断、无字节 Rx、后跟第二个字节到达。   

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

    您好!

    只需确认一下、您是否正在使用自己的电路板将 HART 信号发送到 DAC8742HEVM?

    您的 J9、J10、J11、J12和 J16跳线配置是什么? 您也可以随意发送电路板图片。

    在第二个屏幕截图中、第二个中断是否包含第二个数据字节?

    您的 IF_SEL 引脚的状态是什么?

    我也会联系其中一位设计人员。

    谢谢、
    卢卡斯

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

    只需确认一下、您是否正在使用自己的电路板将 HART 信号发送到 DAC8742HEVM?

    否。PC APP -> HART 调制解调器连接在环路内的250欧姆电阻器上。   

    您的 J9、J10、J11、J12和 J16跳线配置是什么?

    JP9: 2和3

    JP10: 2和3

    JP11:1和2

    JP12:常闭

    JP16:5和6

    在第二个屏幕截图中、第二个中断是否包含第二个数据字节?

    当然。  有五个前导码字节、它们都是0xFF。  是否发送了第一个或第二个?  德南。  这是一件事...  接收到 CD 中断时、我尝试查询状态寄存器。  也就是说、在检测到 CD 时、我会持续轮询状态寄存器、以查看其中的内容-如果有字节存在的任何指示-什么也没有。  我对 FIFO 寄存器执行了同样的操作。  在检测到 CD 时进行持续轮询、以查看字节是否存在、但中断并未生成。  没有。  即使 DAC8742检测到载波信号、它也好像从未看到第一个字节。   

    您的 IF_SEL 引脚的状态是什么?

    为 SPI 设置 IF_SEL。  我假设这是可行的、因为我使用 SPI 来写入各种寄存器、进行更改、并从这些寄存器读回以进行验证。  因此、我的低级读取和写入 SPI 命令似乎可以正常工作。   

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

    您好!

    您的跳线配置看起来适用于内部滤波。 IF_SEL 也正确。

    您可以尝试增大 HART 信号的大小吗?

    您的控制寄存器中的 IRQ_LEVEL 是否设置为0? 如果是、请尝试将其设置为1并查看是否有任何更改。

    您是否可以发送唯一的前导码字节、而不是发送5个前导码字节、以双击是否始终跳过第一个字节? (即0xFF、0xFE、0xFD...)。 您是否在 CD 的第一个指示处读取缓冲区? 此时、缓冲区中应该没有可用的数据。  

    此外、您能否尝试将 FIFO 接收级别更改为10而不是1? 我们可以查看更长的通信是否正常工作、以及是否是级别为1的问题。

    设计人员也在周五下班、因此我可能需要等到那时才能获得他的意见。

    谢谢、
    卢卡斯

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

    您可以尝试增大 HART 信号的大小吗?

    增加了环路电阻值、从而增加了到达 DAC8742EVM 的 HART 信号电压。  不变。  

    您的 IRQ_LEVEL 是...

    我几天前尝试了这两种设置。  除了一个设置有效(产生了脉冲)和另一个设置不起作用外、不要记住准确的结果。  我更喜欢脉冲、因此我坚持使用该设置并继续。  

    您能否发送唯一的前导码字节、而不是发送5个前导码字节...

    不可以。 我使用的是具有固定0xFF 字节的 HART 主控类型 PC 程序。  我可以滚动自己的计划、但时间是一个考虑因素。

    您是否在 CD 的第一个指示处读取缓冲区? 此时、缓冲区中应该没有可用的数据。  

    没错。  是的、在 CD 之后尝试读取状态和 FIFO 寄存器。  缓冲器指示中无字节。  这就是我在上面写文章时的意思:

    "接收到 CD 中断时、我尝试查询状态寄存器。  也就是说、在检测到 CD 时、我会持续轮询状态寄存器、以查看其中的内容-如果有字节存在的任何指示-什么也没有。  我对 FIFO 寄存器执行了同样的操作。  在检测到 CD 时进行持续轮询、以查看字节是否存在、但中断并未生成。  没有。  即使 DAC8742检测到载波信号、它也好像从未看到第一个字节。"   

    此外、您能否尝试将 FIFO 接收级别更改为10而不是1?

    当我有更多的时间时、我会得到这个结果。  但是、我不希望最终管理与此部件的通信。   

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

    您好!

    我想了解将 FIFO 接收级别更改为10是否会导致任何情况下的行为有所不同。

    我们的数字设计人员将于周五返回、届时将提供更多信息。

    我们还在获取 EVM 以执行我们自己的测试。

    谢谢、
    卢卡斯

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

    您好!

    设计人员做出了响应。 他的消息如下:

    "根据我看到的波形、在我看来、在发送第一个起始位之前、载波没有足够的时间。  这将导致忽略第一个字符。  我认为数据表规定、在将 CD 置为有效之前、需要传输速率为1200Hz 的2.5位载波时间。  如果情况并非如此、则第一个字符可能会丢失。  如果在第一个起始位之前无法控制时间量、则应发送一个献祭前导码字符。

    设备似乎工作正常。"

    请告诉我这是否能解决您的问题。

    谢谢、
    卢卡斯

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

    因此、如果我理解正确、在器件考虑寻找起始位(?)之前、输入端需要有2.5位时间的1200Hz 载波信号值 然后将第一个字节读取到 FIFO 中。  这里是另一条跟踪、用于查看我不使用 CD 中断的位置。  也就是说、Rx FIFO 深度设置为我希望接收中断的级别。  您的意思是、在 HART "开始位"信号之前、需要在该 HART 信号的开头有2.5位值(时序)的1200Hz 载波?   

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

    您好!

    我认为情况确实如此、但我会与设计人员进行澄清以确保。

    谢谢、
    卢卡斯

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

    您好!

    提到的规格是 Tdeton、它在数据表中的最大位数为6、但通常应至少在2.5位时间内完成。 这是从接收路径上的载波到 CD 上升沿的时间。

    谢谢、
    卢卡斯