主题中讨论的其他器件:AFE881H1,, AFE882H1
您好、Joseph:
我们面临 HART 数据传输的问题。 我在下面给出了详细说明。
问题:大约每100个 HART 帧、尽管已通过 SPI 发送到 AFE881H1` FIFO_U2H_WR `寄存器、但在` HART_OUT `的前导码字节后不久就不会传输一个字节。
请参阅下面的示例 SPI 协议跟踪。 它`5个前导码字节、然后写入` FIFO_U2H_WR 的11个数据字节。
数据:h0E | h00、h00 | h00、h49 | h00、h4 | h00、-申明 RTS 数据:hA0 | h04、h00 | h00 | h48 | hab、-读 alg_status 数据:h00 | h84、h00 | h40、h00 | h00 | h00 | hFB、数据: hA1 | h04、h00 | h00、h00 | h23 | hab、-阅读 GEN_STATUS 数据:h00 | h84、h00 | h40、h00 | h90、h00 | h02、数据:hA2 | h04、h00 | h00、h00 | hab、9E、-读取 MODED_STATUS 数据 : h00 | h84、h00 | h00、h00 | hb、 h00 | hf、数据:h2 | h04、h00 | h00、h00 | hab、-阅读调制解调器状态 数据:h00 | h84、h00 | h00、h00、h00 | hD9、h00 | hA1、数据: h9F | h04、h00 | h00、h00 | h00、hee | hab、-读取 modem_status_mask 数据:h00 | h84、h00 | hFC、hab | hfA、h00 | hA0、数据:h1f | h04、hFC | h00、h00 | f9、hbC | hem_status_mask 数据: h15 | h00、h01 | h00、hFF | h00、h84 | h00 、-写入 FIFO_U2H_WR 数据:h15 | h00、h01 | h00、hf | h00、h00 、h84 | h00、数据 :h15 | h00 | h01 | h00、h00 | h00、数据: h15 | h00、h01 | h00、hff | h00、h84 | h00、数据:h15 | h00、h01 | h00、hff | h00 、h84 | h00、数据 :h15 | h00、h01 | h00、h00 | h00、h77 | h00、数据: h15 | h00、h00 | h00、h80 | h00、hb | h00、数据:h15 | h00、h01 | h00、h77 | h00、-不在 hart_out 上传送 数据:h15 | h00、h00 | h00、h4 | h00、h93 | h00、数据: h15 | h00、h01 | h00、h00 | h00、h77 | h00、数据:h15 | h00、h01 | h00、h0C | h00 、h53 | h00、数据 :h15 | h00、h00 | h00、hFE | h00、h96 | h00、数据: h15 | h00、h00 | h8 F | h00、hC6 | h00 、数据:h15 | h00、h01 | h00、h71 | h00、h27 | h00、数据 :h15 | h00、h01 | 6c、h05 | h00、h00 | h00、数据: h15 | h00、h00 | h00、h07 | h00、h77 | h00、
在本例中、尽管已写入 U2H FIFO、前导码字节后的第三个字节值"0x00"仍不会在 HART_OUT 上传输。 以下波形是使用连接到 AFE881H1EVM 上 TP15的探针捕获的。
此实施方案遵循 AFE881H1数据表"7.3.5.9使用 SPI 的 HART 通信"中的建议。
使 RTS 生效。 设置了 CTS_ASSERT 后、开始填充 FIFO_U2H。 将足够的数据排队到 FIFO_U2H 中、以填充高于设置阈值水平的 FIFO。
这一点值得注意、因为在置位 RTS 之前将数据写入 U2H FIFO 时不会发生错误(在成千上万个 HART 字符之后)。
下面是一些可以消除的错误条件、它们是可能的原因。
- `CRC_ERR`未设置
- `FIFO_H2U_FULL_FLAG` IRQ 已启用且从不发生
- `GAP_ERR`、`FRAME_ERR`、也不会在`Modem_STATUS`寄存器中设置` PARITY_ERR `位。
硬件设置包括两块微控制器板和两块 AFE881H1EVM 板。 每个 AFE881H1EVM 的`HART_OUT`螺纹接线端子连接到另一个 AFE881H1EVM `HART_IN`螺纹接线端子。 一个微控制器充当 HART 主机、另一个微控制器充当 HART 器件、等待命令。 一个模拟发现2连接到器件端 AFE881H1EVM。
下面提供了更多系统信息:
- 配置为仅 SPI 模式的 AFE881H1
- SCLK 频率1 MHz
- RTS 输入引脚始终被驱动为高电平
我的初始问题是、为什么只有在将数据写入 U2H FIFO 之前置位 RTS 后才会出现此问题?
此致
阿莎 G