I am experiencing a strange behavior in the above UART expander chip in the following configuration.
1. Chip used SC16IS740IPW,112
2. Host - Artik 530s
3. OS - Linux 4.4.113
4. PHY - RS485
5. Chip configuration - Auto RTS enabled, in RS485 mode
When I am sending larger data packet of 100 bytes continuously in about 1 sec intervals, the first few hundred transmissions goes on without any problem. After a while it only transmits couple of bytes out of the 100 bytes and doesnt recover.
I have checked driver behavior and found out the following.
When successful transmissions it starts by sending the first 64 bytes (full tx fifo size) and then in 8 byte chucnks and finish with last 4 bytes.
In failed transmissions it starts with sending 64 bytes (which doesnt seem to transmit - only first few bytes gets transmitted) and in the next cycle it sends the remaining 36 in one go.
I modified the driver to send 8 bytes after the initial 64 and then I didnt see the error.
Has anyone seen this kind of behavior? Any ideas whats going on?