USB-Stick Insertion causes reset

We are using the Apalis module on a custom carrier board and are facing an issue with the USB Host on the module. USBH3 and USBH4 are routed to connectors on the carrier and in around 90% of the occasions when I insert an USB-Stick the system restarts.

In U-Boot it only happens after I did a “usb start”. If I insert the stick before and do “usb start” afterwards I can read the stick just fine. Also if I insert the stick before powerup and boot into linux the stick can be read. If I insert afterwards a restarts happens.

There are no messages. I’ve checked VCC3.3 and there is no voltage drop. Also USBH_OC# is not activated. I’m looking for pointers how to debug this issue.

Best regards,
Vitus

Additional information: restart happens also on USBO1 interface if I set “dr_mode = host” (USBO1_ID is not wired).

We had something similar with a colibri in a custom carrier board. IIRC we were using the dtb of the eval board which contained real time clock entries which were not physically present. If you have a device tree which does not correspond to your hardware, it may now be the moment to do it.

Hi @vitus and Welcome to the Toradex Community!!!

USBH3 and USBH4 are routed to connectors on the carrier and in around 90% of the occasions when I insert an USB-Stick the system restarts.

Does this happen with a particular stick?

Could you share the schematic on your carrier board of the USB interfaces? It will be helpful to share your devicetree files, kernel .config and a dmesg log?

Thanks and best regards,
Jaski

Hi Jaski!

I’m using 2 USB-Sticks for my tests (“Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6”, and “Verbatim STORE N GO 5.00 PQ: 0 ANSI: 0 CCS”), identical behaviour.

I would like to focus on tests via U-Boot, as this involves the fewest software. I do have a DTS to run with Toradex’s kernel image but this probably just complicates things. The ports dont react identical in U-Boot. USBH4 (X904) causes restarts here nearly every time, while the two others don’t. I’ve measured VCC5.0 which shows a drop of 1V for ca 20us and VCC3.3 which is stable.

Best regards,
Vitus
usb- and power-related schematics of our carrier board

Hi Vitus

You seem to use a TPS3307‑33 voltage supervisor. Maybe a voltage drop on 5V triggers the supervisor to assert reset. Can you measure if RESET_MICO gets asserted when you insert the USB devices?

Likely unrelated to the current issue I guess that the power on delay circuitry, depending on the 3.3V, the SENSE3 threshold, and the resistors tolerances may or may not keep reset asserted indefinitely.

Max

Where do you connect the shield of the USB connector ? Is it to GND.

Hi Max,

good catch!

The TPS3307‑33 does indeed assert RESET. Based on SENSE3 as far as I can see. I will have a talk with the hardware developer this friday when he’s back. The circuit on SENSE3 doesn’t look too stable to be either.

Vitus

Hi @vitus

Thanks for your Input. Please share your finding once you talked to the hardware developer.

Best regards,
Jaski