MO 62A SDK User Guide¶
来源: https://help.inhand.com/portal/en/kb/articles/mo-62a-sdk | 分类: MO 62A | 图片 0/0
MO 62A SDK¶
MO 62A single-board computer SDK, powered by the TI AM62A7 platform, offering up to 2 TOPS AI performance.
Table of Contents¶
-
1. Overview
-
2. Environment Setup
-
2.1 Host System Requirements
-
2.2 Clone This Repository
-
2.3 Initialize the Environment with setup.sh
-
2.4 Toolchain
-
-
3. U-Boot
-
3.1 Related Files
-
3.2 Build U-Boot
-
3.3 Stage Build Artifacts
-
3.4 Build Output
-
-
4. Linux Kernel
-
4.1 Related Files
-
4.2 Build DTBs
-
4.3 Build Kernel
-
4.4 Stage Build Artifacts
-
4.5 Build Output
-
-
5. Flashing the SD Card
-
5.1 Prerequisites
-
5.2 Launch the Flash Tool
-
5.3 Online Flashing (Write Directly to SD Card)
-
5.4 Offline Image Creation (balenaEtcher)
-
-
6. Partition Layout
-
6.1 BOOT Partition Contents
-
6.2 Boot Configuration
-
-
7. Hardware Reference
-
7.1 Block Diagram Overview
-
7.2 Power System
-
7.3 I2C Device Map
-
7.4 Memory
-
7.5 Storage
-
7.6 Display — Micro HDMI
-
7.7 Networking — Gigabit Ethernet
-
7.8 USB
-
7.9 Wireless — Wi-Fi / Bluetooth
-
7.10 Audio
-
7.11 RTC
-
7.12 Expansion Interfaces
-
7.13 Debug Interface
-
7.14 Boot Configuration
-
7.15 JTAG Interface
-
7.16 Hardware Revision Straps
-
1. Overview¶
MO-62A is a single-board computer based on the TI AM62A7 processor, designed for edge AI inference, machine vision, and industrial control applications. The AM62A7 integrates a quad-core Arm Cortex-A53 (up to 1.4 GHz), a single Cortex-R5F real-time processor, and a dedicated MMA (Matrix Multiplication Accelerator), delivering up to 2 TOPS of AI inference performance.
This SDK is built on top of TI Processor SDK Linux RT EdgeAI AM62A EVM 11.01.07.05 and provides full hardware customization support for the MO-62A board. It includes the following components:
-
U-Boot : Bootloader customized for MO-62A, including R5 SPL and A53 U-Boot
-
Linux Kernel : Kernel and device trees customized for MO-62A, based on TI Linux RT kernel
-
Build System : Unified Makefile-based build and staging workflow
-
Flash Tool : Supports direct SD card writing and offline balenaEtcher image creation
SDK directory structure overview:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
2. Environment Setup¶
2.1 Host System Requirements¶
The following host environment has been verified for building this SDK:
| Item | Requirement |
|---|---|
| OS | Ubuntu 22.04 LTS (x86_64) |
| Kernel | 6.8.0 or later |
| Architecture | x86_64 |
Required host packages:
1 2 3 4 5 6 | |
2.2 Clone This Repository¶
Clone the MO-62A SDK to any directory on your host machine:
1 2 | |
2.3 Initialize the Environment with setup.sh¶
Run setup.sh from the SDK root to initialize the development host:
1 | |
The script performs the following steps:
-
Verifies the host OS (Ubuntu 22.04 LTS)
-
Adds the current user to the
dialoutgroup (required for serial port access) -
Installs required host packages — press
Yto install,nto skip if already installed -
Writes
TI_SDK_PATHto~/.bashrcpointing to the cloned repository root, so the variable persists across terminal sessions -
Creates a symlink at
/opt/ti-processor-sdk-linux-rt-edgeai-am62a-evm-11.01.07.05pointing to the cloned repository, required because the cross-compilation toolchain binaries have a hardcoded ELF interpreter path at that location
Example output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Note: After
setup.shcompletes,TI_SDK_PATHis active in the current shell and will be automatically set in all future terminal sessions via~/.bashrc. Runningsetup.shagain is safe — it will update the symlink and theTI_SDK_PATHentry without creating duplicates.
2.4 Toolchain¶
Two cross-compilation toolchains are included in the SDK:
AArch64 toolchain — used for Linux kernel and A53 U-Boot:
| Item | Value |
|---|---|
| Path | linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/ |
| Prefix | aarch64-oe-linux- |
| GCC version | 13.4.0 |
| Target sysroot | linux-devkit/sysroots/aarch64-oe-linux/ |
ARMv7 R5 toolchain — used for R5 SPL (tiboot3):
| Item | Value |
|---|---|
| Path | k3r5-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/ |
| Prefix | arm-oe-eabi- |
| GCC version | 13.4.0 |
| Target sysroot | k3r5-devkit/sysroots/armv7at2hf-vfp-oe-eabi/ |
To verify both toolchains are available (run after setup.sh has completed):
1 2 3 4 5 | |
Expected output:
1 2 3 4 5 | |
Note: The toolchain binaries have a hardcoded ELF interpreter path pointing to
/opt/ti-processor-sdk-linux-rt-edgeai-am62a-evm-11.01.07.05/. The symlink created bysetup.shsatisfies this requirement regardless of where the repository is cloned. The toolchains are invoked automatically viaRules.makeand do not require manual PATH export.
3. U-Boot¶
3.1 Related Files¶
MO-62A specific files added to the U-Boot source tree:
| File | Description |
|---|---|
board-support/ti-u-boot-2025.01+git/configs/am62ax_mo_62a_a53_defconfig |
A53 U-Boot defconfig |
board-support/ti-u-boot-2025.01+git/configs/am62ax_mo_62a_r5_defconfig |
R5 SPL defconfig |
board-support/ti-u-boot-2025.01+git/dts/upstream/src/arm64/ti/k3-am62a7-mo-62a.dts |
A53 main device tree |
board-support/ti-u-boot-2025.01+git/dts/upstream/src/arm64/ti/k3-am62a7-mo-62a-pinmux.dtsi |
Pin mux configuration |
board-support/ti-u-boot-2025.01+git/arch/arm/dts/k3-am62a7-r5-mo-62a.dts |
R5 SPL device tree |
board-support/ti-u-boot-2025.01+git/arch/arm/dts/k3-am62a7-mo-62a-u-boot.dtsi |
U-Boot specific DT additions |
board-support/ti-u-boot-2025.01+git/arch/arm/dts/k3-am62a7-mo-62a-binman.dtsi |
Binman packaging configuration |
board-support/ti-u-boot-2025.01+git/arch/arm/dts/k3-am62a7-mo-62a-lp4-4GB.dtsi |
LPDDR4 4GB memory configuration |
Prebuilt firmware required during the build (from TI, not modified):
| File | Description |
|---|---|
board-support/prebuilt-images/am62a-evm/bl31.bin |
Arm Trusted Firmware (TF-A) |
board-support/prebuilt-images/am62a-evm/bl32.bin |
OP-TEE OS |
board-support/prebuilt-images/am62a-evm/ti-dm/am62axx/dm_edgeai_mcu1_0_release_strip.out |
TI Device Manager firmware |
3.2 Build U-Boot¶
U-Boot is built in two separate passes — R5 SPL first, then A53 U-Boot. Both are invoked via the top-level make from the SDK root.
Build R5 SPL (tiboot3):
1 | |
This configures the R5 build with am62ax_mo_62a_r5_defconfig and compiles using the ARMv7 R5 toolchain (arm-oe-eabi-). The output is placed in board-support/u-boot-build/r5/.
Build A53 U-Boot:
1 | |
This configures the A53 build with am62ax_mo_62a_a53_defconfig and compiles using the AArch64 toolchain (aarch64-oe-linux-), incorporating bl31.bin, bl32.bin, and the TI Device Manager firmware via binman. The output is placed in board-support/u-boot-build/a53/.
Build both in one step:
1 | |
3.3 Stage Build Artifacts¶
After a successful build, copy the output binaries to board-support/built-images/:
1 | |
3.4 Build Output¶
After staging, the following files are available in board-support/built-images/:
| File | Size | Source | Description |
|---|---|---|---|
tiboot3-am62ax-gp-mo-62a.bin |
~318 KB | R5 build | R5 SPL for GP (General Purpose) devices |
tiboot3-am62ax-hs-fs-mo-62a.bin |
~320 KB | R5 build | R5 SPL for HS-FS (High Security, Field Securable) devices |
tiboot3-am62ax-hs-mo-62a.bin |
~320 KB | R5 build | R5 SPL for HS (High Security) devices |
tiboot3.bin |
~320 KB | R5 build | Default tiboot3 (HS-FS, used by flash tool) |
tispl.bin |
~1.7 MB | A53 build | TI SPL — loads OP-TEE, TF-A, and A53 U-Boot |
u-boot.img |
~1.2 MB | A53 build | A53 U-Boot FIT image |
Note: The appropriate
tiboot3-*.binvariant depends on the device security state. Most production MO-62A boards ship as HS-FS, which usestiboot3-am62ax-hs-fs-mo-62a.bin. The flash tool usestiboot3.bin(a copy of the HS-FS variant) by default.
4. Linux Kernel¶
4.1 Related Files¶
MO-62A specific files added to the Linux kernel source tree:
| File | Description |
|---|---|
board-support/ti-linux-kernel-6.12.35+git-ti-rt/arch/arm64/configs/am62ax_mo_62a_defconfig |
MO-62A base kernel defconfig |
board-support/ti-linux-kernel-6.12.35+git-ti-rt/arch/arm64/boot/dts/ti/k3-am62a7-mo-62a.dts |
MO-62A main device tree |
board-support/ti-linux-kernel-6.12.35+git-ti-rt/arch/arm64/boot/dts/ti/k3-am62a7-mo-62a-pinmux.dtsi |
Pin mux configuration |
The following kernel config fragments are applied on top of the defconfig during the build:
| Fragment | Location | Purpose |
|---|---|---|
ti_arm64_prune.config |
kernel/configs/ |
Removes non-TI ARM64 platform support to reduce build size |
ti_rt.config |
kernel/configs/ |
Enables PREEMPT_RT real-time kernel patches |
4.2 Build DTBs¶
Build all device tree blobs (62 DTBs and DTBOs in total):
1 | |
This configures the kernel with am62ax_mo_62a_defconfig + ti_arm64_prune.config + ti_rt.config, then builds all DTBs matching the prefix patterns defined in Rules.make:
1 | |
Output is placed in board-support/ti-linux-kernel-6.12.35+git-ti-rt/arch/arm64/boot/dts/.
4.3 Build Kernel¶
Build the kernel image, modules, and FitImage:
1 | |
This performs the following steps in order:
-
Builds DTBs (calls
linux-dtbsautomatically) -
Builds U-Boot (calls
u-bootautomatically, required for FitImage signing key) -
Compiles
ImageandImage.gz -
Compiles kernel modules
-
Packages a signed
fitImageusingmkimagewith the U-Boot signing key and the ITS template fromboard-support/prebuilt-images/am62a-evm/ -
Rebuilds U-Boot A53 (binman) to embed the MO-62A DTB into
tispl.bin
4.4 Stage Build Artifacts¶
Copy kernel and DTB outputs to board-support/built-images/:
1 | |
4.5 Build Output¶
After staging, the following files are added to board-support/built-images/:
| File | Size | Description |
|---|---|---|
Image |
~18 MB | Uncompressed kernel image |
Image.gz |
~7.0 MB | Compressed kernel image |
fitImage |
~7.3 MB | Signed FIT image (kernel + DTBs), used for verified boot |
dtb/ti/*.dtb / dtb/ti/*.dtbo |
— | 62 device tree blobs and overlays |
Note:
fitImageis signed with thecustMpkkey from the U-Boot source tree. The signing step also triggers a rebuild oftispl.binso it embeds the MO-62A DTB (k3-am62a7-mo-62a.dtb) in the A53 SPL. This meansmake linuxwill always update bothfitImageandtispl.bininbuilt-images/.
5. Flashing the SD Card¶
The unified flash tool bin/mo-62a-flash.sh supports two output targets:
-
Online flashing — write directly to a physical SD card
-
Offline image creation — create a
.imgfile for use with balenaEtcher
Both modes create identical partition layouts and content.
5.1 Prerequisites¶
Required host packages (installed by setup.sh):
1 | |
Ensure the following are ready before running the flash tool:
-
Built images staged — run
make u-boot_stageandmake linux_stage(ormake all_stage) so thatboard-support/built-images/contains the required files -
Rootfs tarball present — place a
.tar.xzor.tar.gzrootfs tarball underfilesystem/ -
SD card inserted (online mode only) — the tool automatically detects
/dev/sdXand/dev/mmcblkNblock devices
5.2 Launch the Flash Tool¶
The flash tool is interactive and must be run as root:
1 | |
On launch, it prompts you to choose the output target:
1 2 3 4 5 6 7 | |
5.3 Online Flashing (Write Directly to SD Card)¶
Select [1] for online mode. The tool will enumerate all detected block devices:
1 2 3 4 | |
Then choose the operation mode:
1 2 3 4 5 6 7 | |
| Mode | Description |
|---|---|
full |
Full write: wipe and repartition, format, copy boot files, extract rootfs, install kernel modules |
partition |
Partitioning only: wipe and recreate MBR, format partitions — no content written |
boot |
Overwrite BOOT partition only — re-flashes bootloader and kernel without touching rootfs |
rootfs |
Overwrite rootfs partition only — re-extracts the rootfs without touching the BOOT partition |
For a fresh SD card, select full. The tool will ask for confirmation (Type YES to continue), then proceed automatically:
-
Unmounts any existing partitions on the selected device
-
Wipes the old partition table
-
Creates MBR partition table: BOOT (FAT32, 256 MiB) + rootfs (ext4, remaining space)
-
Formats both partitions
-
Copies boot artifacts to the BOOT partition:
tiboot3.bin,tispl.bin,u-boot.img,Image, DTBs,extlinux/ -
Asks which rootfs tarball to use (if multiple are present under
filesystem/) -
Extracts the rootfs tarball to the rootfs partition
-
Installs kernel modules (
make modules_install) into the rootfs -
Builds and installs any external applications from
board-support/extra-applications/
Example session (full mode):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
After flashing, insert the SD card into the MO-62A board and power on. Boot messages appear on the serial console at ttyS2 (115200 8N1).
5.4 Offline Image Creation (balenaEtcher)¶
Select [2] for image mode. The tool prompts for image parameters:
1 2 3 4 5 6 7 8 9 | |
| Parameter | Description |
|---|---|
| Output directory | Where to write the .img and checksum files |
| Image base name | Filename prefix; output will be <name>.img (and <name>.img.zip etc.) |
| Image size (GiB) | Total image size. Must be large enough to hold the rootfs; 8 GiB is sufficient for the default rootfs |
| Compression | zip (recommended for balenaEtcher), xz (smaller file, slower), none (no compression) |
The tool creates a sparse .img file, partitions and formats it via a loopback device, fills it with the same content as online mode, detaches the loop device, then compresses the result.
Output files:
1 2 3 4 | |
To flash the image with balenaEtcher:
-
Open balenaEtcher
-
Click Flash from file and select
mo-62a.img.zip(balenaEtcher accepts compressed images directly) -
Select the target SD card
-
Click Flash
Note: Image size must be at least as large as the expanded rootfs. The default
8GiB is sufficient for the provided Debian rootfs (~6.9 GiB extracted). When using a custom rootfs, adjust the size accordingly.
5.5 Customising the Rootfs Tarball (Adding apt Packages)¶
The flash tool extracts the rootfs tarball as-is. Additional Debian packages (e.g. frei0r-plugins required by imx219-preview.sh) must be pre-installed into the tarball before flashing so that they are available both after online and offline flashing without requiring network access on the target.
The standard workflow is:
-
Install prerequisites on the host (one-time, x86-64 Ubuntu/Debian):
1sudo apt-get install -y qemu-user-static binfmt-supportRegisters the arm64 binfmt handler so chroot can run aarch64 binaries directly.¶
sudo systemctl restart systemd-binfmt || sudo update-binfmts --enable
-
Extract the tarball into a temporary directory:
1ROOTFS_DIR=/tmp/mo-62a-rootfsmkdir -p "$ROOTFS_DIR"
sudo tar -xpf filesystem/debian-13.2-xfce-v6.12-arm64-2026-01-13-12gb.tar.xz \
-C "$ROOTFS_DIR"
The
-pflag preserves file permissions and ownership. Usesudoso that device nodes and suid bits are restored correctly.
-
Copy the qemu binary into the extracted rootfs:
1sudo cp /usr/bin/qemu-aarch64-static "$ROOTFS_DIR/usr/bin/" -
Bind-mount pseudo-filesystems and enter the chroot:
1sudo mount --bind /proc "$ROOTFS_DIR/proc"sudo mount --bind /sys "$ROOTFS_DIR/sys"
sudo mount --bind /dev "$ROOTFS_DIR/dev"
sudo mount --bind /dev/pts "$ROOTFS_DIR/dev/pts"sudo chroot "$ROOTFS_DIR" /bin/bash
-
Inside the chroot , install the required packages:
1# (inside chroot)apt-get update
apt-get install -y frei0r-plugins
apt-get clean # remove downloaded .deb files to reduce tarball size
exit -
Clean up bind mounts and the qemu binary:
1sudo umount "$ROOTFS_DIR/dev/pts"sudo umount "$ROOTFS_DIR/dev"
sudo umount "$ROOTFS_DIR/sys"
sudo umount "$ROOTFS_DIR/proc"
sudo rm -f "$ROOTFS_DIR/usr/bin/qemu-aarch64-static" -
Repack the tarball (replace the original file):
1TARBALL=filesystem/debian-13.2-xfce-v6.12-arm64-2026-01-13-12gb.tar.xzsudo tar -cpJf "$TARBALL" -C "$ROOTFS_DIR" .
sudo rm -rf "$ROOTFS_DIR"
Re-packing a ~7 GiB rootfs with
xzcompression takes several minutes. Usetar -cpzf(.tar.gz) for a faster but larger archive if turnaround time matters during development.
After repacking, re-run the flash tool as normal. The newly installed packages will be present on the target immediately after flashing, with no network access required.
Packages currently pre-installed via this workflow:
| Package | Required by | Purpose |
|---|---|---|
frei0r-plugins |
imx219-preview.sh |
White-balance correction via frei0r-filter-white-balance GStreamer element |
System configuration changes applied inside the chroot:
These changes are made directly to config files (no apt required) and must be applied after step 5 (inside the chroot) or by editing files directly in $ROOTFS_DIR after exiting the chroot.
-
Disable DPMS and screen blanking — prevents the display from going dark and becoming unresponsive:
1mkdir -p /etc/X11/xorg.conf.dcat > /etc/X11/xorg.conf.d/10-no-dpms.conf << 'EOF'
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSectionSection "Monitor"
Identifier "Monitor0"
Option "DPMS" "false"
EndSection
EOF -
Pass
-s 0 -dpmsto the X server via lightdm — disables the X server's built-in screen saver and DPMS at the server level:1 2
sed -i 's|^# xserver-command=X$|xserver-command=X -s 0 -dpms|' \ /etc/lightdm/lightdm.conf
6. Partition Layout¶
Both online flashing and offline image creation produce identical partition layouts:
| Partition | Number | Filesystem | Size | Label | Contents |
|---|---|---|---|---|---|
| BOOT | 1 | FAT32 (LBA) | 256 MiB | BOOT |
Bootloader, kernel image, DTBs, extlinux config |
| rootfs | 2 | ext4 | Remaining | rootfs |
Root filesystem, kernel modules |
Partition table type: MBR (Master Boot Record)
BOOT Partition Contents¶
After flashing, the BOOT partition contains:
1 2 3 4 5 6 7 8 9 10 | |
Boot Configuration¶
U-Boot uses the extlinux boot flow to load the kernel. The default extlinux/extlinux.conf:
1 2 3 4 5 6 7 8 9 10 11 | |
The kernel command line sets:
-
Serial console:
ttyS2at 115200 baud -
Root device:
/dev/mmcblk1p2(partition 2 on the SD/MMC device) -
Root filesystem type:
ext4
To apply a device tree overlay, uncomment the fdtoverlays line and specify the .dtbo file path relative to the BOOT partition root.
7. Hardware Reference¶
Source:
doc/Mo_62a_s_mb_v10-260203.pdf(schematic Rev V1.0, 22 sheets)
7.1 Block Diagram Overview¶
The MO-62A is built around the TI AM62A74 SoC. The top-level block diagram connects the following subsystems:
| Subsystem | Key IC | SoC Interface |
|---|---|---|
| Power Management | TPS65931211 (PMIC) | SOC_I2C0 |
| eMMC Storage | — | MMC0 |
| LPDDR4 Memory | MT53E1G32D2FW-046 | DDR32 (32-bit) |
| Micro SD Card | — | MMC1 |
| RGB-to-HDMI Transmitter | SiI9022ACNU | RGB888 + MCASP0 + SOC_I2C1 |
| Gigabit Ethernet PHY | DP83867IR | RGMII1 + MDIO |
| USB Hub (4-port) | USB2514 | USB1 |
| Wi-Fi / BT | FG6221ASRC-0L | MMC2 (SDIO) + SOC_UART6 |
| RTC | PCF85263ATL | SOC_I2C0 |
| Audio Codec | TLV320AIC3106 | MCASP1 + SOC_I2C1 |
| EEPROM | BL24C02 (M24M02E) | SOC_I2C1 |
| CSI Camera | — | CSI0 (4-lane MIPI) + SOC_I2C2 |
| 40-Pin Expansion | — | GPIO / I2C / SPI / UART / PWM / MCASP |
| Fan Controller | TXB0104RUTR (voltage translation) | PWM + TIMER |
| Debug UART | SN74LVC2G24DCUR (isolation) | SOC_UART0 |
7.2 Power System¶
Input: USB Type-C, 5 V, maximum 6.38 A total.
Power rails and distribution:
| Rail | Source | Typical Current | Consumers |
|---|---|---|---|
| VCC_3V3_MAIN | DCDC 6 A (TPS62A63RLR) | 6 A max | System 3.3 V backbone |
| VCC_3V3_SYS | LDSW 4 A (TPS22965) | 957 mA | USB Hub, Wi-Fi/BT, Audio Codec, Ethernet PHY, HDMI TX, RTC |
| VSYS_3V3_EXP | Load Switch 4 A (TPS22965) | — | 40-pin, CSI FPC, Micro SD |
| VDD_CORE | PMIC Buck (3.5 A) | — | SoC core |
| VDD_LPDDR4 | PMIC Buck (3.5 A) | — | LPDDR4 |
| SOC_DVDD1V8 | PMIC Buck (4 A) | — | SoC 1.8 V I/O |
| VCC1V8_SYS_SW | PMIC Buck (2 A) | 200 mA | LPDDR4 auxiliary |
| VDD_2V5 | LDO (TPS74801DRCR, 1.5 A) | 325 mA | Ethernet PHY VDDA2P5 |
| VDD_1V0 | LDO (TLV75510PDQN) | 108 mA | Ethernet PHY VDD1P0 |
| VDD_1V2 | LDO (TLV75512PDQN) | 80 mA | HDMI TX VDD1P2 |
| VDD_CANUART | LDO (FLV70S07SYP) | 10 mA | CAN / UART I/O |
Status LEDs (driven by MCU GPIO):
| LED | Color | GPIO Signal |
|---|---|---|
| POWER | Red | B9 / MCU_GPIO0_16 / PWR_LED |
| STATUS | Green | D7 / MCU_GPIO0_15 / ACT_LED |
7.3 I2C Device Map¶
| SoC Bus | Device | Address(es) |
|---|---|---|
| SOC_I2C0 | PMIC TPS65931211 | 0x48 / 0x49 / 0x5A / 0x5B |
| SOC_I2C0 | RTC PCF85263ATL | 0x51 |
| SOC_I2C1 | Audio Codec TLV320AIC3106 | 0x1B |
| SOC_I2C1 | HDMI TX SiI9022ACNU | 0x3B / 0x3F / 0x62 |
| SOC_I2C1 | EEPROM BL24C02 | 0x50 |
| SOC_I2C2 | CSI FPC | — |
| SOC_I2C2 | EXP 40-Pin (SDA1/SCL1) | — |
| MCU_I2C0 | PMIC (secondary I2C) | — |
7.4 Memory¶
LPDDR4 (MT53E1G32D2FW-046)
| Item | Value |
|---|---|
| Bus width | 32-bit |
| Configuration | Single channel, 32-bit |
| SoC interface | DDR0 (full 32-bit data bus) |
| Power | VDD_LPDDR4 (1.1 V), SOC_DVDD1V8 |
| Reset pull-down | R120, 10 kΩ (populated) |
EEPROM (BL24C02F)
| Item | Value |
|---|---|
| Package | SOT23-5 |
| Interface | I2C (SOC_I2C1) |
| Address | 0x50 |
| Write protect | GPIO: C19/GPIO0_17/EEP_WC |
7.5 Storage¶
eMMC
-
Interface: MMC0 (8-bit, JEDC eMMC electrical standard v5.1 / JESD84-B51)
-
I/O voltage: 1.8 V (VDDSHV4)
Micro SD Card
-
Interface: MMC1 (4-bit, UHS-I capable with 3.3 V / 1.8 V switching)
-
I/O voltage: 3.3 V (VDDSHV5) / 1.8 V switched
-
Load switch with reset logic for UHS-I voltage switching
-
Connector: Micro SD (MUF-MB4)
7.6 Display — Micro HDMI¶
RGB-to-HDMI Transmitter: SiI9022ACNU
| Item | Value |
|---|---|
| SoC video interface | VOUT0_DATA[0..15], VOUT0_PCLK, VSYNC, HSYNC, DE (parallel RGB) |
| SoC audio interface | MCASP0 (ACLKX, AFSX, AXR2) |
| I2C control | SOC_I2C1 (0x3B / 0x3F / 0x62) |
| Reset GPIO | AA19/GPIO0_89/HDMI_RSTn |
| Output connector | Micro HDMI (J7) |
| ESD protection | ESD7304D (×2 groups) |
| Power | VDD_1V2 (1.2 V), VCC_3V3_SYS |
7.7 Networking — Gigabit Ethernet](#77-networking--gigabit-ethernet)¶
Ethernet PHY: DP83867CSRGZR
| Item | Value |
|---|---|
| Interface | RGMII1 (1 Gbps) |
| PHY address | 0x00 |
| Auto-negotiation | Enabled, Auto-MDI-X |
| TX clock skew | 0 ns |
| RX clock skew | 2 ns |
| MDIO | SoC_RGMII_MDC / MDO |
| Crystal | Y8, 25 MHz / 2016 / 30 ppm / 12 pF |
| Power | VDDA2P5 = 2.5 V, VDD1P0 = 1.0 V, VDD1P2 = 1.2 V |
| Connector | RJ45 with integrated magnetics (LPJG4928HENL) |
| PoE header | J5 (2×2, 2.54 mm pitch) |
| Link LED | Left (green) |
| Activity LED | Right (yellow) |
7.8 USB¶
USB Hub: USB2514 (USB2514BQFN36)
| Item | Value |
|---|---|
| Upstream port | 1× USB 2.0 (from SoC USB1) |
| Downstream ports | 4× USB 2.0 Type-A |
| Power switch | TPS2561DRC, Ilimit = 2800 mA |
| VBUS supply | VBUS_5V0_TYPEA (from 5 V input via SW 2 A) |
| Current per port | Up to 2 A total for all 4 ports |
USB Type-C (J31)
-
USB 2.0 only (USB0)
-
Powers the board (VIN-5V)
-
ESD protection: TVS05000RV
7.9 Wireless — Wi-Fi / Bluetooth¶
Module: FG6221ASRC-0L (6221A-SRC)
| Item | Value |
|---|---|
| Wi-Fi interface | MMC2 (SDIO 4-bit, 1.8 V) |
| BT interface | SOC_UART6 (with CTS/RTS, 1.8 V) |
| Enable — Wi-Fi | EN_WLAN (F22/GPIO0_71/WLAN_EN/1V8) |
| Enable — BT | EN_BT (K22/GPIO0_1/BT_EN/1V8) |
| Interrupt | INT_WLAN (E21/GPIO0_72/WLAN_IRQ/1V8) |
| Antenna connector | U.FL × 1 (CON1) |
| Supply | SOC_DVDD1V8 (1.8 V), VCC_3V3_SYS (3.3 V) |
7.10 Audio¶
Audio Codec: TLV320AIC3106IRGZ
| Item | Value |
|---|---|
| I2S interface | MCASP1 (ACLKX_BUF, AFSX_BUF, AXR0_BUF, AXR2_BUF) |
| I2C control | SOC_I2C1, address 0x1B |
| MCLK | 12.288 MHz crystal oscillator (25 ppm, 3.3 V) |
| Reset GPIO | W18/GPIO0_1/AUD_RSTn |
| Headphone output | HPLOUT / HPROUT (stereo) |
| Microphone input | MIC_IN (LINE IN) |
| 3.5 mm jack (J8) | Pin 1: L — Pin 2: MIC — Pin 3: GND — Pin 4/5: HPROUT/HPLOUT |
| Wiring standard | 国标 (CTIA): L / R / GND / MIC |
7.11 RTC¶
RTC IC: PCF85263ATL
| Item | Value |
|---|---|
| Interface | SOC_I2C0, I2C 7-bit address 0x51 (0b0101001) |
| Crystal | Y1, SSP-T7-F, 32.768 kHz, 20 ppm, 12.5 pF load |
| Battery connector | J2 (SH1.0-2p, 3 V button cell) |
7.12 Expansion Interfaces¶
7.12.1 40-Pin Header (J9 — USER EXPN)¶
The 40-pin expansion header (silk: USER EXPN) exposes the following SoC signals:
| Function | SoC Signal(s) |
|---|---|
| GPIO | GPIO0..21 (multiple) |
| I2C | SOC_I2C2 (SDA/SCL) — also accessible as EXP40 pin 3/6 |
| UART | SOC_UART5 × 2 (TX/RX) |
| SPI | SOC_SPI0 (CLK/D0/D1/CS0/CS1) |
| PWM | PWM × 3 |
| I2S | MCASP2 (ACLKX, AFSX, AXR) |
| WAKEUP I2C | WUKP_I2C0 |
7.12.2 FPC 22-Pin CSI Camera (JP1)¶
| Item | Value |
|---|---|
| Connector | FPC22 / 0.5 mm pitch (JP1) |
| Standard | Raspberry Pi Camera connector, 4-lane MIPI CSI-2 |
| Lanes | CSI0_RXP/N[0..3] + CSI0_RXCLKP/N |
| I2C | CSI_I2C2_SDA/SCL (from SOC_I2C2) |
| Power | VSYS_3V3_EXP |
| Enable / Power-down | CSI0_PWDN (Y19/GPIO0_87) |
| Calibration | CSI0_RXRCALIB (499 Ω to GND) |
7.12.3 Fan Connector (J6)¶
| Item | Value |
|---|---|
| Connector | SH1.0-4p |
| PWM control | FAN_PWM (via TXB0104RUTR voltage translation) |
| Tach feedback | FAN_TACH |
| SoC signals | PWM (D18/TIMER_IO7), TACH (D1/ID1_10/EHRPWM1_B) |
7.13 Debug Interface¶
Debug UART (J4 — SH1.0-3p)
UART0 is the MPU debug UART. A SN74LVC2G24DCUR provides voltage isolation.
| Pin | Signal |
|---|---|
| 1 | UART0_RXD |
| 2 | GND |
| 3 | UART0_TXD |
Baud rate: 115200 8N1 (matches kernel console on ttyS2).
7.14 Boot Configuration¶
The MO-62A uses a fixed resistor boot mode configuration (BOOTMODE[15:0]).
Configured boot modes:
| Priority | Mode | Description |
|---|---|---|
| Primary | SD CARD (MMC1) | 4-bit MMC SD card boot |
| Backup | Ethernet | Network boot fallback |
BOOTMODE register settings (as configured by resistors):
| Bits | Value | Meaning |
|---|---|---|
| BOOTMODE[2:0] | 011 | 25 MHz PLL input frequency |
| MCU_BOOTMODE[6:3] | 1000 | Primary boot = MMCSD (SD Card) |
| MCU_BOOTMODE[9:7] | B8=1, B7=0 | MMC Port 1, 4-bit width |
| MCU_BOOTMODE[12:10] | 100 | Backup boot = Ethernet |
All supported boot modes (per silicon):
-
OSPI
-
MMC1 — SD Card
-
UART
-
eMMC
-
Ethernet
-
USB0 DFU
-
USB0 MS
7.15 JTAG Interface¶
| Signal | Description |
|---|---|
| SoC_EMU0 / SoC_EMU1 | Emulation pins |
| SoC_TCK | JTAG clock |
| SoC_TMS | JTAG mode select |
| SoC_TDI | JTAG data in |
| SoC_TDO | JTAG data out |
| SoC_TRSTN | JTAG reset |
Pull-up resistors: 4.7 kΩ to VCC_3V3_SYS.
7.16 Hardware Revision Straps¶
Three hardware revision pins (HW_REV0, HW_REV1, HW_REV2) are routed to the OSPI interface page (sheet 9). These PCB strap resistors (DNF by default) allow encoding the PCB revision and DDR model in hardware for software detection.