AnsweredAssumed Answered

SC16IS740 Tx failure after sending large number of large packets

Question asked by Kaushalya Satharasinghe on Sep 16, 2018

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?