USB

The Universal Serial Bus (USB) can be utilized for many functions on the phyBOARD-Lyra AM62x, including external media. The phyBOARD-Lyra AM62x provides multiple USB connectors, as detailed in USB Locations. This guide will show you how to use the USB Host capabilities featured on the phyBOARD-Lyra AM62x. To learn more information about the phyCORE-AM62x USB interface, please see section 7.6 in the Hardware Manual.

The USB0 interface is brought out as a type-C connector (X34). The USB1 interface uses a USB HUB to split the bus to 3x locations.

USB Locations

Type

Qty

Header Location

Speed

Bus

USB A Double Stacked

2

X43

2.10

001

Mini PCIe

1

X36

2.10

001

USB C

1

X34

2.10

003

phyCORE-AM62x USB phyCORE-AM62x USB backside

Requirements

  • USB Storage Device

Verifying USB Interface

  • Boot into Linux and Insert a USB Storage Device into one of the USB ports.

  • Upon insertion, kernel output should appear.

[ 2764.219680] usb 1-1.2: new high-speed USB device number 3 using xhci-hcd
[ 2764.325351] usb 1-1.2: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00
[ 2764.333870] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2764.341297] usb 1-1.2: Product:  SanDisk 3.2Gen1
[ 2764.346029] usb 1-1.2: Manufacturer:  USB
[ 2764.350144] usb 1-1.2: SerialNumber: 0401a83fbd697e437712b826697973aaaf57d1c75e9691ad879dfe7934b8a81bea020000000000000000000037ac13c5ff935d18915581076e2cc649
[ 2764.411781] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[ 2764.418828] scsi host0: usb-storage 1-1.2:1.0
[ 2764.424110] usbcore: registered new interface driver usb-storage
[ 2765.448829] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 6
[ 2765.463168] sd 0:0:0:0: [sda] 30031872 512-byte logical blocks: (15.4 GB/14.3 GiB)
[ 2765.481193] sd 0:0:0:0: [sda] Write Protect is off
[ 2765.486641] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2765.504741] sd 0:0:0:0: [sda] Attached SCSI removable disk
  • Verify the available USB devices.

phyboard-lyra-am62xx-3:~# lsusb
Bus 001 Device 003: ID 0781:5591  USB  SanDisk 3.2Gen1
Bus 001 Device 002: ID 0424:2514
Bus 001 Device 001: ID 1d6b:0002 Linux 6.1.33-bsp-yocto-ampliphy-am62x-pd23.2-rc1 xhci-hcd xHCI Host Controller
  • To list more information about the USB device and buses on the development kit use the following command.

    This command will output a good chunk of information. This guide will only show a snippet of the expected output for the USB drive that was just connected.

    phyboard-lyra-am62xx-3:~# lsusb -v
    
  • The speed of the USB device can be determined with either the lsusb -v from above or by reading the device’s “speed”

phyboard-lyra-am62xx-3:~# cat /sys/bus/usb/devices/1-1.2/speed
480

Note

USB2.0 has transmission speeds up to 480Mbit/s, also known as “full speed”.

Mounting USB Stroage Devices

  • Verify that a device directory was established for the USB drive.

    1. Run the following command to confirm the USB device name.

    phyboard-lyra-am62xx-3:~# ls /dev/sd*
    /dev/sda
    
    1. Remove the USB drive and re-insert it.

    2. The output log that appears when connecting the USB device will indicate the devices name.

    [ 2764.219680] usb 1-1.2: new high-speed USB device number 3 using xhci-hcd
    [ 2764.325351] usb 1-1.2: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00
    [ 2764.333870] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 2764.341297] usb 1-1.2: Product:  SanDisk 3.2Gen1
    [ 2764.346029] usb 1-1.2: Manufacturer:  USB
    [ 2764.350144] usb 1-1.2: SerialNumber: 0401a83fbd697e437712b826697973aaaf57d1c75e9691ad879dfe7934b8a81bea020000000000000000000037ac13c5ff935d18915581076e2cc649
    [ 2764.411781] usb-storage 1-1.2:1.0: USB Mass Storage device detected
    [ 2764.418828] scsi host0: usb-storage 1-1.2:1.0
    [ 2764.424110] usbcore: registered new interface driver usb-storage
    [ 2765.448829] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 6
    [ 2765.463168] sd 0:0:0:0: [sda] 30031872 512-byte logical blocks: (15.4 GB/14.3 GiB)
    [ 2765.481193] sd 0:0:0:0: [sda] Write Protect is off
    [ 2765.486641] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
    [ 2765.504741] sd 0:0:0:0: [sda] Attached SCSI removable disk
    

    Note

    In this example the device name for the USB drive is “sda”.

  • Make a directory for mounting the USB device.

    phyboard-lyra-am62xx-3:~# mkdir -p /mnt/usb
    
  • Format file type.

    phyboard-lyra-am62xx-3:~# mkfs.vfat /dev/sda
    
  • Mount the USB device to the directory.

    phyboard-lyra-am62xx-3:~# mount /dev/sda /mnt/usb/
    
  • See what media is on the USB drive.

    phyboard-lyra-am62xx-3:~# ls /mnt/usb/
    

Write to the USB Host Device

  • Generate a random 10 MB file to test transferring data from the storage device.

    phyboard-lyra-am62xx-3:~# dd if=/dev/urandom of=test.file count=10 bs=1M
    10+0 records in
    10+0 records out
    10485760 bytes (10 MB, 10 MiB) copied, 0.161874 s, 64.8 MB/s
    
  • Copy the file to your storage device.

    phyboard-lyra-am62xx-3:~# cp test.file /mnt/usb/ && sync
    

Read from the USB Host Device

  • Copy the test file we previously created during the write process back to the host:

    phyboard-lyra-am62xx-3:~# cp /mnt/usb/test.file readback-usb.file && sync
    
  • We can double check that the file was successfully copied to and from the USB device by checking the md5sum of the file:

    phyboard-lyra-am62xx-3:~# md5sum test.file readback-usb.file
    d3aa3ee1db746d6f7fb66c9b42f4ea6b  test.file
    d3aa3ee1db746d6f7fb66c9b42f4ea6b  readback-usb.file
    

Unmounting the Drive

Warning

Make sure the drive is unmounted prior to physically disconnecting the device. Failure to do so may result in loss of data and corruption of files

phyboard-lyra-am62xx-3:~# umount /mnt/usb/