diff --git a/docs/helios64/img/usb/dual_usb_device_linux.png b/docs/helios64/img/usb/dual_usb_device_linux.png new file mode 100644 index 0000000..afb91cf Binary files /dev/null and b/docs/helios64/img/usb/dual_usb_device_linux.png differ diff --git a/docs/helios64/img/usb/dual_usb_device_windows.png b/docs/helios64/img/usb/dual_usb_device_windows.png new file mode 100644 index 0000000..a132971 Binary files /dev/null and b/docs/helios64/img/usb/dual_usb_device_windows.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_lsusb_tree.png b/docs/helios64/img/usb/linux_gadget_das_lsusb_tree.png index c1b8ff1..b657bd9 100644 Binary files a/docs/helios64/img/usb/linux_gadget_das_lsusb_tree.png and b/docs/helios64/img/usb/linux_gadget_das_lsusb_tree.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_lsusb_tree_raid.png b/docs/helios64/img/usb/linux_gadget_das_lsusb_tree_raid.png new file mode 100644 index 0000000..4465243 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_lsusb_tree_raid.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_thunar_raid.png b/docs/helios64/img/usb/linux_gadget_das_thunar_raid.png new file mode 100644 index 0000000..9072895 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_thunar_raid.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_usbview_raid.png b/docs/helios64/img/usb/linux_gadget_das_usbview_raid.png new file mode 100644 index 0000000..79f3217 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_usbview_raid.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_device_manager.png b/docs/helios64/img/usb/linux_gadget_das_windows_device_manager.png new file mode 100644 index 0000000..ce5f9d3 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_device_manager.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_device_manager_raid.png b/docs/helios64/img/usb/linux_gadget_das_windows_device_manager_raid.png new file mode 100755 index 0000000..60f1006 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_device_manager_raid.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt.png b/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt.png new file mode 100755 index 0000000..8a7b1b5 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt_raid.png b/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt_raid.png new file mode 100755 index 0000000..8a75880 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_diskmgmt_raid.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview.png b/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview.png new file mode 100755 index 0000000..5549fb5 Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview.png differ diff --git a/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview_raid.png b/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview_raid.png new file mode 100755 index 0000000..2fc206e Binary files /dev/null and b/docs/helios64/img/usb/linux_gadget_das_windows_usbtreeview_raid.png differ diff --git a/docs/helios64/img/usb/typec_dp_cable.jpg b/docs/helios64/img/usb/typec_dp_cable.jpg new file mode 100644 index 0000000..6ce5b0b Binary files /dev/null and b/docs/helios64/img/usb/typec_dp_cable.jpg differ diff --git a/docs/helios64/img/usb/typec_hdmi_usb_dongle.jpg b/docs/helios64/img/usb/typec_hdmi_usb_dongle.jpg new file mode 100644 index 0000000..56422f5 Binary files /dev/null and b/docs/helios64/img/usb/typec_hdmi_usb_dongle.jpg differ diff --git a/docs/helios64/img/usb/usb_diagram.png b/docs/helios64/img/usb/usb_diagram.png index 5ece80d..6eb45cc 100644 Binary files a/docs/helios64/img/usb/usb_diagram.png and b/docs/helios64/img/usb/usb_diagram.png differ diff --git a/docs/helios64/img/usb/usb_mux.png b/docs/helios64/img/usb/usb_mux.png index 69c182d..0d1c5e1 100644 Binary files a/docs/helios64/img/usb/usb_mux.png and b/docs/helios64/img/usb/usb_mux.png differ diff --git a/docs/helios64/usb.md b/docs/helios64/usb.md index ec7d4a8..bb94dc0 100644 --- a/docs/helios64/usb.md +++ b/docs/helios64/usb.md @@ -1,18 +1,25 @@ +!!! notice + ***preliminary info*** -## USB on RK3399 -There are two types of USB controller available on RK3399. Each type has two controller so total USB controllers is 4. +There are three types of USB controller available on RK3399. Each type has two controller so total USB controllers is 6. -### Generic EHCI USB 2.0 Controller -There are two controller of this type. This controller is Host only controller that is compatible with USB 2.0 and backward compatible with USB 1.1. +### Generic OHCI USB 1.1 Controller +There are two controller of this type. This controller is Host only controller that is compatible with USB 1.1. Supported speed: -- High Speed (480 Mbps) - - Full Speed (12 Mbps) - Low Speed (1.5 Mbps) +### Generic EHCI USB 2.0 Controller +There are two controller of this type. This controller is Host only controller that is compatible with USB 2.0. The controller shared port with +[Generic OHCI USB 1.1 Controller](#generic-ohci-usb-11-controller) therefore any USB 1.1 device connected to the port, will be automatically +routed to [Generic OHCI USB 1.1 Controller](#generic-ohci-usb-11-controller). +Supported speed: + +- High Speed (480 Mbps) + ### Synopsys DesignWare USB 3.0 Dual-Role Device Controller There are two controller of this type. This controller support On-The-Go /Dual Role which mean it can be configured as Host and also Device. @@ -32,11 +39,11 @@ The controller is connected to Rockchip Type-C PHY. ![!USB Connection](/helios64/img/usb/usb_diagram.png) -One of EHCI Controller is connected to M.2 socket. +One of EHCI Controller (and OHCI Controller) is connected to M.2 socket. -The first Synopsys DesignWare USB 3.0 Dual-Role Device Controller is connected to USB Type-C connector and configured as OTG with help of FUSB302. +The first USB 3.0 Dual-Role Device Controller is connected to USB Type-C connector and configured as OTG with help of [FUSB302](https://www.onsemi.com/products/interfaces/usb-type-c/fusb302). -The second Synopsys DesignWare USB 3.0 Dual-Role Device Controller is connected to USB Hub 3.1 Gen 1 and configured as Host only. +The second USB 3.0 Dual-Role Device Controller is connected to USB Hub 3.1 Gen 1 and configured as Host only. ### Power Budget @@ -52,26 +59,63 @@ Each of external USB port is protected by Power Distribution switch with followi ## USB Type-C Functionality on Helios64 -To simplify the cabling, Helios64 is designed to have +To simplify the cabling, Helios64 is designed to maximize USB Type-C usage. + +Helios64 employ 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](/helios64/hardware/#jumpers) ![!USB Mux](/helios64/img/usb/usb_mux.png) +When Helios64 connected to PC using USB cable, there will be 2 device connected. FTDI FT232 USB Serial on USB 2.0 and Helios64 or +Unknown Device (if USB gadget is not configured yet, see below) on USB 3.0. + +On Windows PC using [USB Device Tree Viewer](https://www.uwe-sieber.de/usbtreeview_e.html) to visualize the USB tree, + +![!USB Tree View dual](/helios64/img/usb/dual_usb_device_windows.png) + +In this case, Helios64 is connected to a USB 3.1 Gen 1 Hub port 1. + +USB Serial Converter (FTDI FT232 USB Serial) connected under port 1 of the USB 2.0 side of the Hub and +RK3399 USB 3.0 (configured as USB Mass Storage Device) connected under port 1 of the USB 3.0 side of the Hub. + +On Linux PC using [USBview](http://www.kroah.com/linux-usb/) to visualize the USB tree, + +![!USBview dual](/helios64/img/usb/dual_usb_device_linux.png) + +In this case, Helios64 is connected to a USB 3.1 Gen 1 Hub port 1. + +FTDI FT232 USB Serial connected under port 1 of the USB 2.0 side of the Hub and +RK3399 USB 3.0 (configured as USB Mass Storage Device) connected under port 1 of the USB 3.0 side of the Hub. + + +!!! info + Every USB hub connected to USB 3.0 port or higher will create a sibling device, USB Hub 2.0, from host point of view. + + USB 2.0 device connected port 1 of the USB 3.0 Hub, it will appear on USB 2.0 Hub port 1. + If USB 3.0 Device connected to same physical port it will appear on USB 3.0 Hub port 1. + ### 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. -Refer to ***JUMPER PAGE*** ### DisplayPort Alternate Mode Using USB Type-C to DisplayPort cable or USB Type-C to HDMI dongle, Helios64 can be connected to monitor to display Linux Desktop or other GUI application. -*** Put USB Type-C to DisplayPort cable photo here *** +![!type-c dp cable](/helios64/img/usb/typec_dp_cable.jpg) + +