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.

[参考译文] DAC8741H:IRQ 断言

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1074707/dac8741h-irq-assertion

部件号:DAC8741H
“线程:测试”中讨论的其它部件

我似乎无法检测到载波检测上的 IRQ 针脚。 我已启用 DUP_EN 来测试信号链。 我已经用两个读数进行了验证,一个读数在启用外部输入缓冲之前,一个读数在状态寄存器中,CD 位达到了我的期望值并设置为高。 但从不断言 IRQ 针脚。 我的 IRQ 寄存器中也有0。 我在这里错过了什么?

请您提供建议吗?

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

    瑞安

    我唯一能想到的是 CD 的 MODE_IRQ_MASK 设置。 如果 MODE_IRQ_MASK (寄存器地址0x21)的 CD 位([1])设置为 HIGH,则 IRQ 的载波检测触发器将被屏蔽。 有关 SPI 接口 HART 的第8.4.3节对此进行了一些讨论。 我认为您也可以检查接收 FIFO 级别阈值,如同一节所述。  

    不管怎样,您是否可以读回 MODE_IRQ_MASK ,并让我知道寄存器中写入了什么内容?

    吴约瑟

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

    你好约瑟夫

    我可以确认我读出了0x24,这是寄存器重置值。 是否有任何方法取消 IRQ?

    谢谢

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

    你好,瑞安,

    乔不在办公室时,我会接手这项工作。  明天我会收到你的回复。

    谢谢,

    保罗

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

    你好,瑞安,

    正如 Joe 在前一份答复中所提到的,您能否检查接收先进先出阈值级别?

    此致,

    AK

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

    大家好,它最初设置为0,然后设置为1,再次测试,但它仍然没有声明。 只有在芯片从硬复位启动时才会出现脉冲。 我还检查了控制寄存器,IRQ_POL 和 IRQ_LEVEL 均为0,但我正在读取 IRQ 针脚上的高电压电平。

    谢谢

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

    你好,瑞安,

    Joe 应该在今天或星期一回到办公室继续帮助您解决此问题。 感谢您的耐心等待。  

    最佳

    Katlynne Jones  

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

    瑞安

    很抱歉,我最近没有回复,但我已经离开办公室了。 我仍然 对 为什么没有设置 IRQ 感到有些意外。 您是否曾尝试使用 IRQ_LEV=1以便于查看该值,而不必在脉冲后触发?

    您是否可以报告设备的注册设置(所有注册,以防万一)? 我想知道在启动后向寄存器写入的内容和写入顺序。 此外,一般情况下,获取一些有关系统的信息可能会有所帮助。

    我还会与其中一位原始设计人员核实,看看他是否有任何想法来解释为什么不设置 IRQ。

    吴约瑟

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

    约瑟夫,你好,没问题。 在启用多路复用器之前,以下各项按此顺序在启动时进行注册及其值:

    状态0x20 - 0xC025

    IRQ 0x21 - 0x7FFD

    控制1 0x02 - 0x8052

    控制2 0x22 - 0x01FD

    FIFO 级别0x25 - 0x0011

    顺序为:

    //重置设备寄存器
    modem_reset_address write_modem

    //读取所有寄存器并在本地复制值以保持最新
    modem_status_address read_modem

    //Block all events that trigger IRQ pin from CD (阻止除 CD 之外的所有触发 IRQ 的事件)
    调制解调器 IRQ_MASK_address write_modem
    调制解调器 IRQ_MASK_address READ_MODEM

    //Configure CRC for all communication from now on to make a full 32位帧
    modem_control_address_1 read_modem
    MODE_CONTACT_ADDRESS_1 WRITE 调制解调器
    modem_control_address_1 read_modem

    //写下五分之二的阈值
    调制解调器_FIFO 级别设置地址 write_modem
    调制解调器_FIFO 级别设置地址读调制解调器

    //读取控件2寄存器
    modem_control_address_2读_调制解调器
    MODE_CONTACT_ADDRESS_2 WRITE 调制解调器
    modem_control_address_2读_调制解调器

    //读取状态寄存器以本地更新
    modem_status_address read_modem

    我确实尝试了脉冲和逻辑电平,但我只看到在配置寄存器之前在引脚上发生了一些事情,以后再也不会发生。

    我希望在 设置 RTS 位后 IRQ 引脚切换/逻辑电平,以启用载波信号,并在 MUX 配置为环回时简单地检测到该信号?

    我的系统位于随附的示意图中。 输出馈送至 MUX 和来自 DEMUX 的输入,两个 MUX 都位于同一通道上,因此它是一个电子回送。 我已经在硬件中验证了这一点,很明显,当 CD 位处于状态时,调制解调器会看到这一点。

    谢谢

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

    瑞安


    我确实和设计师交谈过,但我们没有找到您问题的具体答案。

    他确实有一些建议来帮助调试这一点。 在您的工作中,请保留 DUP_EN=1。 这可以确保您可以同时发送和接收全双工通信。 确保 MOD_OUT 路由到 MOD_In。 我知道您通过多路复用器设置了此项。 最好使用示波器查看信号,并确保 MOD_In (或 MOD_INF)的信号幅值足够大。 只要是这样,我就会发布 MOD_In 信号的范围照片。

    正如我所说的,他不知道为什么你会在寄存器中读取 CD,但在 IRQ 针脚处不知道。 我会再次验证掩码设置,但它似乎与您编写的方式正确(只允许 CD 将其关闭)。

    他还建议将 IRQ_LEVEL 和 IRQ_POL 设置为1。 同样,当信号持续而不是出现与信号跳跃相关的东西时,更容易看到 IRQ。 我会使用示波器来查看调制信号和 IRQ。 如果只有一个跳跃,可能它不会触发范围(我还是设置了 IRQ_LEV=1)。


    吴约瑟

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

    你好约瑟夫

    数据表所指定的正常和活动条件的措辞似乎很混乱。 IRQ_POL 0处于低有效状态 ,但在这种状态下通常为高。  CD IRQ 确实表明针脚过低。

    感谢大家的帮助。

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

    你好约瑟夫

    我只是想再次打开它,因为我在读取此配置中的 FIFO 时遇到问题。 我用环回配置发送调制解调器15字节,并验证调制信号到达调制解调器的范围。当尝试读取五分之四时,调制解调器要么不发送任何数据,要么在每次读取命令时重复发送相同字节。

    我尝试过许多不同的 FIFO 阈值级别,对于 TX,RX 1为15,RX 1为1,TX,TX 1为0,RX 1为0,似乎什么都不能修复。

    我是否正确地说,如果读数不正确,那么五分位数就会被编入索引?

    我是否需要做些其他的事情来为五岁以下的人编制索引?

    我正在启用 RTS 位,然后等待设置 CTS,然后发送字节,然后禁用 RTS,这是否是正确的过程?

    谢谢

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

    瑞安

    首先,绘制一个通信部分的示波器图解可能会有所帮助。 这将有助于解决任何与时间和边缘相关的问题。

    第二,如何从 FIFO 中调出数据? 该命令基本上应该是从 FIFO 寄存器(A4 FF FF)读取的,然后是 NOOP (00 00)。 我以前曾在下面的主题中作为 E2E 问题回答过这个问题,它可能也适用于您。

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/987444/dac8742h-issues-reading-from-the-rx-fifos-over-spi-when-using-the-dac8742h-in-hart-mode

    吴约瑟