ZHCSPR9 December 2023 AFE782H1 , AFE882H1
PRODUCTION DATA
HART 总线通信活动将通过路由到 UARTOUT 引脚和 MODEM_STATUS 寄存器的 IRQ 信号报告给主机控制器。当接收到 IRQ 时,通过读取 MODEM_STATUS 寄存器来确定 IRQ 的来源。如果未连接 UARTOUT 引脚,请通过 SPI 定期轮询状态寄存器。
要发送数据,请使用 FIFO_CFG.U2H_LEVEL_SET 设置所需的 FIFO_U2H 级别阈值。将 RTS 置为有效。设置了 CTS_ASSERT 后,开始填充 FIFO_U2H。使足够的数据进入 FIFO_U2H 的队列中,将 FIFO 填充到高于设置的阈值级别。HART 调制器会自动使数据从 FIFO_U2H 出队,并在 MOD_OUT 上发送该数据。当 FIFO_U2H 级别降至低于设置的阈值时,便会触发 IRQ,指示新数据字节可以入队而不会丢失任何数据。在最后一组数据进入 FIFO_U2H 的队列后,可以忽略由级别标志触发的 IRQ 事件。等待由 FIFO_U2H_EMPTY_FLAG 触发的 IRQ 事件。在所需的延迟后将 RTS 置为无效;另请参阅节 6.3.5.6。当 RTS 置为无效后,设置 CTS_DEASSERT 位。CTS_DEASSERT 是一个信息位。
要接收数据,请根据 CD_ASSERT 来设置 IRQ 事件,以了解何时检测到载波并需要新的数据字节。此外,应设置额外的 IRQ 事件在每次设置 FIFO_H2U_LEVEL_FLAG 时触发。选择所需的 FIFO_H2U 级别。每次级别超过设置的阈值时,都会使数据从 FIFO_H2U 出队。此外,根据 CD_DEASSERT 设置 IRQ 事件触发,以了解何时接收到所有数据。此时,在每个字符出队时监控 FIFO_H2U.EMPTY_FLAG,以了解何时 FIFO_H2U 清空以及所有数据字节已出队并发送到微控制器。
或者,CD 引脚可以直接连接到微控制器来监控 HART 总线的状态。在此配置中,应通过设置 MODEM_STATUS_MASK.CD_ASSERT 位 = 1 来屏蔽 CD_ASSERT 标志,以防止 CD_ASSERT 生成 IRQ 事件。