1

I have a development board which will have 3 ACM interfaces when connected to Ubuntu host and i want to transfer data from Host to Device over ttyACM3.

I have followed the following procedure for data transfer,

Precondition:

1. Modify /etc/inittab to remove Linux console on /dev/ttyGS3

2. Create a binary file with a minimum length of about 20MBytes

Test Steps:

1. DUT side: stty -F /dev/ttyGS3 raw -echo -echoe -echok -echoctl -echoke

2. HOST side: stty -F /dev/ttyACM3 raw -echo -echoe -echok -echoctl -echoke

3. DUT side: cat /dev/ttyGS3 > /tmp/rx_pattern.bin

4. HOST side: cat ./pattern.bin > /dev/ttyACM3

By following above procedure i see some data(~300 KB) is missed at the DUT side randomly when i used Ubuntu 14.04. I have also used "dd" command for data transfer but still there is a data loss.

No data loss seen in Ubuntu 16.04 with the same procedure as mentioned above.

But i tried to transfer the same "pattern.bin" file from the Ubuntu 14.04 Host by using "minicom" application and "cat" command to receive from DUT side, surprisingly i don't see any data loss.

I have took USB Ellisys logs during issue scenario,

1.One of the "OUT" transaction is failed(handshake is NAK) and there is no "PING" transaction for the failed transfer.

2.Whereas in success scenario whenever "OUT" transaction fails, "PING" transaction is present and data is sent again.

Rui F Ribeiro
  • 55,929
  • 26
  • 146
  • 227

0 Answers0