iMX93 Industrial Accessing and Testing Peripherals

From Voipac Wiki
Jump to navigation Jump to search

The initial operations with the iMX93 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated Peripherals and Accessories section.

Mandatory components

Hardware

Peripherals and Accessories

Cables

  • USB Micro-B cable for serial console
  • USB-C cable for module flashing
  • Ethernet cable

Audio

Note: This audio section was tested with the iMX93 Industrial Module in Max and Pro configurations. For Basic and LIte configuration, audio capabilities are not available. For more information see the iMX93 Industrial Module comparison.

Input: Search kernel log for wm8904 chip
Output: Audio chip is detected and bound as an output and input device

root@imx93-voipac:~# dmesg | grep wm8904
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator
[    6.683500] wm8904 0-001a: revision A

Input: Run amixer command
Output: Current audio chip settings are displayed

root@imx93-voipac:~# amixer    
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 45 [71%] [-12.00dB] Playback [on]
  Front Right: 45 [71%] [-12.00dB] Playback [on]
Simple mixer control 'Headphone ZC',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]
Simple mixer control 'Line Output',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 57 [90%] [0.00dB] Playback [on]
  Front Right: 57 [90%] [0.00dB] Playback [on]
...

Input: Connect headphones into LINE OUT jack connector
Output: Audio noise is played and heard

root@imx93-voipac:~# dd if=/dev/urandom | aplay -f cd
Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

Input: Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector
Output: Sound recorder by microphone is played in headphones

root@imx93-voipac:~# amixer set 'Capture' '31'
root@imx93-voipac:~# amixer set 'Capture Input' ADC
root@imx93-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'
root@imx93-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'
root@imx93-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio

Note: Microphone and headphones setup can also be graphically displayed and adjusted:

root@imx93-voipac:~# alsamixer

iMX8M Industrial Development Kit-AlsaMixer setup.png

Input: Verify digital microphones (Mic Left, Mic Mid, Mic Right)
Output: Microphone sound is played in headphones

root@imx93-voipac:~# amixer sset "Capture Input" "DMIC"
root@imx93-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio

WiFi

Note: This WiFi section was tested with the iMX93 Industrial Module in Max and Pro configurations. For Basic and Lite configuration, wireless connectivity is not available.For more information see the iMX93 Industrial Module comparison.

Load the device driver:

root@imx93-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf
[  926.305344] mlan: loading out-of-tree module taints kernel.
[  926.334171] wlan: Loading MWLAN driver
[  926.339152] wlan: Register to Bus Driver...
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1
[  926.349765] Attach moal handle ops, card interface type: 0x108
[  926.355633] rps set to 0 from module param
[  926.362045] SDIW416: init module param from usr cfg
[  926.366995] card_type: SDIW416, config block: 0
[  926.371541] cfg80211_wext=0xf
[  926.374515] max_vir_bss=1
[  926.377131] cal_data_cfg=none
[  926.380112] ps_mode = 1
[  926.382567] auto_ds = 1
[  926.385010] host_mlme=enable
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin
[  926.392709] SDIO: max_segs=128 max_seg_size=65535
[  926.397420] rx_work=1 cpu_num=2
[  926.400569] Enable moal_recv_amsdu_packet
[  926.404600] Attach mlan adapter operations.card_type is 0x108.
[  926.410826] wlan: Enable TX SG mode
[  926.414357] wlan: Enable RX SG mode
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072
[  928.113594] WLAN FW is active
[  928.116573] on_time is 927947046442
[  928.140994] VDLL image: len=8736
[  928.144352] FW country code WW does not match with US
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8
[  928.176236] Register NXP 802.11 Adapter mlan0
[  928.183724] Register NXP 802.11 Adapter uap0
[  928.194033] Register NXP 802.11 Adapter wfd0
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) 
[  928.208947] wlan: Register to Bus Driver Done
[  928.216412] wlan: Driver loaded successfully

Check if the WiFi interface is present:

root@imx93-voipac:~# ip addr show dev mlan0
3: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff

