Other Parts Discussed in Thread: TMS570LS0432, DAC8740H
I am trying to implement HART communications using the TI DAC8742H chip in SPI mode. Host processor is a Hercules TMS570LS0432.
First off I have observed that the DAC8742h.pdf document has an error. Address for MODEM_STATUS Register is documented as 0x20 and the FIFO_STATUS Register address is 0x24, however, I have observed that they are the opposite. Actual behavior is address for MODEM_STATUS Register is 0x24 and the FIFO_STATUS Register address is 0x20.
After system boot I send a single character through TeraTerm, for example a ‘1’ (hex 0x31). My device receives an IRQ. I read the MODEM_STATUS Register and FIFO_M2D Register; the DAC8742 reports that it received 0x31. So far, so good. From TeraTerm I send a ‘2’ (hex 0x32); I get an IRQ . I read the MODEM_STATUS Register and FIFO_M2D Register; the DAC8742 reports that it received 0x31. Not good. It should be 0x32. In fact no matter what character I type the modem reports that I got a 0x31. The DAC8740H.pdf states that the buffer will be cleared when I do a SPI read command. It does not.
I reboot, send a single character 'a' (hex 0x61). My device receives an IRQ. I read the MODEM_STATUS Register and FIFO_M2D Register; the DAC8742 reports that it received 0x61. Again, good. From TeraTerm I send a ‘b’ (hex 0x62); I get an IRQ . I read the MODEM_STATUS Register and FIFO_M2D Register; the DAC8742 reports that it received 0x61. Not good. It should be 0x62. In fact no matter what character I type the modem reports that I got a 0x61.
Any advice would be appreciated.
ken