3. i.MX 9硬件平台解析
i.MX 9系列(如i.MX 93、i.MX 95)在嵌入式Linux产品中通常以“核心板+底板”的形态落地。核心板把SoC、DDR、eMMC、PMIC和必要时钟集成在一块小尺寸PCB上,底板则承载以太网PHY、USB、CAN、显示、音频、调试串口等产品化接口。理解两者之间的接口边界,是硬件选型、原理图评审和Bring-up排障的基础。
核心板与底板的接口划分
核心板对外一般通过高密度板对板连接器引出三类信号:电源、低速控制与高速差分。以i.MX 93核心板为例,典型引出包括:
- 电源类:VIN(通常5V或3.7V锂电)、VDD_3V3、VDD_1V8、VDD_SNVS(常电域)以及GND。
- 低速控制:I2C、SPI、UART、GPIO、PWM、SAI(音频)、JTAG/SWD。
- 高速差分:USB2.0 D+/D-、以太网RGMII/RMII、MIPI-DSI/CSI、PCIe(i.MX 95)。
底板设计时最容易出问题的是电源域归属和复位/启动引脚。核心板通常已把SoC的NVCC_xxx电源域按1.8V或3.3V固定,底板若把某个IO bank误接到不同电压,会导致该bank永久损坏或电平不匹配。评审时应逐bank核对核心板规格书中的IO电压表。
电源域与上电时序
i.MX 9内部划分为多个电源域:VDD_ARM、VDD_SOC、VDD_GPU(部分型号)、NVCC_1V8、NVCC_3V3、VDD_SNVS、VDD_USB、VDD_MIPI等。PMIC(如PCA9451、PCA9452)按预设时序输出各路电压。上电顺序通常为:VDD_SNVS → VDD_1V8 → VDD_3V3 → VDD_ARM/SOC → DDR → 外设。若时序错误,SoC可能无法从内部ROM启动。
时钟树结构
i.MX 9的时钟源主要有24MHz晶振(XTALI)、32.768kHz RTC晶振,以及部分型号的音频晶振。24MHz经PLL生成ARM、DDR、总线、外设时钟。关键时钟路径包括:
- ARM PLL → A55/A7核心频率(如1.7GHz)。
- DDR PLL → DDR控制器,决定DDR速率(如LPDDR4X 3733MT/s)。
- SYS PLL → AXI/AHB总线、USB、以太网。
- AUDIO PLL → SAI、SPDIF,保证音频采样率精确。
设备树中通过assigned-clocks和assigned-clock-rates配置关键时钟。例如把ENET的RGMII参考时钟设为125MHz,若配置错误,PHY会link不上或丢包。
DDR选型要点
i.MX 93支持LPDDR4/LPDDR4X和DDR4/LPDDR4,i.MX 95支持LPDDR5。选型时需关注:
| 参数 | 典型值 | 影响 |
|---|---|---|
| 容量 | 1GB/2GB/4GB | 决定Linux可用内存 |
| 位宽 | 16bit/32bit | 带宽与PCB层数 |
| 速率 | 3200/3733MT/s | 需与SoC DDR PLL匹配 |
| 电压 | 1.1V/1.05V | LPDDR4X更省电 |
DDR初始化依赖SoC内部DDR PHY固件和ddr_init参数。NXP提供DDR Tool生成寄存器序列,核心板厂商通常已固化。底板若更换DDR颗粒,必须重新跑DDR压力测试(如memtester、stress-ng --vm)。
启动模式配置
i.MX 9通过BOOT_MODE[1:0]和GPIO引脚决定启动介质。常见模式:
- 内部Fuse启动:从eMMC/SD启动,量产默认。
- 串行下载:USB/SDP模式,用于工厂烧录。
- SD卡启动:开发阶段常用,便于切换镜像。
启动介质选择还涉及BOOT_CFG引脚,例如SD1 vs SD2、eMMC vs QSPI。底板需把这些引脚通过电阻上拉/下拉到确定电平,避免浮空导致启动失败。
Bring-up检查清单
拿到核心板+底板后,建议按以下顺序验证:
- 测量各路电源电压和上电时序,确认RESET_B释放时机。
- 用示波器看24MHz晶振是否起振,频率偏差应在±50ppm内。
- 短接BOOT_MODE到SD卡启动,插入已烧录的SD卡,观察串口是否输出U-Boot SPL日志。
- 进入U-Boot后执行
mmc list、md 0x80000000验证DDR读写。 - 启动Linux后执行
cat /proc/cpuinfo、free -h、dmesg | grep -i ddr确认频率和容量。
pinctrl。核心板与底板的接口设计、电源域划分、时钟树配置、DDR选型和启动模式设置,共同决定了i.MX 9平台能否稳定启动并发挥性能。实际项目中,建议把上述检查项固化为硬件Bring-up checklist,每块新底板都按同一流程验证,可显著缩短调试周期。