Input: Scan the available WiFi networks
Output: Networks are scanned and in-depth information are displayed

root@imx93-voipac:~# ifconfig mlan0 up && iw dev mlan0 scan
BSS 94:27:90:7f:c3:d3(on wlp1s0)
        TSF: 1213185029341 usec (14d, 00:59:45)
        freq: 2442
        beacon interval: 100 TUs
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)
        signal: -73.00 dBm
        last seen: 4056 ms ago
        SSID: HH40V_C3D3
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
        DS Parameter set: channel 7
        Country: SK     Environment: Indoor/Outdoor
                Channels [1 - 13] @ 20 dBm
        ERP: <no flags>
        Extended supported rates: 24.0 36.0 48.0 54.0
        HT capabilities:
                Capabilities: 0x1ad
                        RX LDPC
                        HT20
                        SM Power Save disabled
                        RX HT20 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 8 usec (0x06)
                HT TX/RX MCS rate indexes supported: 0-15
        HT operation:
                 * primary channel: 7
                 * secondary channel offset: no secondary
                 * STA channel width: 20 MHz
                 * RIFS: 1
                 * HT protection: no
                 * non-GF present: 1
                 * OBSS non-GF present: 0
                 * dual beacon: 0
                 * dual CTS protection: 0
                 * STBC beacon: 0
                 * L-SIG TXOP Prot: 0
                 * PCO active: 0
                 * PCO phase: 0
        Overlapping BSS scan params:
                 * passive dwell: 20 TUs
                 * active dwell: 10 TUs
                 * channel width trigger scan interval: 300 s
                 * scan passive total per channel: 200 TUs
                 * scan active total per channel: 20 TUs
                 * BSS width channel transition delay factor: 5
                 * OBSS Scan Activity Threshold: 0.25 %
        Extended capabilities:
                 * HT Information Exchange Supported
                 * Extended Channel Switching
                 * SSID List
                 * Operating Mode Notification
        WMM:     * Parameter version 1
                 * BE: CW 15-1023, AIFSN 3
                 * BK: CW 15-1023, AIFSN 7
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
        RSN:     * Version: 1
                 * Group cipher: CCMP
                 * Pairwise ciphers: CCMP
                 * Authentication suites: PSK
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
        WPS:     * Version: 1.0
                 * Wi-Fi Protected Setup State: 2 (Configured)
                 * Response Type: 3 (AP)
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7
                 * Manufacturer: TCL.org
                 * Model: WAP
                 * Model Number: 123
                 * Serial Number: 12345
                 * Primary Device Type: 6-0050f204-1
                 * Device name: TCL AP
                 * Config methods:
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
BSS 34:e8:94:5c:06:80(on wlp1s0)
        TSF: 787677017722 usec (9d, 02:47:57)
        freq: 2462
        beacon interval: 100 TUs
        capability: ESS Privacy ShortSlotTime (0x0411)
        signal: -73.00 dBm
        last seen: 3952 ms ago
        SSID: OrangeFlybox_0680
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0
        DS Parameter set: channel 11
        ERP: Barker_Preamble_Mode
        Extended supported rates: 6.0 12.0 24.0 48.0
        HT capabilities:
                Capabilities: 0x106e
                        HT20/HT40
                        SM Power Save disabled
                        RX HT20 SGI
                        RX HT40 SGI
                        No RX STBC
                        Max AMSDU length: 3839 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 4 usec (0x05)
                HT RX MCS rate indexes supported: 0-15, 32
                HT TX MCS rate indexes are undefined
        HT operation:
                 * primary channel: 11
                 * secondary channel offset: no secondary
                 * STA channel width: 20 MHz
                 * RIFS: 0
                 * HT protection: 20 MHz
                 * non-GF present: 1
                 * OBSS non-GF present: 0
                 * dual beacon: 0
                 * dual CTS protection: 0
                 * STBC beacon: 0
                 * L-SIG TXOP Prot: 0
                 * PCO active: 0
                 * PCO phase: 0
        WPA:     * Version: 1
                 * Group cipher: TKIP
                 * Pairwise ciphers: TKIP CCMP
                 * Authentication suites: PSK
        RSN:     * Version: 1
                 * Group cipher: TKIP
                 * Pairwise ciphers: TKIP CCMP
                 * Authentication suites: PSK
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
        WMM:     * Parameter version 1
                 * BE: CW 15-1023, AIFSN 3
                 * BK: CW 15-1023, AIFSN 7
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
        BSS Load:
                 * station count: 3
                 * channel utilisation: 27/255
                 * available admission capacity: 31250 [*32us]
        Overlapping BSS scan params:
                 * passive dwell: 20 TUs
                 * active dwell: 10 TUs
                 * channel width trigger scan interval: 300 s
                 * scan passive total per channel: 200 TUs
                 * scan active total per channel: 20 TUs
                 * BSS width channel transition delay factor: 5
                 * OBSS Scan Activity Threshold: 0.25 %
        Extended capabilities:
                 * HT Information Exchange Supported
        WPS:     * Version: 1.0
                 * Wi-Fi Protected Setup State: 2 (Configured)
                 * AP setup locked: 0x01
                 * Response Type: 3 (AP)
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4
                 * Manufacturer: TP-LINK
                 * Model: Archer MR200
                 * Model Number: 1.0
                 * Serial Number: 1.0
                 * Primary Device Type: 6-0050f204-1
                 * Device name: AC750 Wireless Dual Band 4G LTE
                 * Config methods: Label, Display, Keypad
                 * RF Bands: 0x1
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
BSS 34:e8:94:5b:f8:04(on wlp1s0)
        TSF: 1210179077454 usec (14d, 00:09:39)
        freq: 2462
        beacon interval: 100 TUs
        capability: ESS Privacy ShortSlotTime (0x0411)
        signal: -50.00 dBm
        last seen: 3432 ms ago
        SSID: REDARROW
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0
        DS Parameter set: channel 11
        Extended supported rates: 6.0 12.0 24.0 48.0
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2
        WPS:     * Version: 1.0
                 * Wi-Fi Protected Setup State: 2 (Configured)
                 * AP setup locked: 0x01
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4
                 * RF Bands: 0x1
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
        ERP: Barker_Preamble_Mode
        HT capabilities:
                Capabilities: 0x106e
                        HT20/HT40
                        SM Power Save disabled
                        RX HT20 SGI
                        RX HT40 SGI
                        No RX STBC
                        Max AMSDU length: 3839 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 4 usec (0x05)
                HT RX MCS rate indexes supported: 0-15, 32
                HT TX MCS rate indexes are undefined
        HT operation:
                 * primary channel: 11
                 * secondary channel offset: no secondary
                 * STA channel width: 20 MHz
                 * RIFS: 0
                 * HT protection: no
                 * non-GF present: 0
                 * OBSS non-GF present: 0
                 * dual beacon: 0
                 * dual CTS protection: 0
                 * STBC beacon: 0
                 * L-SIG TXOP Prot: 0
                 * PCO active: 0
                 * PCO phase: 0
        Overlapping BSS scan params:
                 * passive dwell: 20 TUs
                 * active dwell: 10 TUs
                 * channel width trigger scan interval: 300 s
                 * scan passive total per channel: 200 TUs
                 * scan active total per channel: 20 TUs
                 * BSS width channel transition delay factor: 5
                 * OBSS Scan Activity Threshold: 0.25 %
        Extended capabilities:
                 * HT Information Exchange Supported
        WPA:     * Version: 1
                 * Group cipher: TKIP
                 * Pairwise ciphers: TKIP CCMP
                 * Authentication suites: PSK
        RSN:     * Version: 1
                 * Group cipher: TKIP
                 * Pairwise ciphers: TKIP CCMP
                 * Authentication suites: PSK
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
        WMM:     * Parameter version 1
                 * BE: CW 15-1023, AIFSN 3
                 * BK: CW 15-1023, AIFSN 7
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
        BSS Load:
                 * station count: 0
                 * channel utilisation: 47/255
                 * available admission capacity: 31250 [*32us]

