1. 项目概述与核心价值在嵌入式系统尤其是基于复杂片上系统SoC的设计中硬件工程师面临的最大挑战之一是如何在有限的物理引脚上实现尽可能丰富的外设连接与功能扩展。这就像在一个寸土寸金的城市中心规划交通枢纽每一条道路引脚都必须承载多种流向功能的车辆信号。德州仪器TI的DRA77xP/DRA76xP-ACD CPU评估板EVM正是应对这一挑战的典范之作。它不仅仅是一块简单的开发板更是一个精心设计的硬件接口复用“沙盘”向我们展示了如何通过精密的逻辑设计将一颗高度集成的SoC的潜能发挥到极致。这块评估板的核心价值在于它系统性地呈现了从信号源头SoC引脚到实际物理接口如摄像头连接器、以太网PHY、音频插孔的完整路径并清晰地揭示了如何通过硬件配置如拨码开关、I/O扩展器来动态切换这些路径。对于开发者而言深入理解这块板子的硬件接口与信号复用逻辑其意义远超“点亮一块板子”。它直接关系到你能否正确地为目标应用配置硬件、能否在调试时快速定位是软件配置问题还是硬件路径错误、能否在原型设计阶段就规避潜在的信号完整性和资源冲突风险。无论是进行车载信息娱乐系统IVI、高级驾驶辅助系统ADAS的算法验证还是设计工业视觉处理网关这块板子提供的硬件框架都是极具参考价值的蓝本。2. 硬件接口全景与设计哲学解析2.1 评估板核心定位与接口概览DRA77xP/DRA76xP-ACD EVM的设计目标非常明确为基于该系列SoC的应用开发提供一个功能全面、配置灵活的原型验证平台。SoC内部集成了强大的ARM Cortex-A15/M4内核、多个DSP和加速器以及海量的外设控制器但引出的BGA封装引脚是固定的。评估板的设计哲学就是在不增加额外连接器从而不增加成本和面积的前提下通过板级复用逻辑让这些引脚能够服务于多种可能互斥的应用场景。从提供的材料中我们可以看到评估板集成了令人印象深刻的接口阵列视频输入两个CSI-2端口CSI2-0, CSI2-1其中一个直接连接至Leopard Imaging相机模块接口另一个则引至扩展连接器。视频输出通过VOUT3端口支持FPD-Link III显示输出。网络两个千兆以太网RGMII接口RGMII0, RGMII1连接至DP83867 PHY芯片。音频板载AIC3106音频编解码器通过McASP3接口与SoC通信提供立体声输入/输出和麦克风输入。扩展与模块化Mini-PCIe接口用于连接无线模块等COM8接口专门用于TI的Wi-Fi/蓝牙模块MOST音频总线用于车载音频网络多个高速扩展连接器如Samtec QSH系列用于连接自定义子板。存储支持通过GPMC接口连接NOR/NAND Flash通过MMC2接口连接eMMC以及通过QSPI接口连接串行Flash。调试与监控丰富的用户LED、开关以及一套基于INA226的精密电源监控系统。注意这种“大而全”的设计在评估板上是优点但在最终产品设计中需要谨慎取舍。产品设计应遵循“按需配置”原则移除不必要的复用器和连接器以降低成本、提高可靠性并优化信号完整性。2.2 信号复用逻辑的核心控制权分层理解这块板子的关键在于把握其信号复用控制的分层架构。它并非杂乱无章而是有清晰的层次SoC级复用Pin Mux这是第一层由SoC内部的引脚复用控制器控制。每个物理引脚可以映射到多个内部外设功能如gpmc_ad[0]引脚可以作为gpmc_ad[0]、vout3_d[0]或sysboot0。这通常在设备树Device Tree或内核启动早期由软件配置。板级复用Board-Level Mux这是评估板设计的精髓。当SoC的某个引脚被配置为输出特定功能信号例如VOUT3数据线后该信号在PCB上还会经过一个物理的多路复用器芯片如SN74CBTLV16212。这个MUX由I/O扩展器如PCF8575的某个GPIO位控制决定信号是通往板载设备如FPD-Link芯片还是扩展接口。功能选择与使能通过拨码开关DIP Switch和I/O扩展器GPIO控制特定功能的使能或选择。例如选择从NOR还是NAND启动选择PCIe的复位方向或者使能eFuse编程电源。这种分层控制赋予了硬件极大的灵活性。开发者需要协同配置SoC的引脚功能和板级MUX的路径才能让信号正确抵达目的地。很多初学者的困惑都源于只配置了软件而忽略了硬件上的“开关”是否拨到了正确的位置。3. 关键接口模块深度剖析与实操要点3.1 视频子系统CSI-2输入与VOUT3输出视频通路是复用逻辑的典型应用。SoC的VIN2A视频输入和VOUT3视频输出端口都与其它功能复用引脚。CSI-2输入通路以VIN2A为例 SoC的vin2a_d[23:0]、clk、hsync、vsync、de这些信号线在板级通过两个MUX原理图中的Mux D和Mux F进行分配。Mux D控制vin2a_d[11:0]及控制信号。由I/O扩展器EXP3的P6和P2位控制。01路由至LI Camera连接器。10路由至扩展连接器。11悬空默认。Mux F控制vin2a_d[23:12]。由I/O扩展器EXP3的P12和P11位控制。01路由至LI Camera连接器与Mux D配合构成完整的24位数据。10路由至扩展连接器。11路由至RGMII1以太网PHY默认。实操心得这里有一个极易踩坑的点。默认状态下EXP3.P12/P1111VIN2A的高12位数据线被连接到了RGMII1以太网PHY上。这意味着如果你不通过I/O扩展器更改Mux F的配置直接启用VIN2A接口可能会与以太网功能产生硬件冲突导致视频采集或网络不通。在调试摄像头输入前第一件事就是检查并配置这些MUX控制位。VOUT3显示输出通路 SoC的vout3_d[23:0]及控制信号与GPMC地址/数据总线、以及sysboot[15:0]启动配置引脚复用。这是评估板上最复杂的复用关系之一。SoC Pin Mux需要将gpmc_ad[15:0],gpmc_a[11:0]等引脚软件配置为VOUT3功能。板级Mux B由I/O扩展器EXP2的P0位控制。0信号路由至FPD-Link III发射器DS90UB921用于驱动远程显示面板。1信号路由至GPMC总线用于连接NOR/NAND Flash默认。启动配置影响gpmc_ad[15:0]在启动初期是sysboot[15:0]引脚用于读取启动模式。因此如果计划使用VOUT3必须确保启动模式配置在复位阶段完成后再通过软件切换引脚功能至VOUT3。硬件上Mux B的默认设置GPMC保证了启动流程的正常进行。3.2 音频与通信接口McASP、SPI与UART的抉择音频接口McASP3/7 音频编解码器AIC3106和COM8模块的蓝牙音频部分都需要McASP接口。SoC有多个McASP实例评估板通过Mux H来分配McASP3和McASP7的信号。Mux H由I/O扩展器EXP3的P1位控制。0McASP3/7信号路由至AIC3106编解码器和COM8模块的蓝牙部分。1信号路由至扩展连接器默认。 这意味着在默认情况下板载的音频编解码器是无法工作的。你必须先通过I2C配置EXP3将P1位拉低才能让音频信号抵达AIC3106。SPI2与UART3的复用 SPI2和UART3共享同一组SoC引脚通过Mux K选择。Mux K由I/O扩展器EXP2的P16位控制。0配置为UART3信号路由至COM8模块用于蓝牙的HCI通信。1配置为SPI2信号路由至扩展连接器默认。 因此如果你使用板载的Wi-Fi/蓝牙模块COM8需要将Mux K切至UART3模式并在SoC端将引脚功能配置为UART3。若你需要使用SPI2连接外部设备则需保持默认并在SoC端配置为SPI2功能。3.3 网络与存储接口的复用权衡以太网接口RGMII0/1 两个千兆以太网口也涉及复用。RGMII0与VIN4B视频输入端口和部分GPIO5复用。通过Mux J选择由EXP2的P4位控制。默认1连接至DP83867 PHY。这意味着如果你需要使用VIN4B功能将失去一个以太网口。RGMII1如前所述与VIN2A的高12位数据线复用Mux F。默认11连接至另一个DP83867 PHY。这是视频输入与网络冲突的典型例子。存储接口GPMC、MMC2、QSPI 存储接口的复用直接关系到系统启动和引导。GPMC vs VOUT3 (Mux B)如前所述用于显示和存储的二选一。GPMC vs eMMC (Mux C)gpmc_a[27:19]和gpmc_cs[1]与mmc2信号连接eMMC复用。选择由拨码开关SW6.3或I/O扩展器EXP3的P15:P14控制。这是一个关键的启动设备选择点。GPMC vs QSPI (Mux A)gpmc_a[18:13]和gpmc_cs[2]与QSPI1信号复用。文档特别指出此Mux通过电阻实现零欧姆电阻或NC更改配置需要物理移动或焊接电阻而非软件控制。这通常是在板卡生产时决定的硬件配置。注意事项启动设备的选择逻辑是分层的。首先SoC根据sysboot引脚确定从哪个接口如MMC GPMC QSPI启动。然后硬件Mux如Mux C需要被正确设置将信号引导至该接口对应的物理设备如eMMC或NOR。任何一层配置错误都会导致无法启动。4. 核心配置机制I/O扩展器与拨码开关详解4.1 I/O扩展器软件控制的硬件开关评估板使用了三片PCF8575 I2C GPIO扩展器EXP1, EXP2, EXP3提供了大量的额外GPIO用于控制MUX、读取开关状态、驱动LED等。这是实现灵活板级配置的核心。访问方式三者均挂载在I2C1总线上地址分别为0x20, 0x21, 0x267位地址。通过标准的I2C读写操作即可控制其输出或读取输入状态。核心功能分配EXP1主要控制用户LEDDS2-DS5、以太网PHY复位、USB过流检测、以及一个用户开关。它的中断输出H_PCF8575_INT连接到SoC的GPIO1_3。EXP2承担了最关键的多路复用器控制任务。包括P0 (SEL_GPMC_AD_VID_S0)控制Mux B选择VOUT3还是GPMC。P3 (SEL_I2C3_CAN2) 和 P5 (SEL_EXP_I2C3_DCAN2)控制I2C3与DCAN2的复用与路由。P4 (SEL_ENET_MUX_S0)控制Mux J选择RGMII0还是VIN4B/GPIO到扩展口。P16 (SEL_UART3_SPI2)控制Mux K选择UART3蓝牙还是SPI2。EXP3同样负责重要MUX控制及覆盖设置。P1 (VIN6_SEL_S0)控制Mux H选择McASP3/7去音频编解码器还是扩展口。P6, P2 (VIN2_S2,VIN2_S0)控制Mux D选择VIN2A的去向。P12, P11 (EXVIN2_S2,EXVIN2_S0)控制Mux F选择RGMII1/VIN2A高位的去向。P15:P14, P17:P16用于覆盖拨码开关的启动配置MMC2和NOR启动。配置流程示例启用板载音频确认I2C1总线已在软件中启用并正常工作。读取EXP3的当前输出寄存器值假设为0xFF所有位默认高电平。将P1位清零。计算新值new_val current_val ~(1 1)。如果P1对应输出寄存器的Bit 1则new_val 0xFF ~0x02 0xFD。将值0xFD写入EXP3的输出寄存器。此时Mux H路径切换McASP3/7信号连接至AIC3106。最后在SoC端配置McASP3/7的引脚复用和驱动程序。4.2 拨码开关硬件状态的快速预设拨码开关SW6提供了另一层硬件配置通常用于设置上电时的初始状态特别是启动配置。SW6.1 SW6.2用于选择GPMC总线上连接的是NOR Flash还是NAND Flash。这与Mux B的配置共同作用。SW6.3关键启动选择开关。OFF位置选择GPMCNOR/NAND启动ON位置选择MMC2eMMC启动。这个开关的状态会被SoC的sysboot引脚在复位时采样。SW6.4控制CSI-2接口上I2C5和SPI1的I/O电压电平1.8V或3.3V以适应不同的相机传感器模块。SW6.8控制Mini-PCIe接口的复位方向。ON默认允许SoC复位外设OFF允许外设复位SoC。避坑指南拨码开关是机械器件可能存在接触不良的问题。在调试无法启动的系统时务必用万用表测量关键开关引脚的实际电平而不是仅仅“看”开关的位置。我曾遇到过因开关氧化导致电平错误浪费数小时排查软件问题的案例。5. 电源监控与系统管理实战解析5.1 精密电源监控网络评估板设计了一套非常详尽的电源监控系统使用多片INA226芯片监控近30路电源轨。这对于功耗分析、故障诊断和系统可靠性评估至关重要。架构INA226器件分布在两条I2C总线BUS A和BUS B上。BUS A监控SoC及板载核心电源轨如VDD_MPU_AVS,VDD_GPU_AVS,VDDR_MEM_1V35等。BUS B监控系统输入和稳压器输入电源轨如EVM_12V,EVM_5V0,VSYS_3V3等。访问路径默认情况下这些INA226由I2C2总线访问。但I2C2与HDMI的DDC显示数据通道功能复用。需要通过配置EXP3的P0位PM_OEn来选择。0I2C2连接至电源监控总线PM Bus。1I2C2连接至HDMI端口默认。 因此要读取电源数据必须先通过EXP3将I2C2切换到PM Bus模式这将导致HDMI显示无法进行EDID读取。EXP3的P3位PM_SEL用于在PM Bus A和B之间选择。实操步骤读取CPU核心电压电流硬件配置通过I2C1控制EXP3将P0位写为0启用PM Bus访问。软件配置在Linux系统中确保I2C2总线驱动已加载并确认INA226设备地址例如0x40在总线上被识别。通常需要加载ina2xx内核驱动。数据读取可以通过i2c-tools在命令行快速验证# 假设I2C2适配器编号为1 读取0x40设备VDD_MPU_AVS的总线电压寄存器0x02 i2cget -y 1 0x40 0x02 w读取的值需要根据INA226数据手册进行换算例如LSB为1.25mV。系统集成在生产测试或长期监控场景可以编写后台服务定期读取所有INA226数据记录功耗曲线并设置阈值告警。5.2 配置EEPROM与系统身份板载的CAT24C256 EEPROM存储了关键的板卡配置信息格式固定。内容包括板卡名称DRA76/7xP,TDA2P、版本号、配置选项如是否支持EMIF ECC、MAC地址存储位置、启动设备类型以及两个EMIF接口的内存大小。作用启动加载程序如U-Boot或操作系统可以读取这些信息自动适配硬件配置例如设置正确的内存映射、加载对应的设备树二进制文DTB。访问位于I2C1总线地址0x50。出厂已编程不建议用户修改除非你非常清楚自己在做什么并且有恢复方案。配置选项解析ID.CONFIG_OPTION字段的每一位都代表一个硬件特性。例如Bit 6: 1 EMIF2支持ECC 0 不支持。Bit 5: 1 支持EMIF2 0 不支持。Bit 0: 0 默认QSPI启动 1 NOR启动。 软件在初始化阶段读取这些位可以动态决定是否启用ECC校验、如何初始化内存控制器等。6. 典型应用场景配置与问题排查实录6.1 场景一构建双摄像头采集以太网通信系统目标使用CSI2-0接口连接一个摄像头通过LI连接器使用CSI2-1接口连接另一个摄像头通过扩展口同时保留RGMII1千兆以太网功能。硬件配置冲突分析CSI2-0 (LI接口)它直接连接至SoC的CSI2-0端口不与其他主要功能复用配置相对简单。CSI2-1 (扩展口)CSI2-1信号也直接引出至扩展口无冲突。RGMII1问题在于RGMII1与VIN2A高位复用Mux F。我们的摄像头使用的是CSI2接口而非并行的VIN2A接口。因此只要我们不启用VIN2A功能RGMII1就可以正常使用。关键在于SoC的引脚复用配置不能将相关引脚配置为VIN2A模式。配置步骤硬件连接摄像头A接LI接口摄像头B接扩展口的CSI2-1引脚。网线接RJ45接口。硬件MUX设置由于不使用VIN2AMux D和Mux F保持默认即可EXP3.P6/P211, EXP3.P12/P1111。这确保了RGMII1通路连接至PHY。SoC Pin Mux配置在设备树中确保vin2a相关的引脚保持为默认或设置为安全模式如PIN_INPUT。rgmii1相关的引脚正确配置为rgmii1功能模式。csi2_0和csi2_1的引脚正确配置。软件驱动使能CSI2和V4L2驱动以及以太网驱动。6.2 场景二启用音频播放与蓝牙目标使用板载AIC3106播放音频并通过COM8模块的蓝牙连接耳机。硬件配置冲突分析音频播放需要McASP3/7连接至AIC3106。这受控于Mux H (EXP3.P1)默认(1)连接扩展口必须改为0。蓝牙COM8模块需要UART3进行HCI通信。这受控于Mux K (EXP2.P16)默认(1)连接SPI2到扩展口必须改为0。同时COM8模块的GPIO控制信号如H_GP5[4]蓝牙使能需要SoC的GPIO正确配置。配置步骤硬件MUX设置通过I2C配置EXP3将P1位写0。通过I2C配置EXP2将P16位写0。SoC Pin Mux配置配置mcasp3相关引脚为mcasp3功能。配置uart3相关引脚为uart3功能注意这与spi2复用。配置gpio5_4等引脚为GPIO输出模式用于控制蓝牙模块。电压电平COM8接口要求1.8V I/O评估板已通过电平转换器处理无需额外配置。软件驱动加载ti-aic3106音频编解码器驱动、hci_uart蓝牙协议栈驱动并确保对应的设备节点如/dev/ttyO3for UART3存在。6.3 常见问题排查速查表问题现象可能原因排查步骤系统无法启动无串口输出1. 启动设备选择错误SW6.3。2. 启动设备未正确初始化如eMMC未焊好。3. 核心电源监控报警PMIC未正常输出。1. 确认SW6.3位置与实际存储设备一致。2. 测量eMMC/NAND Flash的电源和时钟。3. 检查INA226报警输出测量关键电源轨电压。摄像头无法识别media-ctl找不到实体1. CSI-2端口未在设备树中启用。2. 相机传感器供电或时钟未开启。3. I2C通信失败地址、速率、电平。1. 检查设备树中ports、endpoints配置。2. 测量相机连接器上的电源和MCLK。3. 使用i2cdetect扫描CSI-2对应的I2C总线确认传感器地址可读。以太网RGMII1不工作但RGMII0正常VIN2A功能与RGMII1硬件冲突。1. 检查设备树确保vin2a节点被禁用或引脚未配置为vin2a功能。2. 确认Mux F控制位EXP3.P12/P11为11默认。音频无声1. McASP路径未切至AIC3106Mux H。2. 音频编解码器I2C通信失败。3. 时钟配置错误AHCLKX。1.首要步骤读取EXP3的P1位确认其为0。2. 使用i2cdetect检查I2C1总线上地址0x19(AIC3106)是否存在。3. 用示波器测量AIC3106的MCLK引脚是否有时钟输入。无法通过I2C访问电源监控芯片I2C2总线未切换到PM Bus模式。1. 检查EXP3的P0位必须为0。2. 检查I2C2总线驱动是否加载/dev/i2c-1或对应编号是否存在。3. 使用i2cdetect -l和i2cdetect -y [num]扫描总线。用户LED/开关不响应I/O扩展器EXP1配置或访问错误。1. 确认I2C1总线正常。2. 确认EXP1的I2C地址0x20可访问。3. 对于LED写输出寄存器对于开关读输入寄存器。注意PCF8575的读写操作。调试心法遇到任何外设不工作遵循“先硬件后软件先路径后端点”的原则。首先用万用表、示波器确认物理连接、电源、时钟、复位等基础信号。然后务必确认硬件复用开关MUX的状态是否与你的软件配置意图一致。最后再深入排查设备树配置、驱动加载和应用程序逻辑。评估板上的I/O扩展器状态是连接硬件配置与软件期望的“桥梁”是调试中最值得优先打印和检查的信息之一。
深入解析TI DRA77xP评估板硬件接口复用与配置实战
1. 项目概述与核心价值在嵌入式系统尤其是基于复杂片上系统SoC的设计中硬件工程师面临的最大挑战之一是如何在有限的物理引脚上实现尽可能丰富的外设连接与功能扩展。这就像在一个寸土寸金的城市中心规划交通枢纽每一条道路引脚都必须承载多种流向功能的车辆信号。德州仪器TI的DRA77xP/DRA76xP-ACD CPU评估板EVM正是应对这一挑战的典范之作。它不仅仅是一块简单的开发板更是一个精心设计的硬件接口复用“沙盘”向我们展示了如何通过精密的逻辑设计将一颗高度集成的SoC的潜能发挥到极致。这块评估板的核心价值在于它系统性地呈现了从信号源头SoC引脚到实际物理接口如摄像头连接器、以太网PHY、音频插孔的完整路径并清晰地揭示了如何通过硬件配置如拨码开关、I/O扩展器来动态切换这些路径。对于开发者而言深入理解这块板子的硬件接口与信号复用逻辑其意义远超“点亮一块板子”。它直接关系到你能否正确地为目标应用配置硬件、能否在调试时快速定位是软件配置问题还是硬件路径错误、能否在原型设计阶段就规避潜在的信号完整性和资源冲突风险。无论是进行车载信息娱乐系统IVI、高级驾驶辅助系统ADAS的算法验证还是设计工业视觉处理网关这块板子提供的硬件框架都是极具参考价值的蓝本。2. 硬件接口全景与设计哲学解析2.1 评估板核心定位与接口概览DRA77xP/DRA76xP-ACD EVM的设计目标非常明确为基于该系列SoC的应用开发提供一个功能全面、配置灵活的原型验证平台。SoC内部集成了强大的ARM Cortex-A15/M4内核、多个DSP和加速器以及海量的外设控制器但引出的BGA封装引脚是固定的。评估板的设计哲学就是在不增加额外连接器从而不增加成本和面积的前提下通过板级复用逻辑让这些引脚能够服务于多种可能互斥的应用场景。从提供的材料中我们可以看到评估板集成了令人印象深刻的接口阵列视频输入两个CSI-2端口CSI2-0, CSI2-1其中一个直接连接至Leopard Imaging相机模块接口另一个则引至扩展连接器。视频输出通过VOUT3端口支持FPD-Link III显示输出。网络两个千兆以太网RGMII接口RGMII0, RGMII1连接至DP83867 PHY芯片。音频板载AIC3106音频编解码器通过McASP3接口与SoC通信提供立体声输入/输出和麦克风输入。扩展与模块化Mini-PCIe接口用于连接无线模块等COM8接口专门用于TI的Wi-Fi/蓝牙模块MOST音频总线用于车载音频网络多个高速扩展连接器如Samtec QSH系列用于连接自定义子板。存储支持通过GPMC接口连接NOR/NAND Flash通过MMC2接口连接eMMC以及通过QSPI接口连接串行Flash。调试与监控丰富的用户LED、开关以及一套基于INA226的精密电源监控系统。注意这种“大而全”的设计在评估板上是优点但在最终产品设计中需要谨慎取舍。产品设计应遵循“按需配置”原则移除不必要的复用器和连接器以降低成本、提高可靠性并优化信号完整性。2.2 信号复用逻辑的核心控制权分层理解这块板子的关键在于把握其信号复用控制的分层架构。它并非杂乱无章而是有清晰的层次SoC级复用Pin Mux这是第一层由SoC内部的引脚复用控制器控制。每个物理引脚可以映射到多个内部外设功能如gpmc_ad[0]引脚可以作为gpmc_ad[0]、vout3_d[0]或sysboot0。这通常在设备树Device Tree或内核启动早期由软件配置。板级复用Board-Level Mux这是评估板设计的精髓。当SoC的某个引脚被配置为输出特定功能信号例如VOUT3数据线后该信号在PCB上还会经过一个物理的多路复用器芯片如SN74CBTLV16212。这个MUX由I/O扩展器如PCF8575的某个GPIO位控制决定信号是通往板载设备如FPD-Link芯片还是扩展接口。功能选择与使能通过拨码开关DIP Switch和I/O扩展器GPIO控制特定功能的使能或选择。例如选择从NOR还是NAND启动选择PCIe的复位方向或者使能eFuse编程电源。这种分层控制赋予了硬件极大的灵活性。开发者需要协同配置SoC的引脚功能和板级MUX的路径才能让信号正确抵达目的地。很多初学者的困惑都源于只配置了软件而忽略了硬件上的“开关”是否拨到了正确的位置。3. 关键接口模块深度剖析与实操要点3.1 视频子系统CSI-2输入与VOUT3输出视频通路是复用逻辑的典型应用。SoC的VIN2A视频输入和VOUT3视频输出端口都与其它功能复用引脚。CSI-2输入通路以VIN2A为例 SoC的vin2a_d[23:0]、clk、hsync、vsync、de这些信号线在板级通过两个MUX原理图中的Mux D和Mux F进行分配。Mux D控制vin2a_d[11:0]及控制信号。由I/O扩展器EXP3的P6和P2位控制。01路由至LI Camera连接器。10路由至扩展连接器。11悬空默认。Mux F控制vin2a_d[23:12]。由I/O扩展器EXP3的P12和P11位控制。01路由至LI Camera连接器与Mux D配合构成完整的24位数据。10路由至扩展连接器。11路由至RGMII1以太网PHY默认。实操心得这里有一个极易踩坑的点。默认状态下EXP3.P12/P1111VIN2A的高12位数据线被连接到了RGMII1以太网PHY上。这意味着如果你不通过I/O扩展器更改Mux F的配置直接启用VIN2A接口可能会与以太网功能产生硬件冲突导致视频采集或网络不通。在调试摄像头输入前第一件事就是检查并配置这些MUX控制位。VOUT3显示输出通路 SoC的vout3_d[23:0]及控制信号与GPMC地址/数据总线、以及sysboot[15:0]启动配置引脚复用。这是评估板上最复杂的复用关系之一。SoC Pin Mux需要将gpmc_ad[15:0],gpmc_a[11:0]等引脚软件配置为VOUT3功能。板级Mux B由I/O扩展器EXP2的P0位控制。0信号路由至FPD-Link III发射器DS90UB921用于驱动远程显示面板。1信号路由至GPMC总线用于连接NOR/NAND Flash默认。启动配置影响gpmc_ad[15:0]在启动初期是sysboot[15:0]引脚用于读取启动模式。因此如果计划使用VOUT3必须确保启动模式配置在复位阶段完成后再通过软件切换引脚功能至VOUT3。硬件上Mux B的默认设置GPMC保证了启动流程的正常进行。3.2 音频与通信接口McASP、SPI与UART的抉择音频接口McASP3/7 音频编解码器AIC3106和COM8模块的蓝牙音频部分都需要McASP接口。SoC有多个McASP实例评估板通过Mux H来分配McASP3和McASP7的信号。Mux H由I/O扩展器EXP3的P1位控制。0McASP3/7信号路由至AIC3106编解码器和COM8模块的蓝牙部分。1信号路由至扩展连接器默认。 这意味着在默认情况下板载的音频编解码器是无法工作的。你必须先通过I2C配置EXP3将P1位拉低才能让音频信号抵达AIC3106。SPI2与UART3的复用 SPI2和UART3共享同一组SoC引脚通过Mux K选择。Mux K由I/O扩展器EXP2的P16位控制。0配置为UART3信号路由至COM8模块用于蓝牙的HCI通信。1配置为SPI2信号路由至扩展连接器默认。 因此如果你使用板载的Wi-Fi/蓝牙模块COM8需要将Mux K切至UART3模式并在SoC端将引脚功能配置为UART3。若你需要使用SPI2连接外部设备则需保持默认并在SoC端配置为SPI2功能。3.3 网络与存储接口的复用权衡以太网接口RGMII0/1 两个千兆以太网口也涉及复用。RGMII0与VIN4B视频输入端口和部分GPIO5复用。通过Mux J选择由EXP2的P4位控制。默认1连接至DP83867 PHY。这意味着如果你需要使用VIN4B功能将失去一个以太网口。RGMII1如前所述与VIN2A的高12位数据线复用Mux F。默认11连接至另一个DP83867 PHY。这是视频输入与网络冲突的典型例子。存储接口GPMC、MMC2、QSPI 存储接口的复用直接关系到系统启动和引导。GPMC vs VOUT3 (Mux B)如前所述用于显示和存储的二选一。GPMC vs eMMC (Mux C)gpmc_a[27:19]和gpmc_cs[1]与mmc2信号连接eMMC复用。选择由拨码开关SW6.3或I/O扩展器EXP3的P15:P14控制。这是一个关键的启动设备选择点。GPMC vs QSPI (Mux A)gpmc_a[18:13]和gpmc_cs[2]与QSPI1信号复用。文档特别指出此Mux通过电阻实现零欧姆电阻或NC更改配置需要物理移动或焊接电阻而非软件控制。这通常是在板卡生产时决定的硬件配置。注意事项启动设备的选择逻辑是分层的。首先SoC根据sysboot引脚确定从哪个接口如MMC GPMC QSPI启动。然后硬件Mux如Mux C需要被正确设置将信号引导至该接口对应的物理设备如eMMC或NOR。任何一层配置错误都会导致无法启动。4. 核心配置机制I/O扩展器与拨码开关详解4.1 I/O扩展器软件控制的硬件开关评估板使用了三片PCF8575 I2C GPIO扩展器EXP1, EXP2, EXP3提供了大量的额外GPIO用于控制MUX、读取开关状态、驱动LED等。这是实现灵活板级配置的核心。访问方式三者均挂载在I2C1总线上地址分别为0x20, 0x21, 0x267位地址。通过标准的I2C读写操作即可控制其输出或读取输入状态。核心功能分配EXP1主要控制用户LEDDS2-DS5、以太网PHY复位、USB过流检测、以及一个用户开关。它的中断输出H_PCF8575_INT连接到SoC的GPIO1_3。EXP2承担了最关键的多路复用器控制任务。包括P0 (SEL_GPMC_AD_VID_S0)控制Mux B选择VOUT3还是GPMC。P3 (SEL_I2C3_CAN2) 和 P5 (SEL_EXP_I2C3_DCAN2)控制I2C3与DCAN2的复用与路由。P4 (SEL_ENET_MUX_S0)控制Mux J选择RGMII0还是VIN4B/GPIO到扩展口。P16 (SEL_UART3_SPI2)控制Mux K选择UART3蓝牙还是SPI2。EXP3同样负责重要MUX控制及覆盖设置。P1 (VIN6_SEL_S0)控制Mux H选择McASP3/7去音频编解码器还是扩展口。P6, P2 (VIN2_S2,VIN2_S0)控制Mux D选择VIN2A的去向。P12, P11 (EXVIN2_S2,EXVIN2_S0)控制Mux F选择RGMII1/VIN2A高位的去向。P15:P14, P17:P16用于覆盖拨码开关的启动配置MMC2和NOR启动。配置流程示例启用板载音频确认I2C1总线已在软件中启用并正常工作。读取EXP3的当前输出寄存器值假设为0xFF所有位默认高电平。将P1位清零。计算新值new_val current_val ~(1 1)。如果P1对应输出寄存器的Bit 1则new_val 0xFF ~0x02 0xFD。将值0xFD写入EXP3的输出寄存器。此时Mux H路径切换McASP3/7信号连接至AIC3106。最后在SoC端配置McASP3/7的引脚复用和驱动程序。4.2 拨码开关硬件状态的快速预设拨码开关SW6提供了另一层硬件配置通常用于设置上电时的初始状态特别是启动配置。SW6.1 SW6.2用于选择GPMC总线上连接的是NOR Flash还是NAND Flash。这与Mux B的配置共同作用。SW6.3关键启动选择开关。OFF位置选择GPMCNOR/NAND启动ON位置选择MMC2eMMC启动。这个开关的状态会被SoC的sysboot引脚在复位时采样。SW6.4控制CSI-2接口上I2C5和SPI1的I/O电压电平1.8V或3.3V以适应不同的相机传感器模块。SW6.8控制Mini-PCIe接口的复位方向。ON默认允许SoC复位外设OFF允许外设复位SoC。避坑指南拨码开关是机械器件可能存在接触不良的问题。在调试无法启动的系统时务必用万用表测量关键开关引脚的实际电平而不是仅仅“看”开关的位置。我曾遇到过因开关氧化导致电平错误浪费数小时排查软件问题的案例。5. 电源监控与系统管理实战解析5.1 精密电源监控网络评估板设计了一套非常详尽的电源监控系统使用多片INA226芯片监控近30路电源轨。这对于功耗分析、故障诊断和系统可靠性评估至关重要。架构INA226器件分布在两条I2C总线BUS A和BUS B上。BUS A监控SoC及板载核心电源轨如VDD_MPU_AVS,VDD_GPU_AVS,VDDR_MEM_1V35等。BUS B监控系统输入和稳压器输入电源轨如EVM_12V,EVM_5V0,VSYS_3V3等。访问路径默认情况下这些INA226由I2C2总线访问。但I2C2与HDMI的DDC显示数据通道功能复用。需要通过配置EXP3的P0位PM_OEn来选择。0I2C2连接至电源监控总线PM Bus。1I2C2连接至HDMI端口默认。 因此要读取电源数据必须先通过EXP3将I2C2切换到PM Bus模式这将导致HDMI显示无法进行EDID读取。EXP3的P3位PM_SEL用于在PM Bus A和B之间选择。实操步骤读取CPU核心电压电流硬件配置通过I2C1控制EXP3将P0位写为0启用PM Bus访问。软件配置在Linux系统中确保I2C2总线驱动已加载并确认INA226设备地址例如0x40在总线上被识别。通常需要加载ina2xx内核驱动。数据读取可以通过i2c-tools在命令行快速验证# 假设I2C2适配器编号为1 读取0x40设备VDD_MPU_AVS的总线电压寄存器0x02 i2cget -y 1 0x40 0x02 w读取的值需要根据INA226数据手册进行换算例如LSB为1.25mV。系统集成在生产测试或长期监控场景可以编写后台服务定期读取所有INA226数据记录功耗曲线并设置阈值告警。5.2 配置EEPROM与系统身份板载的CAT24C256 EEPROM存储了关键的板卡配置信息格式固定。内容包括板卡名称DRA76/7xP,TDA2P、版本号、配置选项如是否支持EMIF ECC、MAC地址存储位置、启动设备类型以及两个EMIF接口的内存大小。作用启动加载程序如U-Boot或操作系统可以读取这些信息自动适配硬件配置例如设置正确的内存映射、加载对应的设备树二进制文DTB。访问位于I2C1总线地址0x50。出厂已编程不建议用户修改除非你非常清楚自己在做什么并且有恢复方案。配置选项解析ID.CONFIG_OPTION字段的每一位都代表一个硬件特性。例如Bit 6: 1 EMIF2支持ECC 0 不支持。Bit 5: 1 支持EMIF2 0 不支持。Bit 0: 0 默认QSPI启动 1 NOR启动。 软件在初始化阶段读取这些位可以动态决定是否启用ECC校验、如何初始化内存控制器等。6. 典型应用场景配置与问题排查实录6.1 场景一构建双摄像头采集以太网通信系统目标使用CSI2-0接口连接一个摄像头通过LI连接器使用CSI2-1接口连接另一个摄像头通过扩展口同时保留RGMII1千兆以太网功能。硬件配置冲突分析CSI2-0 (LI接口)它直接连接至SoC的CSI2-0端口不与其他主要功能复用配置相对简单。CSI2-1 (扩展口)CSI2-1信号也直接引出至扩展口无冲突。RGMII1问题在于RGMII1与VIN2A高位复用Mux F。我们的摄像头使用的是CSI2接口而非并行的VIN2A接口。因此只要我们不启用VIN2A功能RGMII1就可以正常使用。关键在于SoC的引脚复用配置不能将相关引脚配置为VIN2A模式。配置步骤硬件连接摄像头A接LI接口摄像头B接扩展口的CSI2-1引脚。网线接RJ45接口。硬件MUX设置由于不使用VIN2AMux D和Mux F保持默认即可EXP3.P6/P211, EXP3.P12/P1111。这确保了RGMII1通路连接至PHY。SoC Pin Mux配置在设备树中确保vin2a相关的引脚保持为默认或设置为安全模式如PIN_INPUT。rgmii1相关的引脚正确配置为rgmii1功能模式。csi2_0和csi2_1的引脚正确配置。软件驱动使能CSI2和V4L2驱动以及以太网驱动。6.2 场景二启用音频播放与蓝牙目标使用板载AIC3106播放音频并通过COM8模块的蓝牙连接耳机。硬件配置冲突分析音频播放需要McASP3/7连接至AIC3106。这受控于Mux H (EXP3.P1)默认(1)连接扩展口必须改为0。蓝牙COM8模块需要UART3进行HCI通信。这受控于Mux K (EXP2.P16)默认(1)连接SPI2到扩展口必须改为0。同时COM8模块的GPIO控制信号如H_GP5[4]蓝牙使能需要SoC的GPIO正确配置。配置步骤硬件MUX设置通过I2C配置EXP3将P1位写0。通过I2C配置EXP2将P16位写0。SoC Pin Mux配置配置mcasp3相关引脚为mcasp3功能。配置uart3相关引脚为uart3功能注意这与spi2复用。配置gpio5_4等引脚为GPIO输出模式用于控制蓝牙模块。电压电平COM8接口要求1.8V I/O评估板已通过电平转换器处理无需额外配置。软件驱动加载ti-aic3106音频编解码器驱动、hci_uart蓝牙协议栈驱动并确保对应的设备节点如/dev/ttyO3for UART3存在。6.3 常见问题排查速查表问题现象可能原因排查步骤系统无法启动无串口输出1. 启动设备选择错误SW6.3。2. 启动设备未正确初始化如eMMC未焊好。3. 核心电源监控报警PMIC未正常输出。1. 确认SW6.3位置与实际存储设备一致。2. 测量eMMC/NAND Flash的电源和时钟。3. 检查INA226报警输出测量关键电源轨电压。摄像头无法识别media-ctl找不到实体1. CSI-2端口未在设备树中启用。2. 相机传感器供电或时钟未开启。3. I2C通信失败地址、速率、电平。1. 检查设备树中ports、endpoints配置。2. 测量相机连接器上的电源和MCLK。3. 使用i2cdetect扫描CSI-2对应的I2C总线确认传感器地址可读。以太网RGMII1不工作但RGMII0正常VIN2A功能与RGMII1硬件冲突。1. 检查设备树确保vin2a节点被禁用或引脚未配置为vin2a功能。2. 确认Mux F控制位EXP3.P12/P11为11默认。音频无声1. McASP路径未切至AIC3106Mux H。2. 音频编解码器I2C通信失败。3. 时钟配置错误AHCLKX。1.首要步骤读取EXP3的P1位确认其为0。2. 使用i2cdetect检查I2C1总线上地址0x19(AIC3106)是否存在。3. 用示波器测量AIC3106的MCLK引脚是否有时钟输入。无法通过I2C访问电源监控芯片I2C2总线未切换到PM Bus模式。1. 检查EXP3的P0位必须为0。2. 检查I2C2总线驱动是否加载/dev/i2c-1或对应编号是否存在。3. 使用i2cdetect -l和i2cdetect -y [num]扫描总线。用户LED/开关不响应I/O扩展器EXP1配置或访问错误。1. 确认I2C1总线正常。2. 确认EXP1的I2C地址0x20可访问。3. 对于LED写输出寄存器对于开关读输入寄存器。注意PCF8575的读写操作。调试心法遇到任何外设不工作遵循“先硬件后软件先路径后端点”的原则。首先用万用表、示波器确认物理连接、电源、时钟、复位等基础信号。然后务必确认硬件复用开关MUX的状态是否与你的软件配置意图一致。最后再深入排查设备树配置、驱动加载和应用程序逻辑。评估板上的I/O扩展器状态是连接硬件配置与软件期望的“桥梁”是调试中最值得优先打印和检查的信息之一。