TW8836 SPIOSD功能

一、准备OSD图片

step1 打开OSDsolution_273b

step2 选择RLE菜单下的from-bitmap

step3 添加需要生成的OSD图片,勾选生成选项

1.选择需要制作成OSD的原始bmp格式的图片,需要时8位颜色深度的图片

2.选择生成文件的保存路径,自己设置

3.勾选BGR+attr模式

4.勾选生成 .bin,.info,.luts文件选项

5.点击start,生成对应的文件

其中,10.RLE是生成的OSD文件的数据部分,10.LUTS是生成的OSD文件的色表部分

step4 选择选择RLE菜单下的fcombine选项,合成需要下载到flash中去的bin文件

1.点击add按钮,添加刚刚生成的数据图片文件*.rle

2.点击add按钮,添加刚刚生成的色表文件,*.luts

3.点击make按钮,选择保存路径,将会生成对应的文件

其中,生成的bin文件就是要下载到flash中去的文件,info文件是对bin文件结构的注释

图片数据的起始地址为offsetout,长度为0x004c67,色表文件的起始地址为offsetout+0x004c67,长度为0x000400

其中,offsetout的值需要我们再下一步下载bin文件至flash的过程中进行指定,0x004c67+offset的地址在后面代码加载色表的过程中会使用到。

 

至此,需要显示的OSD文件就制作准备完毕。

 

二、下载OSD至硬件Flash中

 step1 打开tw调试工具,选择transfer 菜单下firmware upgrade选项,选择IIC-SPI选项,

 

占位图片

 

选择下载的起始地址,点击ok

注意,如果使用的是TW8836的内部MCU,0x00000-0x40000之间的地址时用来存放代码的,OSD图片需要存储在0x40000之后的地址之内。如果使用的是外部的MCU,则没有此限制

 

三、在MCU中添加代码,主要完成的工作是通过TW8836的SPI总线将flash中的LUTS色表文件加载到TW8836内部的两张色表中去

调用了四个函数:

TW88xx_SPI_Init():该函数主要是将FLASH的通信模式设置为QAUD MODE,涉及到的寄存器主要由page4中的,0xC0-0xC9

McuSpiClkSet(1,2,0):该函数主要是设置TW8836通过SPI总线与FLASH通信时所需要的时钟信号,配置为PLL,108M,涉及的寄存器为page4中的0xE0和0xE1

SpiOsdEnable(1):该函数主要是打开TW8836的OSD功能,涉及的寄存器为page4的0x00

SpiOsdLoadLUT_AB(3,1,0,1024):该函数完成加载色表的具体动作。主要完成OSD色表位置的指定和色表数据传输时所需DMA通到的配置

其中的四个参数

@param1:将要显示的窗口号

@param2:色表指针增加模式

@param3:指定的色表的偏移量:对于LUTA来说,可以分为两个256字节大小的LUT,所以偏移量可以为0,也可以为256

@param4:配置的DMA通道的大小

@parm5:前文准备OSD图片中讲到的合成文件的LUT地址偏移量

 

程序启动后,可以通过TW8836调试工具,检查以上四个函数所涉及的寄存器是否配置正确

 

占位图片

 

四、调用显示

找到需要显示窗口在8836中对应的OSD设置寄存器,完成OSD起始位置、大小等信息的配置,也可以通过调试工具来验证功能是否准确。

你可能感兴趣的:(TW8836 SPIOSD功能)