Edit online

USB Host 配置

5 Dec 2024
Read time: 3 minute(s)
ArtInChip 提供了两路 USB Host 端口和一路 USB Device 端口,需要分别进行配置:
  1. USB Host Contoller 配置

    ArtInChip 在一个 USB Host 端口中提供了下列 Host Contoller,在软件上需要需要分开配置:
  2. USB Interface 驱动配置

    完成 USB Host Contoller 配置后,系统可以正确识别插入 USB 总线的 Device 设备。此时配置 USB Interface 驱动。USB Device 有各种不同类型 ,例如 U 盘、键盘鼠标、无线网卡。在 USB Device 中以 Interface 为单位提供不同类型的功能。如需使用 USB Device 具体功能,配置不同类型 USB Interface 的驱动。

    不同类型 USB Interface 驱动的配置可查看:

配置 EHCI 控制器

针对 USB 2.0 (High Speed) 的 EHCI 控制器,配置流程如下:
  • 在 menuconfig 中配置设备。

    使能 USB 端口,并且配置当前 USB 端口为 Host 模式:
    > Board options
       [*] Using Usb0
           Select Usb0 mode (Host)  --->
  • 在 menuconfig 中配置 CherryUSB 驱动。

    使能 CherryUSB 驱动,并且使能 Host 模式:
    > Local packages options
       > Third-party packages options
           [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
               [*]   Enable usb host mode  --->

U 盘配置

  1. 在 menuconfig 中使能 CherryUSB 中 msc 类型的 Host Class 驱动,并且使能对应实例模板:
    > Local packages options
       > Third-party packages options
           [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
               [*]   Enable usb host mode  --->
                   [*]   Enable usb msc driver  --->
                       [*]   Use msc template
  2. 插入 U 盘,会自动挂载到 /disk 目录:
    [I/USB] New high-speed device on Hub 1, Port 1 connected
    [I/USB] New device found,idVendor:30de,idProduct:6544,bcdDevice:0100
    [I/USB] The device has 1 interfaces
    [I/USB] Enumeration success, start loading class driver
    [I/USB] Loading msc class driver
    [I/USB] Get max LUN:1
    [I/USB] Ep=81 Attr=02 Mps=512 Interval=255 Mult=00
    [I/USB] Ep=02 Attr=02 Mps=512 Interval=255 Mult=00
    [I/USB] Capacity info:
    [I/USB] Block num:30274560,block size:512
    [I/USB] Register MSC Class:/dev/sda
    found part[0], begin: 32256, size: 14.446GB
    [I] udisk_init()122 Found partition 0: type = 11, offet=0x3f, size=0x1cdf2a1
    01-01 08:00:06 I/NO_TAG: try to mount file system!