本帖最后由 wolfgang2015 于 2018-7-21 12:09 编辑
既然ST、ARM是MIPI创始成员,自然少不了芯片的支持,但MIPI DSI设备控制多见于ARM Coretex-A 内核的芯片中,在ARM Coretex-M系列的芯片中目前只出现在STM32F4x9、STM32F7x9、STM32L4x9系列芯片中。不仅如此ST还推出一系列以MIPI为接口的液晶屏组件(如控制芯片为OTM8009A的MB1166)、转接板(如控制芯片为ADV7533带HDMI转接功能的MB1232),满足不同应用场景对MIPI功能的需要。
为在实现在MB1166 上实现GUI相关的应用功能开发,先来一张系统总图:
至于STM32F769内部是如何调用的请参看系统结构总图:
从外设到MCU控制,逐个部件逻辑功能分析如下:
1、MIPI屏
2、液晶屏幕控制器(OTM8009A) OTM800 9A是一种16777216色的片上系统(SOC)驱动器LSI,用于中小型TFT LCD显示器,能够支持480XRGBX864(WVGA)的分辨率,这可以通过图形数据的集成RAM实现。480通道源驱动器具有真正的8位分辨率,通过内部D/A转换器产生256个伽马校正值。 接口支持 MIPI DSI(1/2 数据通道):支持最高550Mb/s每数据通道的速率传输数据(满足DSI 1.01.00, D-PHYV1.00.00 and DCS v1.01规范);MDDI(2 Lane):传输位率最高55Mb/s每数据通道;CPU(8/16/24位)接口;RGB(16/18/24位)接口;SPI/IIC接口 功能框图如下: OTM8009A支持的屏幕格式有:480*RGB*864(WVGA)、480*RGB*854(WVGA)、480*RGB*800(WVGA)、480*RGB*720、480*RGB*640(VGA)、480*RGB*480、480*RGB*360(HVGA); OTM8009A图形存储器满足最高: 1244160-Byte 即:480x864*24bit/8bit/Byte。 B-LCD40-DSI 分辨率 480*RGB*800在其显示控制范围内。由于DSI最高支持RGB888(也支持RGB565)的信号传输,3个字节显示一个像素的RGB色彩,绘制满屏像素的存储空间为:480*800=384000像素点,每个像素点3*8bit控制,需要内存大小为384000*3=1152000字节的大小(约1.1MB)。
3、DSI HOST 显示串行接口(DSI)是定义的一组通信协议的一部分。MIPI®联盟。MIPI®DSI主机控制器是实现所有功能的数字核心。在MIPI®DSI规范中定义的协议功能。它提供了系统与MIPI®DPHY之间的接口,允许与符合DSI的显示器通信。使用DSI HOST与 B-LCD40-DSI的OTM8009A 实现通信,满足图形图像信号的高速传输要求。
4、FMC
5、DMA2D STM32F769NI 内部具有Chrom-Art Accelerator™功能,它是专用于图像处理的专业 DMA,也被叫做DMA2D
6、DMA
7、Quad-SPI FLASH
光有内存还不够,为满足系统的调用一些图形数据和字库需要存放在片外Flash空间里,避免存放在内部FLASH中占用片内程序空间。
8、CRC
在使用STemWin第三方图形控件时,需要用到硬件CRC加速数据的校验和使用;
Uses CRC-32 (Ethernet) polynomial: 0x4C11DB7
X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2+ X +1
9、JPEG
STM32F769NI 内部具有JPEG解码功能,在解析JPG格式图片时,可有效降低CPU资源,让其它程序得以加速运行。
8位JPEG硬件解码功能,可实现未压缩图像数据流的编码或JPEG压缩图像数据流解码,还带有JPEG标头管理功能。
10、IIC 触屏中断
B-LCD40-DSI屏幕带电容触摸控制芯片,在MIPI接口中有一路IIC信号连接板载FT6206GMA,通过他实现对电容屏的控制信号传输,FT6206GMA 芯片的IIC控制地址为:54H(IIC地址:0101,0100B)
以上是STM32F769I系统,实现GUI功能最基本功能模块,根据实际需要还可增加相关设备管理内容,如SDMMC、DCMI、OTG_HS、ETH等。
另外还有一些常用的如GPIO、NVIC等功能未列入其中,要实现GUI功能管理这里仅列举了实现的技术要点,至于如何管理和软实现,还是要以官方的用户手册RM0410中的方法为准。
理论部分的课前预习准备就介绍到这里,剩下的内容可通过CubeMX实现工程项目的搭建,再用IAR/TrueStudio/KEIL实现功能代码的编写与调试。最终完成STM32F769-DISCO 关于GUI试验项目。
STM32F769I-DISCO开发板GUI学习内容(一)_课前知识预习
STM32F769I-DISCO开发板GUI学习内容(三)_课前预习之CubeMX篇(上)
STM32F769I-DISCO开发板GUI学习内容(三)_课前预习之CubeMX篇(下)
STM32F769I-DISCO开发板GUI学习内容(四)_课后动手实验
|