HL8548-G Comms failure

Hello we are using the HL8548-G part in a custom design. In fact we have designed two boards with this part but we are only just starting to see this issue and we can reproduce it on both boards. We are connecting to the board from an IMX6 running Linux, although we have now repeated the problem connecting to the module using A host PC running Linux as well.

We started to notice the problem when our customer (who is developing the software) complained about the ttyACM0 connection being dropped and not being able to reconnect.

We can reproduce this by writing a small C program to open ttyACM0 device and send AT every ~100mS until it stops responding. it takes between 4000 and 12000 loops to fail. When it fails, the program can still ‘write’ data to the ACM driver but all reads fail with one of the following linux errors:

Error 22 invalid argument
Error 110 connection timed out

Interestingly we can then do the same test on another port, say ttyACM3 and the same failure occurs. we did the same on 4 & 5 as well.

Once the module is power cycled the problem has gone away.

We are using firmware version HL8548-G 5.5.14.0

I hope you can help, as we may have to consider selecting another module soon, which is costly

Many Thanks

During failure is your module giving any error? Also make sure you are passing the commands once you get proper response from previous command.

-Alex

Hello, I am working with this module too and I am having the same behavior. Could you please tell us if you solve it. Thanks in advance.

Same problem here (with a GL8200 modem that has a HL8548 inside) connected to a STM32 processor via UART and a MAX3232 transceiver. If the crash occurs, I can load serial passthrough code to test commands, but the module is completely unresponsive to any combination I try. Fixed by a power cycle. KSLEEP is set to 2.

AT+GMR
SIERRA RGL8200.5.5.14.0.201502091756.x6250_1

Guys,

First step I would take is to upgrade the unit (either through the one click updater, FOTA, etc) 5.5.14 firmware was the initial release and is really old now, there have been a huge number of changes/additions/improvements. 5.5.23 has just been released.

http://source.sierrawireless.com/resources/airprime/software/hl8548-firmware/

Regards

Matt

I’ve upgraded to 05.05.22.0 and so far the problem seems to have gone away.

I’m very late getting back to this, we implemented a workaround to reboot the module when we loose connection but that is now causing other problems which are unacceptable.

We are now on 5.5.25 and 5.5.25 on some units, we still see the USB disconnections on all modules. We only see ttyACM disconnections when we are actively using the module.

See Kernel log below

pps pps2: new PPS source acm3
2018-11-21T13:43:25.816691+00:00 TRX_00030 kernel: pps pps2: source “/dev/ttyACM3” added
2018-11-21T13:43:27.908244+00:00 TRX_00030 kernel: fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
2018-11-21T13:43:27.908292+00:00 TRX_00030 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
2018-11-21T13:43:29.238594+00:00 TRX_00030 kernel: wlcore: PHY firmware version: Rev 8.2.0.0.240
2018-11-21T13:43:29.358655+00:00 TRX_00030 kernel: wlcore: firmware booted (Rev 8.9.0.0.76)
2018-11-21T13:43:29.408553+00:00 TRX_00030 kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
2018-11-21T13:43:29.468543+00:00 TRX_00030 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
2018-11-21T13:43:37.171630+00:00 TRX_00030 kernel: nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.
2018-11-22T21:06:53.715233+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: failed to set dtr/rts
2018-11-22T21:06:59.285239+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: failed to set dtr/rts
2018-11-22T21:07:03.435204+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 3
2018-11-22T21:07:03.469755+00:00 TRX_00030 kernel: pps pps2: removed
2018-11-22T21:07:03.469797+00:00 TRX_00030 kernel: pps pps2: new PPS source acm3
2018-11-22T21:07:03.514361+00:00 TRX_00030 kernel: pps pps2: source “/dev/ttyACM3” added
2018-11-22T21:07:03.514389+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.6: failed to set dtr/rts
2018-11-22T21:07:04.355226+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 4 using ci_hdrc
2018-11-22T21:07:04.515253+00:00 TRX_00030 kernel: usb 1-1.4: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 255, changing to 11
2018-11-22T21:07:04.545184+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
2018-11-22T21:07:05.775268+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 4
2018-11-22T21:07:06.045242+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 5 using ci_hdrc
2018-11-22T21:07:06.795253+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 5
2018-11-22T21:07:10.665261+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 6 using ci_hdrc
2018-11-22T21:07:10.845263+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
2018-11-22T21:07:10.875230+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.2: ttyACM1: USB ACM device
2018-11-22T21:07:10.933399+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.4: ttyACM2: USB ACM device
2018-11-22T21:07:10.933431+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.6: ttyACM4: USB ACM device
2018-11-22T21:07:10.965199+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.8: ttyACM5: USB ACM device
2018-11-22T21:07:10.995200+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.10: ttyACM6: USB ACM device
2018-11-22T21:07:11.025211+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.12: ttyACM7: USB ACM device
2018-11-22T21:07:11.185242+00:00 TRX_00030 kernel: pps pps2: removed
2018-11-22T21:07:15.804736+00:00 TRX_00030 kernel: pps pps2: new PPS source acm4
2018-11-22T21:07:15.804806+00:00 TRX_00030 kernel: pps pps2: source “/dev/ttyACM4” added
2018-11-22T21:22:05.008354+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 6
2018-11-22T21:22:05.048344+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: failed to set dtr/rts
2018-11-22T21:22:05.092809+00:00 TRX_00030 kernel: pps pps2: removed
2018-11-22T21:22:05.092877+00:00 TRX_00030 kernel: pps pps2: new PPS source acm4
2018-11-22T21:22:05.136021+00:00 TRX_00030 kernel: pps pps2: source “/dev/ttyACM4” added
2018-11-22T21:22:05.136104+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.6: failed to set dtr/rts
2018-11-22T21:22:05.179550+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.8: failed to set dtr/rts
2018-11-22T21:22:05.938307+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 7 using ci_hdrc
2018-11-22T21:22:06.121152+00:00 TRX_00030 kernel: usb 1-1.4: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 255, changing to 11
2018-11-22T21:22:06.121196+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: ttyACM1: USB ACM device
2018-11-22T21:22:08.609471+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 7
2018-11-22T21:22:08.879435+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 8 using ci_hdrc
2018-11-22T21:22:09.629451+00:00 TRX_00030 kernel: usb 1-1.4: USB disconnect, device number 8
2018-11-22T21:22:10.450667+00:00 TRX_00030 kernel: pps pps2: removed
2018-11-22T21:22:13.489451+00:00 TRX_00030 kernel: usb 1-1.4: new high-speed USB device number 9 using ci_hdrc
2018-11-22T21:22:13.700955+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
2018-11-22T21:22:13.701023+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.2: ttyACM1: USB ACM device
2018-11-22T21:22:13.739446+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.4: ttyACM2: USB ACM device
2018-11-22T21:22:13.769386+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.6: ttyACM3: USB ACM device
2018-11-22T21:22:13.821018+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.8: ttyACM4: USB ACM device
2018-11-22T21:22:13.821047+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.10: ttyACM6: USB ACM device
2018-11-22T21:22:13.862005+00:00 TRX_00030 kernel: cdc_acm 1-1.4:1.12: ttyACM7: USB ACM device
2018-11-22T21:22:18.622371+00:00 TRX_00030 kernel: pps pps2: new PPS source acm3
2018-11-22T21:22:18.622430+00:00 TRX_00030 kernel: pps pps2: source “/dev/ttyACM3” added