kobol-wiki/docs/helios64/usb.md

108 lines
3.7 KiB
Markdown
Raw Normal View History

2020-04-18 17:51:41 +08:00
![USB Location](/helios64/img/usb/usb_ports.jpg)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
## USB Controller Types
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
There are 3 types of USB controller available on RK3399 SoC. Each type has 2 controllers, so in total there are 6 USB controllers. Below a description of each controller type.
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
### Generic OHCI USB 1.1 Controller
This controller is Host only controller that is compatible with USB 1.1.
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Supported speeds:
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
- Full Speed (12 Mbps)
2020-03-05 17:00:39 +07:00
- Low Speed (1.5 Mbps)
2020-04-18 17:51:41 +08:00
### Generic EHCI USB 2.0 Controller
This controller is Host only controller that is compatible with USB 2.0. The controller shared port with
*Generic OHCI USB 1.1 Controller* therefore any USB 1.1 device connected to the port, will be automatically routed to *Generic OHCI USB 1.1 Controller*.
2020-03-11 11:46:46 +07:00
Supported speed:
- High Speed (480 Mbps)
2020-04-18 17:51:41 +08:00
### Synopsys DesignWare USB 3.0 Dual-Role Device Controller
This controller support On-The-Go / Dual Role which means it can be configured as Host or as Device.
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Supported speeds:
2020-03-05 17:00:39 +07:00
- Super Speed (5 Gbps)
- High Speed (480 Mbps)
- Full Speed (12 Mbps)
- Low Speed (1.5 Mbps)
2020-04-18 17:51:41 +08:00
This controller is connected to RK3399 Type-C PHY.
2020-03-05 17:00:39 +07:00
## USB on Helios64
2020-04-18 17:51:41 +08:00
![USB Connection](/helios64/img/usb/usb_diagram.png)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
* The first USB 3.0 Dual-Role Device Controller is connected to USB Type-C connector (J15) and configured as OTG with help of [FUSB302](https://www.onsemi.com/products/interfaces/usb-type-c/fusb302).
* The second USB 3.0 Dual-Role Device Controller is connected to USB Hub 3.1 Gen 1 and configured as Host only.
* One of EHCI Controller (and OHCI Controller) is connected to M.2 socket.
2020-03-05 17:00:39 +07:00
### Power Budget
2020-04-18 17:51:41 +08:00
Each external USB port is protected by a Power Distribution switch with following current limit.
2020-03-05 17:00:39 +07:00
| Port | Voltage | Maximum Current | Remarks |
|------------|-------|------------------|---------|
| USB 3.0 Upper Back Panel | 5V | 900 mA | |
| USB 3.0 Lower Back Panel | 5V | 900 mA | |
| USB 3.0 Front Panel | 5V | 900 mA | |
| Type-C | 5V | 1200 mA | PDO source only |
2020-04-18 17:51:41 +08:00
## Type-C Functionality on Helios64
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
To minimize number of interfaces and cables, Helios64 combined 4 functions into the USB Type-C interface :
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
* Serial Console
* Display Port
* Host Mode
* Device Mode (aka DAS mode)
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
![USB Mux](/helios64/img/usb/usb_mux.png)
2020-04-18 17:51:41 +08:00
Helios64 uses an High Speed multiplexer on USB 2.0 signal. By default the USB 2.0 signal is routed to USB Serial Console.
The multiplexer can be override using [jumper P13](/helios64/jumper/#usb-consolerecovery-mode-p13) or by software via GPIO.
2020-03-11 11:46:46 +07:00
2020-03-05 17:00:39 +07:00
### Serial Console
Serial Console of Helios64 is connected to FT232 USB Serial converter and the USB 2.0 signal of the FT232 is connected to USB 2.0 signals of USB Type-C Port.
2020-04-18 17:51:41 +08:00
### Display Port
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Using USB Type-C to DisplayPort cable, Helios64 can be connected to monitor to display Linux Desktop or others GUI applications.
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
![Type-c to DisplayPort](/helios64/img/usb/typec_dp.jpg)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Using USB Type-C to HDMI cable/dongle, Helios64 can be connected to a TV and used as a media center.
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
![Type-c to HDMI female](/helios64/img/usb/typec_hdmi_dongle.jpg)
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
*USB Type-C to HDMI dongle*
2020-03-11 11:46:46 +07:00
2020-04-18 17:51:41 +08:00
![Type-c to HDMI male](/helios64/img/usb/typec_hdmi.jpg)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
*USB Type-C to HDMI cable*
2020-03-05 17:00:39 +07:00
!!! note
2020-03-11 11:46:46 +07:00
- DisplayPort Alternate Mode is NOT supported on U-Boot.
2020-04-18 17:51:41 +08:00
- USB Type-C to HDMI cable might not work if it used DisplayPort dual mode (DP++).
2020-04-18 17:51:41 +08:00
### Host Mode
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Using OTG cable (Type-C to Type A female) such as,
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
![Type-C to Type-A female](/helios64/img/usb/typec_typea_female.jpg)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Helios64 can act as USB host and can be connected to various USB devices.
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
### Device Mode
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Using Type-C to Type A male cable such as,
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
![Type-C to Type-A male](/helios64/img/usb/typec_typea_male.jpg)
2020-03-05 17:00:39 +07:00
2020-04-18 17:51:41 +08:00
Helios64 can be used as Direct Attached Storage (DAS) with the required software configuration. It can also be used as "USB eMMC reader/writer" during system recovery mode.