主题中讨论的其他器件: TMS570LS0432、 DAC8740H
我正在尝试在 SPI 模式下使用 TI DAC8742H 芯片来实现 HART 通信。 主机处理器是 Hercules TMS570LS0432。
首先、我发现 DAC8742h.pdf 文档有错误。 MODEM_STATUS 寄存器的地址记录为0x20、FIFO_STATUS 寄存器的地址为0x24、但我观察到它们是相反的。 实际行为是 MODEM_STATUS 寄存器的地址为0x24、FIFO_STATUS 寄存器的地址为0x20。
系统启动后,我通过 TeraTerm 发送单个字符,例如‘1’(十六进制0x31)。 我的设备收到 IRQ。 我读取 MODEM_STATUS 寄存器和 FIFO_M2D 寄存器;DAC8742报告它接收到0x31。 到目前为止、非常好。 从 TeraTerm 发送‘2’(十六进制0x32);我获取 IRQ。 我读取 MODEM_STATUS 寄存器和 FIFO_M2D 寄存器;DAC8742报告它接收到0x31。 不好。 应为0x32。 实际上、无论我键入什么字符、调制解调器都会报告我得到了0x31。 DAC8740H.pdf 指出、当我执行 SPI 读取命令时、缓冲器将被清除。 它不是。
我重新启动、发送一个单字符'A'(十六进制0x61)。 我的设备收到 IRQ。 我读取 MODEM_STATUS 寄存器和 FIFO_M2D 寄存器;DAC8742报告它接收到0x61。 再说一次、好的。 从 TeraTerm 发送‘b’(十六进制0x62);我获取 IRQ。 我读取 MODEM_STATUS 寄存器和 FIFO_M2D 寄存器;DAC8742报告它接收到0x61。 不好。 应为0x62。 实际上、无论我键入什么字符、调制解调器都会报告我得到了0x61。
如有任何建议,请提出。
Ken