1. 项目概述:从芯片手册到可靠电路板
做嵌入式硬件设计,尤其是像德州仪器DM355这类集成了ARM内核、视频编解码和丰富外设的复杂SoC,最考验工程师功力的往往不是写出多么精妙的代码,而是能让芯片“活”起来并稳定运行的硬件基础。我见过太多项目,软件功能天衣无缝,却因为电源上电顺序错了几微秒、时钟信号有毛刺、或者DDR布线不当,导致系统随机死机、图像花屏、数据丢失,调试起来让人抓狂。
这份工作本质上是在为数字世界的“大脑”搭建一个可靠的“躯体”和“神经系统”。电源是血液,必须纯净、稳定、按正确的顺序流到各个器官;时钟是心跳,必须精准、稳定,为所有协同动作提供节拍;而各种接口则是神经末梢,信号传递的时机和波形必须分毫不差。DM355的数据手册提供了所有这些“生理指标”,但如何将这些冰冷的参数转化为一块温暖、可靠的电路板,中间隔着大量的工程实践和经验。
本文将结合我过去在多个基于DM355的视频处理设备(如网络摄像机、便携式录像机)上的设计经验,深入拆解其电源、时钟与关键接口电路的设计要点。我不会仅仅复述手册里的表格,而是会重点解释每个参数背后的物理意义、设计时的权衡取舍,以及那些手册里不会写、但能让你少走弯路的“坑”和技巧。无论你是正在评估DM355的架构师,还是正在画第一版原理图的硬件工程师,抑或是遇到稳定性问题需要排查的开发者,希望这些从一线项目中沉淀下来的细节能对你有所帮助。
2. 电源系统设计:不止是供电,更是系统稳定的基石
电源设计是硬件系统的第一道生命线。对于DM355这样包含数字内核、模拟PLL、DDR接口、USB PHY等多电压域的高速芯片,电源设计远不止是接个LDO那么简单。它是一套包含时序、噪声隔离、PCB布局在内的系统工程。
2.1 电源域划分与核心参数解读
首先,我们必须清晰理解DM355的电源架构。根据手册,其电源可分为三大类:核心电压(1.3V)、I/O及外设电压(1.8V & 3.3V)、以及各类模拟电源(PLL、USB、DDR DLL等)。每个电源域都有其独特的使命和要求。
1.3V域(CVDD):这是芯片的“大脑”供电,为ARM926EJ-S内核、内部总线、以及大部分数字逻辑供电。其典型值为1.3V,容差为±5%(即1.235V至1.365V)。这个电压的稳定性直接决定了芯片的最高运行频率和计算稳定性。纹波和噪声必须被严格控制。
1.8V域(VDD_DDR):这是DDR2/mDDR内存接口的供电电压。DDR接口对电源噪声极其敏感,因为其数据采样是参考电源电压的(如SSTL_18电平标准)。此电源的噪声会直接转化为时序抖动,可能导致内存读写错误。同样要求±5%的容差。
3.3V域(DVDD, VDDSHV等):这是大部分通用I/O、视频输入/输出接口、以及部分模拟模块(如USB PHY的模拟部分)的供电。虽然容差也是±5%,但不同功能的3.3V电源在PCB布局上可能需要区别对待。例如,为模拟PLL(VDDA33_DDRDLL)供电的3.3V,其纯净度要求远高于驱动LED指示灯的数字I/O口。
模拟电源域(VDDA_PLL1/2, VDDA33_USB等):这是芯片的“感官”和“节拍器”供电。PLL的电源噪声会直接转化为时钟抖动;USB PHY的模拟电源噪声会影响信号完整性,导致数据传输错误。手册中特别强调,某些模拟地(如VSSA, VSSA_PLL)需要与数字地(VSS)分开,并在单点连接,目的就是为了防止数字电路上的开关噪声通过地平面耦合到敏感的模拟电路中。
关键设计心得:不要把所有3.3V都简单地从同一网络拉过来。至少在原理图符号上,应将模拟电源(VDDA*)和数字电源(VDD*)用不同的电源引脚区分开,即使它们在板级最终可能来自同一个LDO。这迫使你在布局布线阶段思考它们的去耦和走线策略。
2.2 上电/掉电序列:避免闩锁效应的生命线
这是DM355电源设计中最关键、也最容易出错的部分。手册明确规定了严格的序列:
- 上电顺序:1.3V → (1.8V & 3.3V可同时)→ 完成。
- 掉电顺序:3.3V & 1.8V(可同时)→ 1.3V → 完成。
- 关键约束:1.8V/3.3V必须在1.3V掉电之前或之后10微秒内关断。
为什么是这个顺序?这源于CMOS工艺芯片内部的寄生二极管结构。如果I/O电压(3.3V/1.8V)在核心电压(1.3V)之前建立,电流可能会通过I/O pad的内部寄生二极管反向流入核心逻辑区域,导致闩锁效应(Latch-up),这是一种可能导致芯片永久损坏的高电流状态。反之,在掉电时,也必须保证核心电压最后消失,避免类似的反向电流。
工程实现方案:
- 使用集成电源时序控制器:这是最可靠、最省心的方案。例如TI的TPS652xx系列、ADI的ADM118xx系列等。你只需配置好使能信号的延时,控制器会严格按照你设定的时序开启或关闭各个电源轨。这对于需要高可靠性的产品是首选。
- RC延时电路:对于成本极其敏感或电源轨较少的项目,可以用电阻、电容、MOS管搭建简单的延时电路。例如,用一个大电阻给电容充电,利用电容电压达到MOS管开启阈值的时间来产生延时。但此法有严重缺点:延时受温度、器件公差影响大;无法精确控制掉电序列;可靠性不高。仅在原型验证或极低量产品中谨慎使用。
- 利用电源芯片的使能(EN)引脚级联:如果选用的LDO或DCDC芯片其EN引脚阈值设计得当,可以将上一级电源的输出通过一个电阻分压网络连接到下一级电源的EN引脚。当上一级电压建立后,下一级才被使能。这种方法成本低,但设计时需要仔细计算分压电阻和EN引脚的阈值容差,确保在各种工况下序列都正确。
踩过的坑:我曾在一个早期项目中,为了省成本使用了RC延时方案。在常温下一切正常,但到了低温环境,电容容量下降,导致1.8V电源上电过慢,违反了序列要求,系统启动失败率飙升。最终换用时序控制器才彻底解决。教训:对于消费级以上的产品,不要省时序控制器的钱,它买来的是系统的鲁棒性和你的睡眠时间。
2.3 电源去耦与PCB布局:对抗噪声的前线
手册用了大量篇幅强调去耦电容的布局,因为这直接决定了电源噪声水平。其核心思想是:为不同频率的噪声提供低阻抗回流路径。
分层去耦策略:
- 极近端小电容(~560pF):目标是为芯片内部晶体管开关产生的极高频(数百MHz以上)电流尖峰提供瞬间能量。必须使用0402或更小封装的陶瓷电容(如NPO/C0G材质),紧贴芯片每个电源引脚对应的BGA过孔放置,距离最好在1mm以内。电容的接地端同样要以最短路径连接到芯片的地引脚。
- 近端中电容(220nF - 1μF):用于处理中高频噪声。同样使用小封装(0402/0603)的X7R/X5R陶瓷电容,布置在BGA封装的外围或“肚子”下面(如果PCB有空间做盘中孔)。TI建议每个电源域至少使用8个小电容和8个中电容。
- 远端大容量电容(10μF - 100μF):这是“储水池”,用于应对低频电流波动,并抑制电源平面本身的谐振。通常使用钽电容或大型陶瓷电容,放置在电源芯片输出端附近,但仍需尽量靠近DM355。
PCB布局黄金法则:
- 电源平面优先:为1.3V、1.8V、3.3V和地分别规划完整的电源平面(Power Plane),而不是用走线(Trace)来连接。平面能提供极低的阻抗和电感。
- 先过电容,再到引脚:电源网络进入芯片BGA区域时,应先经过去耦电容,再连接到BGA焊盘。确保电流必须先“净化”才能进入芯片。
- 地过孔阵列:在芯片周围和下方,密集地打地过孔,连接顶层地焊盘到内部地平面。这为返回电流提供了最短路径,减小了环路面积,是抑制EMI和保证信号完整性的最有效手段之一。
- 模拟电源隔离:对于VDDA_PLL等模拟电源,手册建议通过一个磁珠(Ferrite Bead)连接到主3.3V电源平面。磁珠在高频下呈现高阻抗,可以阻止数字电源噪声窜入模拟区域。磁珠之后,需要单独布置一个小的、干净的模拟电源岛,并用专属的电容组去耦。
3. 时钟系统设计:系统同步的脉搏
时钟是数字系统的节拍器。一个不稳定的时钟,会导致数据采样错误、通信失败、甚至整个系统功能紊乱。DM355的时钟树相对清晰,但细节决定成败。
3.1 主时钟源:晶体振荡器 vs. 有源晶振
DM355提供两对时钟引脚:MXI1/MXO1(主时钟,通常24MHz)和MXI2/MXO2(视频时钟,通常27MHz)。每对引脚都可以连接无源晶体,也可以直接输入有源晶振的时钟信号。
方案一:使用无源晶体(Crystal)这是最常见且成本较低的方式。你需要为晶体搭配两个负载电容C1和C2,并连接到专用的振荡器地VSS_MX1(或VSS_MX2)。
- 负载电容计算:手册给出的公式是 CL = (C1 * C2) / (C1 + C2) + C_shunt。其中CL是晶体规格书要求的负载电容(通常为12pF, 18pF, 20pF等),C_shunt是PCB走线和芯片引脚的寄生电容(通常估算为2-5pF)。为了平衡,通常取C1 = C2。例如,若晶体要求CL=18pF,估算C_shunt=3pF,则所需(C1*C2)/(C1+C2) = 15pF。因C1=C2,解得C1=C2=30pF。实际常用22pF或27pF,并通过测量频率微调。
- 布局要点:晶体、电容必须极度靠近芯片的MXI/MXO和VSS_MX引脚。走线尽可能短且对称。将这部分电路用接地铜皮包围起来,与其他数字电路隔离。VSS_MX必须单独走线回芯片的模拟地引脚,切勿直接连接到数字地平面,防止地噪声干扰振荡。
方案二:使用有源晶振(Oscillator)如果你需要更高的频率精度、更快的启动速度或更强的驱动能力,可以选择有源晶振。此时,晶振输出直接连接到MXI/CLKIN引脚,MXO引脚悬空。
- 优势:启动快,频率精度高,驱动能力强,设计简单(无需匹配电容)。
- 劣势:成本高,功耗稍大,需要单独的电源引脚。
- 关键设计点:必须使用最干净的电源为有源晶振供电。理想情况下,应使用与DM355的VDDA_PLL相同的、经过磁珠滤波后的模拟电源。如果共用数字电源,晶振的电源噪声会直接注入DM355的时钟输入,恶化抖动性能。
实操技巧:在空间允许的情况下,我强烈建议为24MHz主时钟预留两种封装(晶体和晶振)的焊盘。在项目早期,使用有源晶振可以排除时钟源不稳定带来的问题,加速调试。量产时,如果成本压力大且对时钟要求不苛刻,再换回无源晶体。这种设计增加了少许PCB面积,但带来了巨大的调试灵活性。
3.2 PLL电源滤波:获得低抖动时钟的关键
无论是内部PLL还是外部有源晶振,电源噪声都是时钟抖动的主要来源。手册中在振荡器电路图中明确标注,PLL的模拟电源(VDDA_PLL1/2)需要通过一个磁珠(L1)连接到电源,并搭配0.1μF和1μF的电容滤波。
- 磁珠选型:选择在目标噪声频率(通常是几十到几百MHz)有较高阻抗的磁珠,但需注意其直流电阻(DCR)要小,以避免产生过大的压降。例如,一个600Ω@100MHz,0.1Ω DCR的磁珠是典型选择。
- 电容布局:0.1μF的陶瓷电容必须紧靠磁珠后的PLL电源引脚放置,1μF电容可以稍远。它们的接地端必须连接到干净的模拟地(VSSA_PLL)。
3.3 时钟时序参数解读
手册中给出了详细的时序参数表,理解它们对诊断问题至关重要:
- tc(MXI1):时钟周期。24MHz对应41.67ns。这是基础。
- tw(MXI1H/L):时钟高/低电平脉冲宽度。要求占空比在45%-55%之间,即不能太偏。
- tt(MXI1):时钟上升/下降时间。要求小于周期C的5%(对于24MHz,即<2.08ns)。过慢的边沿会导致功耗增加和时序余量减少。
- tJ(MXI1):周期抖动。要求小于周期C的2%(对于24MHz,即<0.83ns p-p)。过大的抖动会侵蚀系统时序裕量。
如何测量与保证:使用高质量示波器,用带宽限制功能(如20MHz)过滤高频噪声,测量时钟波形。确保幅值达标、边沿陡峭、抖动小。如果使用有源晶振,选择低抖动(Low Jitter)型号。如果使用晶体,确保PCB布局优秀,电源干净。
4. 复位与启动配置电路设计
复位电路看似简单,但它是系统从“混沌”走向“有序”的起点。设计不当会导致无法启动或随机启动失败。
4.1 复位时序要求
手册Table 5-2给出了复位引脚(RESET)的关键时序:
- tw(RESET):复位脉冲低电平有效宽度最小为12个MXI/CLKIN周期。以24MHz计算,即至少500ns。在实际设计中,我们通常会给到毫秒级,以确保电源和时钟完全稳定。
- tsu(BOOT) / th(BOOT):启动配置引脚(BTSEL[1:0], AECFG[3:0])的建立和保持时间。它们必须在RESET信号上升沿前后各保持至少12个时钟周期有效。这意味着,这些配置引脚的状态必须在复位释放之前很久就确定下来,并且在复位释放之后还要保持一段时间。
4.2 启动配置引脚设计
DM355通过BTSEL[1:0]和AECFG[3:0]这6个引脚决定从哪里启动(如NAND Flash, UART, SD卡等)以及其他初始配置。这些引脚通常通过上下拉电阻设置。
- 电阻选型:典型使用10kΩ上拉或下拉电阻。阻值不宜过大,以防止引脚浮空受噪声干扰;也不宜过小,以免增加功耗和影响信号完整性。
- 布局要点:这些配置电阻必须靠近DM355的相应引脚放置。长走线会引入噪声和反射,在复位边沿可能产生毛刺,导致芯片误读配置值,从而无法从预期设备启动。
- 与复位信号的关系:必须确保在复位信号稳定为高电平之前,电源已经稳定,并且这些配置引脚的电平已经通过上下拉电阻达到稳定的逻辑高或低。你的电源监控芯片(Reset Generator)的复位释放时间,必须晚于最慢电源轨的上升时间。
4.3 复位电路实现
推荐使用专门的电源监控芯片(如TI的TPS3801系列),它同时监控1.3V、1.8V、3.3V等多个电源轨。当所有电源都达到预设的阈值并保持一段时间(可编程延时)后,才释放复位信号。这种方案比简单的RC复位电路可靠得多,能有效处理电源上电缓慢、跌落或毛刺的情况。
5. 关键外设接口电气规范与时序分析
接口是芯片与外界沟通的桥梁,其电气规范和时序是通信协议的物理层基础。这里重点分析几个最常用且容易出问题的接口。
5.1 GPIO接口:灵活但需注意驱动与中断
DM355有多达104个GPIO,可配置为输入、输出,并支持中断和DMA事件。
- 电气特性:GPIO为3.3V LVCMOS电平。输出高电平最低约为2.4V(VOH),输入高电平识别最低约为2.0V(VIH)。需要注意扇出能力,驱动多个负载或长线传输时,可能需加缓冲器。
- 中断输入要求:手册Table 5-12指出,外部中断脉冲的低电平或高电平宽度必须至少为52ns。这是一个极易忽略的点。如果你用一个机械按键产生中断,按键抖动可能产生一串宽度小于52ns的窄脉冲,DM355可能无法识别,或者错误地触发多次中断。必须在软件或硬件上(如RC滤波、施密特触发器)进行消抖处理。
- 软件轮询 vs. 硬件中断:手册脚注特别提醒,如果希望通过软件轮询GPIO状态来检测变化,这个脉冲宽度必须更长,因为软件读取寄存器需要时间。对于快速信号,必须使用中断或DMA事件机制。
5.2 异步外部存储器接口(AEMIF)
AEMIF用于连接NOR Flash、SRAM、异步NAND Flash(包括OneNAND)。其时序完全由软件可编程的配置寄存器控制,灵活性高,但配置也复杂。
时序参数解析: 所有时序参数(如建立时间tsu、保持时间th、脉冲宽度tw)都以一个基本时间单位E的倍数来定义。E是EMIF的外设时钟周期SYSCLK2。例如,当PLLC输出432MHz时,SYSCLK2为108MHz,E ≈ 9.259ns。
- 关键寄存器:异步配置寄存器(Asynchronous Configuration Registers)中的
RS(读建立)、RST(读选通)、RH(读保持)、WS、WST、WH等字段,定义了EMIF控制信号(如nCE, nOE, nWE)与地址/数据信号之间的时序关系。这些值需要根据你所连接的具体存储芯片的数据手册来设置。 - 等待(WAIT)功能:AEMIF支持通过EM_WAIT引脚插入等待周期,以连接低速设备。手册要求EM_WAIT信号必须在nOE或nWE结束前至少4E个周期被断言(拉低),才能被识别并插入等待状态。设计时,需要确保你的外围设备能及时发出WAIT信号。
OneNAND同步突发读时序: 这是AEMIF的一个特殊工作模式,用于高速读取OneNAND。此时,EMIF会输出一个时钟EM_CLK(频率最高66MHz)给存储器,数据在时钟边沿被采样。这要求PCB走线必须作为时钟信号对待,注意等长和阻抗控制。
布局布线经验:AEMIF总线(地址、数据、控制线)通常频率不高(几十MHz),但信号数量多。务必保证所有信号走线参考完整的接地平面,并尽量短。对于数据线,尽量做到等长,误差控制在几百mil(1-2cm)以内即可,不需要像DDR那样苛刻。地址和控制线可以稍宽松。使用串联电阻(22Ω-33Ω)靠近DM355端放置,可以有效抑制过冲和反射。
5.3 MMC/SD卡接口
DM355的MMC/SD控制器支持SD卡、MMC卡以及SDIO设备,但不支持SPI模式。这是一个中速的同步串行接口。
时序模式:分为标准模式(最高25MHz)和高速模式(最高50MHz)。设计时需按高速模式要求来保证裕量。
- 时钟(SD_CLK):由DM355产生给卡。需保证上升/下降时间(tr, tf)在3-10ns之间,脉冲宽度(tw)至少7ns。过慢的边沿或过窄的脉冲会导致卡通信失败。
- 命令与数据(SD_CMD, SD_DAT):DM355在时钟下降沿后输出数据(td(CLKL-DAT)),并期望在时钟上升沿前接收到卡返回的数据(tsu(DATV-CLKH))。这个建立保持时间窗口非常关键。
- 上拉电阻:SD_CMD和SD_DAT[3:0]线上通常需要接10kΩ - 50kΩ的上拉电阻,以确保在空闲时处于高电平状态。这些电阻应靠近DM355端放置。
- 电平转换:虽然DM355的I/O是3.3V,而SD卡规范是2.7-3.6V,通常可以直接连接。但如果你的系统其他部分是1.8V,则需要电平转换器。
常见问题排查:
- 卡无法识别:首先检查电源(3.3V)是否稳定,上电时序是否符合SD卡规范(先上电,后拉低复位)。用示波器测量SD_CLK,看其频率、幅值、波形是否正常。检查CMD和DAT线是否有上拉,在初始化阶段CMD应为推挽输出模式。
- 数据传输错误:通常与时序或信号完整性有关。检查PCB走线,SD_CLK应与SD_CMD和SD_DAT[3:0]保持等长,误差建议在50mil以内。避免走线过长或靠近噪声源。可以尝试降低时钟频率(通过软件配置)来测试是否与速度有关。
5.4 DDR2/mDDR内存接口
这是DM355系统中最复杂、对PCB设计要求最高的部分。它直接关系到系统是否能够稳定运行,尤其是进行大流量视频数据吞吐时。
设计要点概述:
- 电源完整性:VDD_DDR (1.8V) 的电源噪声必须极低。需要采用多层板,有独立的DDR电源层和地层。去耦电容方案需严格按照芯片和内存颗粒手册的要求,使用大量0402封装的0.1μF电容靠近每个电源引脚放置。
- 信号完整性:
- 阻抗控制:DDR2数据线(DQ)、数据选通(DQS)、地址命令控制线(ADDR/CMD/CTRL)都需要做阻抗控制,通常单端50Ω,差分100Ω(对于DQS差分对)。这需要通过调整PCB走线宽度、介质厚度来实现。
- 等长匹配:这是DDR布线最核心的要求。
- 数据组内等长:每个字节通道(如DQ[7:0], DQS, DQM)的所有信号线必须严格等长。误差通常控制在±5mil(0.127mm)以内。DQS与组内DQ的等长误差要求更严。
- 地址/命令/控制组等长:所有地址、命令、控制线(包括时钟CLK)需要等长,误差范围可稍宽,如±25mil。
- 数据组与地址组之间的长度差:通常要求数据组比地址/命令组更长,这个差值称为“时序偏移”(Timing Skew),具体值需根据控制器和内存颗粒的时序模型计算,通常在几百皮秒到一两纳秒的量级,对应PCB走线长度差约为几百到上千mil。
- 参考平面:所有DDR信号线下方必须有完整、无分割的接地平面(GND)作为参考。避免信号线跨过平面分割区,否则会导致阻抗不连续和信号回流路径变长,引入噪声。
- VREF与VTT:DDR2使用SSTL_18电平,需要一个精确的参考电压VREF(通常是VDD_DDR/2 = 0.9V)。这个电压必须非常干净,通常由专用的参考电压芯片产生,并用RC滤波。对于点对点拓扑,终端电阻VTT可能不需要;但对于多负载拓扑,可能需要VTT(也是0.9V)进行并联终端匹配。
调试心得: DDR问题通常表现为系统不稳定、随机死机、内存测试通不过。调试时:
- 首先确保电源电压和VREF电压准确、纹波小。
- 使用示波器的高带宽差分探头测量CLK和DQS的波形,检查眼图是否张开,过冲/下冲是否在允许范围内。
- 如果硬件检查无误,问题可能出在软件配置上。DM355的DDR控制器有大量可编程参数,如CAS延迟、行列地址选通延时、驱动强度等。这些参数需要根据具体使用的DDR颗粒型号和PCB走线情况进行微调。TI通常会提供针对不同内存颗粒的配置表,这是一个很好的起点。
6. 视频处理子系统(VPSS)供电与时钟的特殊考量
VPSS是DM355的核心价值所在,负责视频的输入采集和输出显示。其模拟部分对电源和时钟噪声尤为敏感。
VPFE(视频输入前端):
- 像素时钟(PIXCLK):来自图像传感器或视频解码器。手册指出,如果不使用H3A统计模块,最高支持75MHz;若使用,则必须低于67.5MHz。必须确保这个时钟信号干净,抖动小。在PCB上,应将其作为敏感模拟信号处理,远离数字噪声源,并保证回流路径完整。
- 模拟电源隔离:视频解码器(如果使用)产生的模拟视频信号(如CVBS)容易引入噪声。应为模拟视频电路部分(包括DM355的VIN相关电源)提供独立的LC滤波,并与数字电源域隔离。
VPBE(视频输出后端):
- 时钟生成:VPBE的时钟通常由内部PLL从主时钟衍生而来。确保主时钟和PLL供电(VDDA_PLL*)的纯净,是获得稳定无闪烁显示输出的基础。
- 输出驱动:视频输出(如LCD数据线、行场同步)通常是高速并行总线。需要根据负载情况(LCD面板的输入电容、走线长度)合理配置DM355 I/O的驱动强度(Slew Rate)和上下拉,以优化信号完整性,避免振铃和边沿过缓。
7. 常见设计陷阱与排查指南
即使完全按照手册设计,首次投板也可能遇到问题。以下是一些常见陷阱和排查思路:
问题1:系统不上电,或上电后电流异常大。
- 排查:
- 测量所有电源轨电压是否正常,顺序是否正确。用示波器单次触发模式捕捉上电瞬间各电源波形。
- 检查电源芯片是否发烫。触摸DM355芯片,如果异常烫手,可能内部短路,立即断电。
- 检查复位电路,确保复位引脚在上电期间有足够长的低电平脉冲,之后稳定为高。
- 检查启动配置引脚电平是否正确,用万用表测量,排除虚焊或电阻值错误。
问题2:系统能启动,但串口无输出,或卡在某个初始化阶段。
- 排查:
- 用示波器测量24MHz主时钟波形。检查幅值(是否达到3.3V)、频率(是否24MHz)、边沿(是否陡峭)、抖动(是否过大)。
- 检查PLL锁相是否成功。有些芯片可以通过寄存器读取PLL状态。也可以间接判断:如果系统能运行但频率不对,可能是PLL配置错误或未锁定。
- 检查启动设备(如NAND Flash)的电路。确认片选、读写使能、WP等引脚电平正确。用示波器看初始化阶段是否有读写波形。
问题3:系统运行不稳定,偶尔死机,尤其是在进行视频编码或大数据存取时。
- 排查:
- 电源纹波:用示波器交流耦合模式,测量1.3V、1.8V、3.3V电源在芯片引脚处的纹波。重点观察在大电流负载瞬间(如DDR突发读写、ARM全速运行)的电压跌落。纹波应小于50mV(核心电源要求更严)。
- DDR稳定性:运行长时间的内存压力测试(如Memtest86+移植版)。如果失败,重点检查DDR电源、VREF、以及布线是否满足等长和阻抗要求。尝试降低DDR时钟频率或调整时序参数(如放宽CAS Latency)。
- 散热:DM355在高负载下会发热。检查芯片表面温度,确保在安全范围内。过热会导致时序变差和随机错误。
- 信号完整性:用高速示波器或逻辑分析仪抓取关键总线(如DDR数据线、视频数据线)的信号质量。检查是否有严重的过冲、振铃或串扰。
问题4:视频输入有噪声条纹,或输出显示有花屏、抖动。
- 排查:
- 检查视频时钟(PIXCLK,27MHz等)的抖动和稳定性。
- 检查视频模拟电源(VDDA33_USB_PLL等)的纹波。
- 检查视频数据并行走线的等长和参考平面。并行视频总线对时序偏移很敏感。
- 确认视频输入信号的格式(BT.656, YUV等)和时序(行场同步极性、宽度)与DM355寄存器配置完全匹配。
硬件设计是一个不断权衡和迭代的过程。没有一版就能完美的PCB,尤其是对于DM355这样复杂的系统。第一版板子的主要目标是“点亮”和“连通”。预留足够的测试点(特别是电源、时钟、复位、关键总线),使用兼容封装的关键器件,为可能需要的滤波电路、匹配电阻预留位置,这些“预留”会在调试阶段拯救你。最后,保持耐心,细致测量,数据手册是你最好的朋友,而示波器则是你洞察电路世界的眼睛。