To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update ssid and passphrase psk fields.

root@imx93-voipac:~# cat /etc/wpa_supplicant.conf 
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
        ssid="SSID_FOR_WIFI_NETWORK"
        scan_ssid=1
        key_mgmt=WPA-PSK
        psk="WIFI_NETWORK_PASSWORD"
}

To connect to the desired WiFi network, start wpa_supplicant:

root@imx93-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &
root@imx93-voipac:~# rfkill: Cannot open RFKILL control device
[  261.722718] wlan: mlan0 START SCAN
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: 
req=2437 MHz)
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully
mlan0: Associated[  266.067323] mlan0: 
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62

To obtain an IP address and other network settings, run dhcp client:

udhcpc -i mlan0


At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.

Configuration: iMX93 Industrial Module in Industrial temperature range (U-Blox Maya 160):

root@imx93-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1
Connecting to host 192.168.240.200, port 5201
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver

iperf Done.

Bluetooth

Note: This section was tested with the iMX8M Industrial Module in Max and Pro configurations. For Basic and Lite configuration, bluetooth capabilities are not available. For more information see the iMX93 Industrial Module comparison.

Input: None
Output: Remote device is recognized after scan

# attach module
root@imx93-voipac:~# modprobe hci_uart
root@imx93-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow
Device setup complete
root@imx93-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22
[ 1207.485171] NET: Registered PF_ALG protocol family


