设为首页 加入收藏
当前位置:主页 > 新闻中心 > 正文阅读

基于MSP430G2303的TV背光3D红外信号发射的方案

发表日期:2022-03-22 16:47  作者:admin  浏览:

  上海建筑垃圾分拣设备,液晶(LCD)电视机在家电消费市场已经全面普及,因为 LCD 显示需要背光,而传统的 CCFL 背光已经逐渐被

  背光替代。在 LED 背光方案中,常常需要一个 MCU 来控制 LED Driver。同时,因为

  电视的市场占有率越来越高,在 3D 电视中,也需要使用一个 MCU 来发射 3D 眼镜同步信号。

  本文介绍了一种基于MSP430G2303单片机实现 3D TV 的背光扫描和 3D红外信号发射的解决方案。该方案采用一颗高性价比的 MCU 实现了 3D TV 背光扫描和红外发射功能,具有成本低,性能可靠的特点。

  快门式的 3D 电视需要发射左、右眼的同步信号给眼镜,眼镜根据这个信号来控制左右眼的开关,从而实现 3D 显示。同时,为了获得更好的 3D 效果,主机会按照左右眼的同步信号,调节显示器的背光,即 3D Scanning 背光扫描。

  通常应用中会用一个 MCU 来处理 3D 红外信号发射,用另一个 MCU 实现背光扫描。本文介绍了一种使用一个 MCU 实现 3D 红外信号发射和背光扫描的方法。采用 TI 公司的高性能,低成本的MSP430G 系列 MCU 可以很方便实现这两个功能。

  基于 MSP430G2303 MCU 设计 TV 背光、3D 红外发射二合一功能控制器的系统框图如下:

   配置 USCI_A 工作在从 I2C 模式,接收上位机发过来的参数数据;

   MCU 检测 GPIO 的上升、下降沿中断,并根据 TV 模式设置背光 PWM输出;

  目前,大多数的 LCD 电视厂家采用主板+电源板的系统架构。主板负责处理电视信号,电源板负责管理系统电源以及 LCD 背光驱动。

  支持 3D 模式的电视机上,电源板上采用一个 MCU1 来处理 3D Scanning 模式的背光扫描,在主板上使用一个 MCU2 控制 3D 眼睛的红外信号发射。如图4 所示。这种架构的方案有如下几个缺点:

  由于不同的 LCD 显示屏对背光扫描的参数不一样,所以位于电源板上的MCU1 要根据不同的 LCD 显示屏配置不同的参数, 生产和管理很不方便;

  2. 不同的电视尺寸背光的通道数是不一样的,同一个 MCU 的软件很难支持各种规格的电视;

  3. 背光 MCU 的 SYNC 信号和主芯片发送给主板上的 MCU 的 L/R 信号存在一定相差,容易造成 3D 眼睛和背光不同步。

  TI 的二合一方案,利用一个 MCU 处理 3D 电视的背光和 3D 眼睛的红外信号,系统框图如图 5 所示。本方案的优势如下:

  2. 在主芯片和 MCU 之间增加了 I2C 接口进行通信,所有的参数都可以通过该接口传给 MCU;

  3. 使用同一套软件不同的屏参和 LED 背光通道数的控制,方便生产和物料管理。

  在 2D 模式下,MCU 控制 8-CH 的背光输出跟随 PWMIN 的信号。本应用中,采用 P2.4 引脚作为 2D 模式下的 PWM_IN 的输入引脚,P2.4 被设计成上升/下降沿触发中断,在中断处理函数中,CPU 根据 PWM_IN 的信号设置 8 个通道的 PWM 输出电平。背光输出波形如下图所示:

  由于采用的管脚中断触发 PWM 输出,所以 PWM 的输出精度受到中断处理的影响,会带来 10~20uS 的延时误差。

  在 3D 模式下,MCU 接收从 LCD 显示屏发出的 R/L 信号,并根据设置好的Phase 和 Duty 参数,分别输出 8 路 PWM 控制信号驱动 LED Driver 点亮背光。为了适应各种屏的需要,8 路 PWM 信号的 Phase 和 Duty 可以由主机通过 I2C总线设置。具体的命令参见本文的“4. 命令字”章节。

  由于 MCU 采用 GPIO 的中断触发方式检测 R/L 信号,每个通道的处理是通过 TIMER 中断触发,所以在实际操作中会带来一定的延时误差。实际测试的误差在 20uS 以内。

  由于中断处理需要占用 CPU 一定的处理时间,所以不同通道的 Phase 延时会受到影响,不同的通道之间的 Phase 值不能相差太小。根据实际测试,最小的相位差不能低于 50us。

  从波形上分析,8 个通道的 PWM 信号的 Phase 各不相同,我们把在一个SYNC 周期内的 8 路通道的 PWM 波形的上升沿和下降沿看成 8 个 GPIO 上升事件和 8 个下降事件,然后根据事件发生的先后时间排序。由于上升沿和下降沿有可能在同一时间发生,所以我们就用 TIMER_A0 的 CPP1 和 CPP2 分别处理上升沿事件和下降沿事件。

  在 3D 模式时,设置 Timer_A0 工作在连续模式; P2.3 管脚接收主机的 R/L信号。在 R/L 信号的上升沿和下降沿触发 GPIO 中断,在中断处理函数中清零TIMER_A0 计数器。然后,按照排好序的事件序列,设置第一个上升沿事件的时间点到 TIMER_A0 的 CCP1 和第一个下降沿事件的时间点到 TIMER_A0 的CCP2。最后,使能 TIMER_A0 的 CCP1 和 CPP2 中断。

  在 TIMER_A0 的 CCP1 和 CCP2 中断发生时,CPU 根据上升沿和下降沿的事件设置对应的 GPIO 电平,并更新 CCP1 或 CCP2 中的上升沿或下降沿事件的时间点。

  在 3D 模式下,MCU 根据图像帧的同步信号控制三级管驱动一个红外发射管,给 3D 眼镜发送红外信号。3D 眼镜根据接收到的信号开关左右眼的快门,从而使左右眼分别看到不同的电视信号,实现 3D 效果。

  在本应用中使用 L/R (左、右眼) 信号替代帧同步信号,MCU 检测到该信号后,按照设置好的参数输出固定的红外 R/L 同步信号给眼镜。为了节约功耗,每 3 次 R/L 信号发射一次红外信号。

  为了避免累计的时间误差,MCU 每检测到 15 个 R/L 信号需发送一次帧同步信号给眼镜,具体波形如下。为了防止和 3D R/L 同步信号冲突,该信号在R/L 同步信号的第二个 R/L 信号之后发送。

  由于红外信号载波频率的精度会影响到 3D 眼睛的接收距离和角度,所以我们使用硬件 Timer 来产生 20kHz 的红外载波信号。我们设置 Timer_A1 工作在 PWM 模式,周期为 50us,占空比为 50%。

  在背光控制一节,已经介绍了使用如何设置 Timer_A0,使其工作在连续计数器模式。在 3D 红外发射部分需要利用 Timer_A0 的 CCP0 功能。

  利用 P2.3 来检测 R/L 信号,分别在上升沿和下降沿产生同步信号的中断。

  在 R/L 信号的上升/下降沿中断中,按照表 1 的参数,设置 Timer_A0 的CCP0,并根据波形开启和关闭 Timer_A1 产生的 PWM 波形,从而实现红外编码。

  由于在不同的 R/L 信号周期要求产生不同红外波形,我们定义一个计数器来计算 R/L 同步信号的周期数,该计数器范围从 1 到 15。MCU 在不同的计数值,产生对应的红外信号。

  由于软件采用中断的方式检测 R/L 信号,采用 Timer 中断的方式处理红外编码,所以在计算编码周期时需要把中断处理的时间考虑进去,尽量避免由于中断处理带来的累计误差。

  由于电视信号的制式不同,帧同步信号分为 50HZ 和 60HZ 两种。MCU 需要判断帧同步信号的频率,并根据频率调用各自的背光参数。这个工作分为两个部分。

  第一部分在 TV 信号从 2D 切换到 3D 的过程,在这个过程中由于 R/L 信号还未稳定,所以不能输出 3D 红外信号,同时 8 路 PWM 控制单元输出一个固定的 50HZ,占空比位 30%的 PWM 信号驱动 LED driver 点亮背光。在此期间,我们利用 Timer_A1 的 CCP 功能,捕获 R/L 信号的脉宽,并判断其周期。等其稳定在 50HZ 或 60HZ 之后,才载入 50HZ 或 60HZ 的参数,并切换到 3D 工作模式。

  第二部分发生在 3D 工作模式,我们利用 MCU 的 T imer_A1 定期检测 R/L信号,判断其周期是否有变化,如果发生有效的 50HZ 和 60HZ 的切换,MCU会重新载入当前的频率参数。为了不影响到正常的 3D 红外发射功能和Scanning 背光扫描功能,我们在 R/L 信号周期计数器计数到 15 时才判断一次R/L 信号。

  TV 的主芯片通过 I2C 接口和 MCU 进行通信,并把相关的参数信息通过I2C 总线传给 MCU。主芯片工作在 I2C 主模式,MCU 工作在 I2C 从模式。

  I2C接口设计成符合 I2C 总线读写规范的标准工作模式,包含 7 位地址,8-BIT 数据访问模式。

  主芯片通过数据帧和 MCU 通信,一帧数据以 START 信号为起始,以STOP 信号为结束,I2C 的数据帧格式如下表所示:

  MCU 接收到完整的 I2C 帧数据后,解析出命令字并根据命令字设置新的参数。

  在主函数中,主要完成系统的初始化工作,并从 INFO Flash 中载入 TV 背光和 3D 红外发射需要的参数到 RAM 中。然后进入循环查询模式,等待主机I2C 命令操作。

  MCU 接收到一帧 I2C 数据之后,首先判帧数据是否合法,判断的流程图如下图所示:

  当检测到合法的 I2C 数据帧之后,MCU 提取出数据帧中的命令字,并根据命令字跳转到命令字处理函数。

  在本应用中,把命令处理函数定义成一个函数指针数组,当接收到命令字后,根据命令字的来调用数组中的不同函数。详细代码如下:

  TV 在 2D 模式下时,背光跟随输入的 PWM 信号调节输出,其处理函数如下:

  其它软件功能如 3D 模式下的背光处理和红外发射控制比较复杂,不在本文中详细列举。若对本文所述的方案和内容感兴趣,请联系德州仪器半导体获得进一步支持。