微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于MSP430G2303的TV背光3D红外信号发射的方案

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

时间:11-09 来源:互联网 点击:

4.3 命令字

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

其中命令字包括如下定义:

5. Firmware 设计

本设计采用 C 语言开发,IDE 采用 IAR5.4 版本。

5.1 主函数流程

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

主函数的流程图如下所示:

5.2 I2C 帧数据判断流程

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

5.3 命令字解析处理

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

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

// 定义 I2C 命令字
#define CMD_3D_STA 0x36
#define CMD_3D_IR CMD_3D_STA + 1
#define CMD_3D_BLP1 CMD_3D_IR + 1
#define CMD_3D_BLP2 CMD_3D_BLP1 +1
// 定义命令字处理函数指针
typedef unsigned char (*pFun)(unsigned char*);
const pFun g_CmdFun[4] = {Set3DSta, Set3DIRPar, Set3DPhase,Set3DDuty};
/*******************************************************************
** Function Name : CmdSer **
** Description : **
** Arguments : **
** Out Put : **
** Author : Triton.Zhang@ti.com **

** Date : **
*******************************************************************/
unsigned char CmdSer(unsigned char Cmd)
{
unsigned char sta = 0;
if ((Cmd>= CMD_3D_STA) && (Cmd <= CMD_3D_BLP2))
sta = (*g_CmdFun[Cmd - CMD_3D_STA])(&g_I2CRxBuff[2]);
else
return 1;
return sta;
}

更详细的关于各个 I2C 命令的处理参见附件中的软件包。

5.3 2D 模式的背光处理

TV 在 2D 模式下时,背光跟随输入的 PWM 信号调节输出,其处理函数如下:
if (P2IFG & PIN_PWMIN)
{
if (P2IN & PIN_PWMIN)
{
PWM_OUT_HIGH();
P2IES |= PIN_PWMIN; // 设置下降沿触发中断
}
else
{
PWM_OUT_LOW();
P2IES &= ~PIN_PWMIN; // 设置为上升沿触发中断
}
}

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

6. 参考文献

  1. MSP430G2303 数据手册
    2. MSP430F2XX 用户手册

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top