PNX2015视频解码芯片寄存器配置实战:从时序到ITU656流生成
1. 项目概述与核心价值
如果你曾经在嵌入式多媒体系统,尤其是早期的数字电视、机顶盒或者视频采集卡项目里摸爬滚打过,那么对Philips(后来的NXP)的PNX系列多媒体处理器一定不会陌生。PNX2015作为其中一款经典的视频解码前端芯片,承担着将五花八门的模拟视频信号(CVBS、S-Video、分量YPrPb)转换成标准数字流(ITU-R BT.656)的重任。这个过程听起来简单,无非是“模数转换+解码”,但真正做起来,你会发现寄存器配置表长得让人头皮发麻,一个参数配错,轻则画面不同步、色彩异常,重则直接黑屏,连调试的抓手都找不到。
这份手册里密密麻麻的表格,不是什么理论推导,而是Philips工程师们用真金白银的硬件和无数测试信号“烧”出来的最佳配置参数。它直接回答了驱动工程师最核心的问题:“我的板子要支持PAL制式的CVBS输入,并输出576p的RGB信号,那一百多个寄存器到底该怎么写?”这些配置表的价值,在于它跨越了芯片数据手册中模块功能的抽象描述,直接给出了在特定应用场景(显示模式、输入格式)下,各个子模块(VidDec视频解码、DCU显示控制、DLINK数据链接等)协同工作的“密码本”。
对于开发者而言,理解这些配置不仅仅是“照抄”,更是掌握芯片工作机理、快速定位问题的钥匙。比如,为什么PAL制式下VidDec会引入2行延迟,而NTSC只有1行?这直接影响了后续DCU的同步信号处理。再比如,面对1080i高清信号,像素时钟为何要飙升到74.25MHz,而寄存器配置又该如何调整PLL?本文将带你深入这些配置表的背后,拆解PNX2015在不同显示模式下的寄存器配置逻辑,分享从这些“天书”般的十六进制数中提炼出可操作开发经验的过程。
2. 显示模式详解与参数解析
2.1 标准视频显示模式参数表解读
手册中的Table 215是理解一切配置的基石。它定义了PNX2015支持的一系列标准显示模式及其关键时序参数。我们逐列拆解:
显示模式 (Display Mode):这是配置的索引。例如625i代表PAL制式隔行扫描,576p代表PAL制式逐行扫描,1080i/50Hz代表50Hz场频的1080线隔行高清。
关键时序参数:
- FH (Field Freq) / Frame Freq (Hz):场频和帧频。对于隔行(i),场频是帧频的两倍。例如625i,场频50Hz,帧频25Hz。这是同步的基础。
- Line Freq (Hz):行频。即每秒钟扫描的行数。
行频 = 帧频 × 每帧总行数。例如625i:25 Hz × 625 线/帧 = 15625 Hz。这个参数用于生成或锁定时序。 - Total/Active Video Lines per Frame:每帧总行数和有效行数。以625i为例,每帧625行,但只有576行是包含图像内容的“有效行”,其余49行(625-576=49)是垂直消隐期(VBI),用于传输图文电视、字幕等数据。
- Total/Active Pixels per Line:每行总像素数和有效像素数。
720是ITU-R BT.601标准定义的标清有效像素宽度。总像素数(如864)则包含了水平消隐期。 - Pixel Clock (MHz):像素时钟频率。这是驱动整个视频数据流的节拍器。它的计算公式是:
像素时钟 = 行频 × 每行总像素数。- 验证625i:
15625 Hz × 864 像素/行 ≈ 13.5 MHz。 - 验证1080i/60Hz:
33750 Hz × 2200 像素/行 ≈ 74.25 MHz。 - 验证576p:
31250 Hz × 864 像素/行 = 27 MHz(正好是13.5MHz的2倍,因为逐行扫描行频加倍)。
- 验证625i:
来自解码和格式化模块的参数:
- Total/Active Pixels/Line (From VIDDEC):视频解码器输出的总/有效像素每行。注意,对于高清模式(1080i/50Hz, 1080i/60Hz),VIDDEC输出仍然是720有效像素,这意味着芯片内部可能进行了缩放或裁剪处理,需要后续模块(如缩放器)进一步处理才能达到1920x1080。这是一个非常重要的设计约束。
- VBI Lines (From AVIP):AVIP模块定义的垂直消隐行范围。例如625i的VBI行为1-22和311-335。这些行号是模拟行号,在后续映射到数字流时会因解码延迟而偏移(见手册3.11.12节)。
实操心得:参数关联性这些参数不是孤立的。当你选定一个
Display Mode,就同时确定了帧率、行频、像素时钟这一整套时序。在配置系统时钟(如GTU中的PLL)时,必须确保生成的像素时钟与这个目标值匹配。例如,如果你的晶振是13.5MHz,要产生27MHz的像素时钟给576p模式,就必须通过PLL倍频或时钟分频器正确配置。
2.2 非标准与特殊模式
表格中还包含了624ni和524ni模式。根据注释[1],它们分别对应使用NTSC行编号系统的625i和525i变体。这在处理某些特殊信号源或进行制式转换时可能会用到。关键区别在于VBI行的定义和场同步信号(Vsync Line)的位置,配置时需要特别注意对应表格中的差异。
3. ITU656 格式化器配置精讲
3.1 ITU656 格式与AVIP角色
ITU-R BT.656 标准定义了如何将数字分量视频(YCrCb 4:2:2)组织成串行或并行数据流。它包含了嵌入的时序基准信号(SAV/EAV),从而无需独立的HSYNC和VSYNC信号。PNX2015中的AVIP(模拟视频输入处理器)模块负责将解码后的数字视频打包成656格式。
Table 216 提供了针对不同显示模式的ITU656格式化器寄存器配置值。这些寄存器控制着SAV/EAV码的生成、有效视频数据区的界定以及辅助数据(如VBI数据)的插入位置。
3.2 关键寄存器解析
我们以625i模式为例,拆解几个核心寄存器:
config (0x000): 配置寄存器。值0x00008000。我们需要查阅更详细的数据手册来解读每一位,但通常高位字节(0x80)可能使能了某些特定功能(如内部时序生成),低位字节定义模式。对比525i的0x00008001,这1的差异很可能用于区分50Hz和60Hz场频的系统。data ID: VBI (0x004)与data ID: HBI (0x008): 这两个寄存器在所有模式下值都固定为0x15491154和0x2AAAAAA。它们定义了在消隐期(VBI/HBI)插入的数据包标识符(Data ID)。这是一个重要技巧:在调试656数据流时,可以通过逻辑分析仪捕捉这些固定的ID值,来快速定位消隐期和数据有效期的边界,辅助判断数据封装是否正确。capture (0x00C): 捕获控制寄存器。0x0000526E。这个值可能定义了有效视频数据的起始和结束像素位置(相对于SAV/EAV)。它与之前表格中的“Active Pixels/Line (From VIDDEC)”紧密相关。vf_control (0x014)与vf_sync (0x018): 垂直消隐场控制与同步寄存器。这些值非常关键,它们定义了场消隐期的长度、场同步脉冲的位置和宽度。例如,vf_sync的值0x0013C003需要按位解析,可能高16位定义场同步起始行,低16位定义脉冲宽度或结束行。配置错误直接导致图像滚动或撕裂。field_1 (0x01C)与field_2 (0x020): 分别针对奇场(Field 1)和偶场(Field 2)的参数。在隔行扫描中,两场的起始行和参数可能不同(例如625i中,奇场从第1行开始,偶场从第313行开始)。寄存器值0x00271138和0x0000313C就编码了这些信息。vbi_1到vbi_4(0x024-0x030): 这些寄存器精细控制了VBI区域内各数据段(如图文电视、隐藏字幕、WSS等)的插入行位置和格式。Table 237 的“VBI data mapping”就是这些寄存器配置所实现的功能映射。
3.3 配置的“为什么”:以同步信号延迟为例
手册3.11.6节明确指出了VidDec视频延迟对同步信号的影响,这是理解配置差异的核心:
- 0行延迟:单色(Monochrome)或哥伦布斯(3D comb)模式。
- 1行延迟:NTSC彩色解码模式。
- 2行延迟:PAL彩色解码模式。
这意味着什么?假设模拟信号的第22行是图文电视数据(Teletext)。在PAL彩色解码模式下,由于VidDec内部处理需要2行时间,当这行数据从VidDec输出时,它相对于原始的模拟行号已经延迟了2行。因此,在配置AVIP的ITU656格式化器,告诉它“在第22行插入VBI数据”时,实际上AVIP需要等待VidDec输出延迟后的数据。Table 237 的“Analog Line”到“Digital Line”的映射关系,正是为了补偿这个延迟,确保数据在656流中的行号是正确的。
举例:对于PAL彩色模式(2行延迟),模拟行6-22的图文电视,在数字流中会被映射到行8-24(如果从1开始计数)。但表格中显示为“318 to 335”,这是因为在隔行扫描的数字化计数中,一场有312.5行,计数方式不同。关键在于理解映射关系因解码延迟而异。
避坑指南:同步与延迟
- 绝对禁忌:不要混用不同解码模式下的VBI映射表。用NTSC的映射去配PAL的信号,VBI数据会彻底错位。
- 调试技巧:当遇到VBI数据(如字幕)无法正确解码时,首先检查AVIP的
config寄存器是否与当前解码模式(彩色PAL/NTSC、单色、哥伦布斯)匹配。然后核对vbi_*寄存器定义的行范围是否遵循了正确的延迟映射规则(Table 237)。- 哥伦布斯模式注意:当使用3D梳状滤波器(Columbus)时,VidDec延迟为0。此时,AVIP的656格式化器配置寄存器
config的Bit 2需要特殊设置(见手册注释[5]),并且要使用Table 217(连接3D梳状滤波器)的特定配置,而不是通用的Table 216。
4. 视频解码器 (VidDec) 寄存器配置深度解析
4.1 输入格式与寄存器矩阵
Table 219 是一个庞大的矩阵,纵轴是不同的显示模式(625i, 525i, 576p...),横轴是不同的输入信号格式(YPrPb, YC, RGB, SOG RGB等)。它提供了VidDec模块内部一系列关键寄存器的配置值,这些寄存器控制着:
- 输入多路复用 (MUX0):选择物理输入引脚和信号类型。
- 自动增益控制 (AGC_*):调整信号幅度,确保ADC采样在最佳动态范围内。不同的信号格式(如YPrPb的幅度与CVBS不同)需要不同的AGC目标值和增益限制。
- 同步处理 (HV_INFO_, SUBPIX_PLL_SYNC): 从复合信号中提取行场同步(HSYNC/VSYNC)或处理外部输入的同步信号,并生成稳定的像素时钟。
- 解码滤波器 (DMSD_*): 设置色度解码滤波器、梳状滤波器等参数,针对PAL、NTSC、SECAM或YC(S-Video)信号进行优化。
4.2 关键寄存器组详解
1. MUX0 (0x040) - 输入选择与模式这个寄存器是信号路径的“总开关”。不同的值对应不同的输入源和色彩空间。
0x00000100/0x00000104: 通常用于复合视频(CVBS)或YC输入。最后两位的差异可能用于选择不同的ADC通道或钳位方式。0x00000108: 用于RGB输入,且同步信号在绿色通道上(SOG)。- 当Table 223提到使用外部HV同步时,
MUX0的值变为0x00000004,这很可能将同步提取电路旁路,直接使用外部输入的HSYNC和VSYNC。
2. AGC系列寄存器 - 信号幅度标准化AGC是模拟前端稳定的关键。以AGC_Y_CYC_TARGETS (0x09C)为例,其值0x010001FF和0x0100013B在不同模式间切换。
- 高8位(如
0x01)可能设定Y(亮度)信号的目标幅度。 - 低8位(如
0xFF或0x3B)可能设定C(色度)信号的目标幅度。 0xFF(255)是最大值,可能用于信号较强的输入或测试模式。0x3B(59)是一个具体的校准值,确保色度信号幅度符合BT.601标准(如色差信号Cr/Cb的峰峰值)。AGC_LOWER_GAIN_LIMITS和AGC_UPPER_GAIN_LIMITS设定了AGC增益调整的范围,防止在无信号或过强信号时增益失控,导致画面全黑或过曝。
3. SUBPIX_PLL_SYNC- 像素时钟锁相环* 对于需要生成像素时钟的模式(如576p, 1080i),这组寄存器至关重要。它们配置PLL的反馈分频比、电荷泵电流、环路滤波器等参数。
- 例如,
1080i/50Hz YPrPb模式下,SUBPIX_PLL_SYNC0=0x006C0600。将其拆解,0x006C可能设置PLL的M分频器(倍频),0x0600可能设置N分频器(参考时钟分频)。计算目标像素时钟74.25MHz时,需要根据输入时钟(如27MHz)来设定这些值。手册直接给出了经过验证的稳定值,避免了我们自己计算和调试PLL稳定性的漫长过程。
4. DMSD_V_SYNC (0x184) - 场同步检测这个寄存器配置场同步脉冲的检测窗口、滤波时间和极性。例如,625i模式下为0x012F0150。这很可能定义了:
- 场同步脉冲的最小宽度和最大宽度(过滤噪声毛刺)。
- 场同步的预期位置(在625行的哪个范围内)。
- 同步极性(正极性还是负极性)。
4.3 不同信号路径的配置差异
对比表格中的不同列,可以清晰看出配置逻辑:
- YPrPb (分量) vs. YC (S-Video) vs. RGB: 主要差异在
MUX0(选择不同输入处理路径)和AGC目标值(因为信号幅度和直流电平不同)。RGB信号通常幅度更大,需要不同的增益设置。 - 带同步的CVBS vs. 分离同步的RGB/YPrPb: 当同步信号嵌入在CVBS或绿信号(SOG)中时,VidDec需要启用同步分离电路(
DMSD_*相关寄存器)。当使用外部独立的HV同步时(Table 223),同步分离电路可能被禁用或配置为直通模式,SUBPIX_PLL_SYNC*的配置也会侧重外部同步锁相。 - SECAM制式: Table 220 单独列出了解码SECAM时的
DMSD_FILTERS寄存器值 (0x016A2DEB)。SECAM使用调频制色度,其解码滤波器与PAL/NTSC的调幅制完全不同,必须使用专用配置。
配置实战经验:从表格到代码
- 建立配置字典:在驱动代码中,不要硬编码这些十六进制数。应该为每个
(显示模式, 输入格式)组合定义一个配置结构体,包含所有必要的寄存器地址-值对。例如:typedef struct { uint32_t mux0; uint32_t agc_target; uint32_t pll_sync0; // ... 其他寄存器 } viddec_config_t; const viddec_config_t viddec_config_625i_cvbs = { .mux0 = 0x00000100, .agc_target = 0x010001FF, .pll_sync0 = 0x00000000, // 可能不需要PLL // ... };- 上电初始化序列:配置VidDec时,需遵循一定的顺序。通常先配置输入MUX和AGC(稳定模拟前端),再配置同步和色彩解码参数,最后使能解码模块。具体顺序需参考芯片的初始化流程说明。
- 动态切换:在运行中切换频道或输入源时,可能需要重新配置部分寄存器。最佳实践是先将VidDec置于复位或旁路状态,更新配置,再重新使能,以避免切换过程中的图像紊乱。
5. 显示控制器 (DCU) 与数据链路 (DLINK) 配置
5.1 DCU:显示时序的最终仲裁者
DCU负责从VidDec或AVIP接收视频数据,并按照目标显示设备的时序要求输出。Table 225 和 Table 224 提供了DCU的寄存器配置,主要针对图文数据(如WST, WSS, VPS, CC, VITC)的提取和生成。
核心寄存器解析:
DCR1 (0x000): 数据控制寄存器1。值如0x86402701。这个值可能是一个使能位图,每一位控制一种图文数据(Closed Caption, Teletext, WSS等)的提取使能。0x86开头的固定值可能是芯片的某种标识或固定配置。LCR2_5到LCR22_24(0x004-0x018): 行控制寄存器。这些寄存器定义了在哪些行(VBI行)寻找或插入特定的图文数据包。值0xFFFFFFFF通常表示“所有行都有效”或“使用默认行”,而像0xFF22FFFF这样的值,其中的0x22可能特指第22行(PAL图文电视的起始行之一)。DCR2 (0x02C): 数据控制寄存器2。表格中区分了color和Monochrome + YC。这控制了数据提取的色彩处理方式。例如,在提取隐藏字幕(CC)时,彩色模式和黑白模式下的数据解码方式可能不同。
同步位置补偿:手册再次强调了VidDec的延迟(0/1/2行)会影响同步输出位置。DCU的同步输入需要与这个延迟对齐。Table 224 和 Table 225 分别提供了负同步和正同步的设置。SUBPIX_PLL_SYNC0和SUBPIX_PLL_SYNC3的值在两种同步极性下不同,这关系到PLL锁相环对同步边沿的检测逻辑。
5.2 DLINK:数据流的格式转换与路由
DLINK模块处理视频数据在不同内部总线(如ITU656流)和内存控制器之间的路由与格式转换。Table 227 和 Table 228 的配置相对简单。
RX_CTRL (0x000): 接收控制寄存器,通常设置为0x00000000(默认或禁用状态),可能在实际数据传输前由软件动态配置。REC_DEMUX_MODE (0x018): 录制与解复用模式寄存器。这是关键配置。- 对于大多数模式(除YC外),值为
0x0001FFF9或0x0001FFFA。0x0001可能是一个模式标识,FFF9和FFFA的差异可能在于奇偶场处理或数据包格式(如是否包含VANC/HANC数据)。 - 对于YC (S-Video) 输入(Table 228),该寄存器值固定为
0x0001FFF8。这强烈暗示YC信号在进入DLINK前或在其内部,其数据打包方式与复合信号(CVBS)解码后的YUV流不同,可能涉及到色度信号的采样位置调整或格式转换。
- 对于大多数模式(除YC外),值为
调试陷阱:DLINK配置遗漏很多工程师在配置完VidDec和AVIP后,发现数据无法送达后续的缩放或显示单元,问题往往出在DLINK。这个模块常被忽略,但它就像水管中的阀门,如果没打开或模式设错,数据流就断了。务必根据输入信号类型(YC还是其他)选择正确的
REC_DEMUX_MODE值。
6. 全局时钟与系统配置 (GTU & BCU)
6.1 GTU:时钟树的根源
GTU(全局定时单元)负责生成芯片所有模块所需的核心时钟。Table 229 到 Table 233 提供了详细的PLL配置。
1. 晶振分频 (Table 229):GP_XTALCLKSEL和GP_CLKSEL[0]控制输入晶振(27MHz或13.5MHz)的初始分频,产生基础的Xtal_clk。13.5MHz是标清像素时钟的基准,因此常用。
2. 系统与涡轮PLL (Table 230):
GP_SYSPLLCONTROL和GP_SYSPLLSEL:配置系统PLL,为CPU、总线等逻辑部分提供时钟。GP_TURBOPLLCONTROL和GP_TURBOPLLSEL:配置涡轮PLL,可能用于视频处理加速模块。注意:当输入Xtal_clk为13.5MHz时,GP_TURBOPLLCONTROL的值 (0x00001420) 与27MHz时 (0x00016420) 不同,这反映了分频比/倍频比的重新计算。
3. 音频PLL (Table 231 & 232):GP_WSPLLCONTROL和GP_WSPLLMASTERSEL用于生成音频模块所需的精确时钟(如48kHz, 44.1kHz, 32kHz)。表格区分了自动主模式 (Auto Master)和主模式 (Master)。两者的区别在于时钟源的选择和抖动性能,通常自动模式更常用。配置时需严格匹配音频采样率。
4. 视频模式时钟选择 (Table 233):GP_CLKSEL[1](GP_DTOFREQSEL_VID) 位用于选择1FH(标清)或2FH(高清)视频模式的时钟域。GP_CLKSEL[3:2](GP_ITUCLKSEL) 选择ITU接口的时钟源。GP_CLKSEL[4](GP_MPIFCLKSEL) 选择MPI总线接口的时钟。这些位必须根据当前使用的显示模式(见Table 215)进行设置。
6.2 BCU 与 PNX3000 接口
- BCU设置 (Table 235):
TOUT寄存器设置为0x00000800,这很可能是一个超时设置(注释提到2048个PI总线周期),用于总线访问异常时的恢复。 - PNX3000设置 (Table 236):PNX3000是前端的模拟开关和ADC芯片。这个表格定义了PNX2015如何通过寄存器配置PNX3000,以选择不同的物理输入源(如SCART1 CVBS, SCART2 RGB, S-VHS YC)。
Data link mode,Video switches,RGB switches这些寄存器值,实际上是通过I2C或类似总线发送给PNX3000的命令字。如果硬件设计使用了PNX3000,那么这部分配置必不可少,否则信号无法正确进入PNX2015。
7. 哥伦布斯3D梳状滤波器与降噪模块
7.1 3D梳状滤波器原理与模式
哥伦布斯模块是PNX2015的画质增强核心。它包含一个3D梳状滤波器(用于亮色分离)和一个时空降噪模块。
3D梳状滤波器模式:
- 旁路模式 (Bypass):用于RGB、YPrPb和SECAM信号,因为这些信号本身已是分量格式,无需亮色分离。
- 带通-陷波模式 (Band-pass-Notch):用于非标准信号(如VCR录像带信号),其色度副载波频率可能不稳定。
- 2D梳状滤波模式:利用同一行内相邻像素的相关性进行亮色分离。成本低,但容易产生串色和爬行。
- 3D梳状滤波模式:同时利用行内(空间)和帧间(时间)的相关性。通过场/帧延迟线(需要外部DDR内存)存储前一帧数据,实现更精确的分离,大幅减少串色。这是获得高质量图像的关键。
配置要点:
- 使用3D模式必须确保外部DDR内存已正确初始化和连接。
- 需要通过
DMSD_FILTERS等寄存器选择滤波器系数(如手册4.1.2节所示的多种滤波器曲线),以适应PAL(4.43MHz)或NTSC(3.58MHz)的色副载波。
7.2 SWAN与LORE降噪算法
降噪部分由SWAN(时空加权平均)和LORE(局部回归)两个算法协同工作。
- SWAN滤波器:在像素的时空邻域内进行加权平均。权重取决于像素与中心像素的差异(由
SWAN_L3/C3寄存器中的阈值Thr1控制)。差异小于阈值,权重高(认为是噪声);差异大,权重低(认为是边缘),从而在降噪的同时保护边缘。它还包含高频提升(peaking)和削波(coring)电路来增强主观锐度。 - LORE滤波器:通过局部线性回归来估计像素值,在平坦区域降噪效果自然。但在边缘区域效果差,此时通过一个“品质因数”(SMR值)控制渐变器(Fader),平滑地切换到SWAN的输出,以保护边缘。
实操配置: 降噪的强度和行为由一系列寄存器精细控制,如SWAN_L1A/L1B定义像素选择范围,SWAN_L3定义噪声阈值。通常,对于噪点较多的信号源(如模拟有线电视),可以适当提高阈值以增强降噪;对于高清或高质量信号源,应降低阈值或减弱降噪,以保留更多细节。手册没有给出具体场景的推荐值,这需要在实际项目中根据主观画质进行微调。
8. 配置实战:从零搭建一个PAL CVBS输入系统
假设我们要配置PNX2015,从AV端口接收PAL制式CVBS信号,最终在数字端输出ITU656流。
步骤1:确定顶层模式
- 显示模式:
625i(来自 Table 215) - 输入格式:复合视频CVBS(对应YPrPb列?不,在VidDec表中,CVBS输入通常对应第一列
625i + 624ni,或单独的625i YC列?这里需要仔细看:Table 219中,625i YPrPb和625i YC是分开的,而CVBS通常走Y/C分离前的路径。根据上下文,CVBS输入应参考625i + 624ni这一列,或625i YC列(当使用内部色度解码时)。我们假设使用内部解码,参考625i YC列)。
步骤2:配置VidDec
- 设置
MUX0 = 0x00000100(选择复合视频输入路径)。 - 设置AGC寄存器组:
AGC_Y_CYC_TARGETS = 0x0100013B,AGC_LOWER_GAIN_LIMITS = 0x0F5508AB等(取自625i YC列)。 - 设置同步检测寄存器:
DMSD_V_SYNC = 0x012F0150。 - (因为625i是标清,像素时钟13.5MHz可能由GTU直接提供,无需配置SUBPIX_PLL)。
步骤3:配置AVIP (ITU656格式化器)
- 设置
config = 0x00008000(Table 216, 625i行)。 - 设置
vf_sync,field_1,field_2等时序寄存器(值取自Table 216)。 - 关键:由于是PAL彩色解码,VidDec有2行延迟。因此,配置VBI映射时,需使用Table 237中“PNX8550 (Color) mode”下“PAL Mode”的映射关系。例如,图文电视模拟行6-22,应映射到数字行8-24(根据实际计数方式调整)。这通过
vbi_1到vbi_4寄存器配置。
步骤4:配置DCU
- 根据需要提取的图文数据(如隐藏字幕CC),设置
DCR1和相应的LCR寄存器。例如,使能CC并设置其在第22和335行提取(参考Table 225中CC625的配置)。 - 根据同步极性(正/负),选择Table 224或225中的
SUBPIX_PLL_SYNC*设置(本例中可能不需要,因为使用656嵌入同步)。
步骤5:配置DLINK
- 设置
REC_DEMUX_MODE = 0x0001FFF9(Table 227, 625i行)。
步骤6:配置GTU
- 根据硬件晶振(假设13.5MHz),设置
GP_CLKSEL[0] = 1(Table 229)。 - 配置系统PLL和涡轮PLL(Table 230,使用13.5MHz列)。
- 配置音频PLL(如果需要,Table 231,选择对应采样率)。
- 设置
GP_CLKSEL[1] = 0(1FH模式),GP_CLKSEL[3:2] = 01(选择ITU时钟),GP_CLKSEL[4] = 0(选择MPI时钟) (Table 233)。
步骤7:配置PNX3000(如果使用)
- 设置
Data link mode = 0x00,Video switches 0 = 0x01(选择CVBS),RGB switches = 0x22(Table 236, 1FH CVBS列)。
步骤8:哥伦布斯模块(可选,用于画质提升)
- 如果不使用,确保处于旁路模式。
- 如果使用,需配置外部DDR内存控制器,并将
DMSD_FILTERS寄存器设置为PAL 3D梳状滤波模式(如0x016A8006,来自Table 221),并配置SWAN/LORE降噪参数。
最后:按照芯片要求的顺序,将上述配置写入寄存器,然后释放相关模块的复位,启动数据流。通过示波器测量像素时钟(应为13.5MHz),通过逻辑分析仪解码ITU656流中的SAV/EAV码和有效数据,验证配置是否正确。
