USB OTG Interface Configuration for Jetson Orin Nano Custom Carrier Board
Issue Overview
Users developing a custom carrier board for the Jetson Orin Nano are seeking information on how to interface with a USB micro B connector, specifically focusing on the "ID" pin of the USB OTG (On-The-Go) connector. This issue arises during the hardware design phase of a custom board implementation, where developers need to understand how to properly configure and utilize the USB OTG functionality with the Orin Nano module.
The main challenges include:
- Configuring the "ID" pin on the USB OTG connector
- Ensuring compatibility with the Jetson Orin Nano, which doesn’t have a direct provision for the ID pin
- Adapting existing documentation, which primarily focuses on Type-C connectors, to work with Type-B connectors
Possible Causes
-
Limited Documentation: The primary documentation and reference designs for Jetson Orin platforms are focused on USB Type-C connectors, making it challenging to implement Type-B connectors.
-
Hardware Differences: The Jetson Orin Nano may have different USB controller configurations compared to other Jetson modules, leading to uncertainty in the implementation.
-
Software Configuration: Improper device tree configuration in the Jetpack software could prevent proper recognition and functionality of the USB OTG port.
-
Pin Compatibility: The absence of a direct provision for the ID pin on the Orin Nano module may require additional circuitry or configuration to enable OTG functionality.
Troubleshooting Steps, Solutions & Fixes
-
Refer to AGX Documentation:
- Use the Jetson AGX Orin documentation for USB configuration, as confirmed by NVIDIA that the method is the same for Orin NX/Nano.
- Access the documentation at: https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=universal#porting-the-universal-serial-bus
-
Device Tree Configuration:
- Modify the device tree to enable the USB OTG port.
- Example configuration (adjust as needed):
usb@3610000 { compatible = "nvidia,tegra234-xusb"; reg = <0x0 0x3610000 0x0 0x40000>; interrupts = <0 167 0x4>; iommus = <&smmu TEGRA_SID_XUSB_HOST>; status = "okay"; };
-
Hardware Design Considerations:
- Although there’s no specific schematic provided for Type-B connectors, design your custom board based on the Type-C diagrams in the design guide document.
- Implement the necessary circuitry to handle the ID pin functionality, possibly using a resistor network or a USB OTG controller IC.
-
Software Compatibility:
- Ensure you are using Jetpack 6, as mentioned in the discussion.
- Check for any USB-related updates or patches in the latest Jetpack release notes.
-
Testing and Verification:
- After implementing the hardware and software configurations, test the USB OTG functionality using various USB devices.
- Use the following command to verify USB device recognition:
lsusb
-
Community Support:
- If issues persist, consider reaching out to the NVIDIA Developer forums or the Jetson community for specific implementation advice.
-
Alternative Connector Consideration:
- While Type-B is still supported, consider using Type-C connectors as they are the primary focus for all Orin platforms moving forward.
- This may simplify future updates and ensure better long-term support.
-
Documentation Gap:
- Be aware that there might be a lack of specific documentation for Type-B connectors on Orin Nano.
- Document your implementation process and consider sharing it with the community to help others facing similar challenges.