# put hci0 device up
root@imx93-voipac:~# hciconfig hci0 up

# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)
root@imx93-voipac:~# hcitool  scan                                                                             
Scanning ...                     
Devices:
    hci0    00:0D:18:01:5A:B3

Ethernet

Note: This section was tested with the iMX93 Industrial Module in Max and Pro configurations. For Basic configuration, ethernet capabilities are not available. For more information see the iMX93 Industrial Module comparison.

Input: None
Output: Device driver is available (for Lite configuration only one ethernet is available)
Note: MAC address should be identical with the address on the sticker placed on the board

root@imx93-voipac:~# ip addr show dev eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 62:3d:3d:9a:a6:7e brd ff:ff:ff:ff:ff:ff
root@imx93-voipac:~# ip addr show dev eth1
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 8a:a0:ac:40:f9:35 brd ff:ff:ff:ff:ff:ff

Input: Plug Ethernet cable into top or bottom connector
Output: IPv4 address is assigned

[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off


USB 2.0

NOTE: Perform read/write performance test Input: Plug USB flash drive into USB connector
Output: Plugged USB device is listed

root@imx93-voipac:~# lsusb
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Input: Generate a dummy file and copy it into USB flash drive
Output: Generated file and copied file have the same checksum

root@imx93-voipac:~# mount /dev/sda1 /media/
root@imx93-voipac:~# rm -f file.txt /media/file.txt 
root@imx93-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024
1024+0 records in
1024+0 records out
root@imx93-voipac:~# cp file.txt /media/
root@imx93-voipac:~# md5sum file.txt /media/file.txt 
200a9fd3e9850fcedf85ed50d4c4733d  file.txt
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt
root@imx93-voipac:~# rm file.txt /media/file.txt
root@imx93-voipac:~# umount /media

USB-C

This connector is primarily used for flashing new binaries into the iMX93 Industrial Module. More information can be found on the dedicated module flashing page.


USB Micro-B serial console

Input: Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1
Output: The board is controlled and responsive to serial terminal commands

root@imx93-voipac:~# uname -a
Linux imx93-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux

UART serial console

Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.

NOTE:Describe jumpers position

iMX8M Industrial Development Kit-Serial console via UART1.jpg

Note:Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files.

iMX8M Industrial Development Kit-Serial console via UART2.jpg

SD card

NOTE: Perform detection of SDcard

root@imx93-voipac:~# fdisk -l
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors
240448 cylinders, 4 heads, 32 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors
128 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk0boot0 doesn't contain a valid partition table
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors
128 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk0boot1 doesn't contain a valid partition table
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors
243096 cylinders, 4 heads, 32 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux

/dev/mmcblk1 is SD card (mmcblk0 is eMMC)

JTAG

iMX8M Industrial Development Kit-JTAG communication setup.jpg

To verify that i.MX8M CPU JTAG is functional, following command identifies and connects to the CPU's debug point:

J-Link> jtagid

iMX8M Industrial Development Kit-JTAG communication log.jpg

Real Time Clock

RTC chip is detected by Linux kernel after start-up:

root@imx93-voipac:~# dmesg | grep rtc
[    0.894630] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    0.910732] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    1.209696] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0
[    1.216025] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    1.905125] rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable.
[    1.912657] rtc-pcf8563 1-0051: registered as rtc1

CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:

root@imx93-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

Set up the current date and time, show the actual values:

root@imx93-voipac:~# timedatectl 
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD
               Local time: Tue 2024-11-26 12:55:25 UTC
           Universal time: Tue 2024-11-26 12:55:25 UTC
                 RTC time: Tue 2024-11-26 12:55:25
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

I2C EEPROM Memory - on module

Input: Power on board
Output: Store some data to eeprom and after reboot read it back and should be same

# store random 8bytes to eeprom
root@imx93-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1
+1 records in
0+1 records out
8 bytes copied, 0.0225523 s, 0.4 kB/s

After board reboot:

# store random 8bytes to eeprom
root@imx93-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              
0000000 c4dd 4eda d624 535e                    
0000008

Reset button

Input: Press the RESET button
Output: The board will execute bootloader immediately with "Reset cause: POR"
Note: iMX93 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result

U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)

CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 45C
Reset cause: POR (0x1)
Model: NXP i.MX93 Voipac EVK board
DRAM:  2 GiB
tcpc_init: Can't find device id=0x52
setup_typec: tcpc portpd init failed, err=-19
tcpc_init: Can't find device id=0x51
setup_typec: tcpc port2 init failed, err=-19
tcpc_init: Can't find device id=0x50
setup_typec: tcpc port1 init failed, err=-19
Core:  215 devices, 32 uclasses, devicetree: separate
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
[*]-Video Link 0fail to find output device

....

On/Off button

Input: Press and hold On/Off button for more then 5 seconds
Output: The board will be powered off

User buttons

Input: Press Enter/Left/Right/Up/Down buttons
Output: Button events 1 and 0 are generated

root@imx93-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event 
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-buttons"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 28 (KEY_ENTER)
    Event code 103 (KEY_UP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
Properties:
Testing ... (interrupt to exit)
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 1717485486.586413, -------------- SYN_REPORT ------------
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 1717485486.682265, -------------- SYN_REPORT ------------
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1
Event: time 1717485487.255120, -------------- SYN_REPORT ------------
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0
Event: time 1717485487.367126, -------------- SYN_REPORT ------------
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1
Event: time 1717485488.539564, -------------- SYN_REPORT ------------
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0
Event: time 1717485488.677501, -------------- SYN_REPORT ------------
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1
Event: time 1717485488.897627, -------------- SYN_REPORT ------------
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0
Event: time 1717485489.013136, -------------- SYN_REPORT ------------
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1
Event: time 1717485489.264589, -------------- SYN_REPORT ------------
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1717485489.372584, -------------- SYN_REPORT ------------

User LED

Input: None
Output: Script switches User LED on baseboard ON and OFF in one second intervals

#!/bin/sh

LED=/sys/class/leds/user_sbc

while true; do
        echo 0 > ${LED}/brightness
        sleep 1
        echo 1 > ${LED}/brightness
        sleep 1
done

Input: None
Output: User LED on baseboard is set to heartbeat blinking sequence

root@imx93-voipac-evk:~# echo heartbeat > /sys/class/leds/user_sbc/trigger

Input: None
Output: User LED on SOM is set to heartbeat blinking sequence

root@imx93-voipac-evk:~# echo heartbeat > /sys/class/leds/user_som/trigger