Hello,
We're working on a design using the AM3354 for USB OTG on both USB0 and USB1, along with a TUSB320 on each port to interpret USB-C devices and cables and provide the ID pins to the AM3354 . We're doing some prototyping with the Olimex AM3352 EVM board and the TUSB320 EVM board as well. We've encountered a few issues so far and would appreciate your help:
1. We've observed the leakage power from USBx_VBUS to VDDA3P3V_USBx as described in another forum post (https://e2e.ti.com/support/arm/sitara_arm/f/791/t/328345). We are using a separate device, FAN3989, to detect the presence of a USB charger, which is isolated from the AM3354 D+ and D- signals with a USB data switch because the unpowered processor seems to interfere with the voltage on D+ and D- that the FAN3989 looks for. The leakage power causes the data switch to not isolate, interfering with charger detection when our device is powered off. To fix this, we would like to add an SN74LVC1G08 AND gate between each VBUS rail and the AM3354's USBx_VBUS inputs. The Vcc and A inputs of the AND gate are provided by a separate 5V power rail in our system, and the B input connects to VBUS, so the gate drives 5V out to the AM335x when VBUS is on. However, we've observed on the Olimex AM3352 EVM board that the VBUS input to the processor is not a strictly digital input, but it puts out some short pulses described in another post (https://e2e.ti.com/support/arm/sitara_arm/f/791/t/358092). Will the AND gate interfere with the VBUS detection in the processor? Is the processor sensitive to the rise time of VBUS? We plan to test this on the Olimex AM3352 board but would like your input as well.
2. Separately from item 1, we've been having trouble with the Olimex AM3352 board using the USB OTG port in Host mode. If we start Linux with a USB device connected to the port (i.e. with the ID pin grounded), the device is enumerated by Linux correctly. The device can subsequently be removed and reinserted, or the board can be connected to a USB Host, and everything works properly. Everything also works properly if we start Linux with the ID pin shorted to ground but no device connected. However, if we start Linux with the ID pin floating, USB devices will never enumerate correctly. Probing with a scope, in this case we see the ID pin held low when the device is inserted, then USB0_DRVVBUS is asserted high and USB0_VBUS turns on and goes to 5V within 100-200us. VBUS stays on for just over 100ms, the timeout described in several other forum posts, but then turns off. The Olimex board is using USB0_DRVVBUS to control the power switch and it monitors VBUS, as required by the TRM and other forum posts. Are there any known issues that could explain this behavior?
Thank you for your help,
Steve
