【11】、STM32F767——————>LTDC之 LCD液晶屏

  1. 显示屏:属于计算机的I/O设备,将特定电子信息转换到屏幕上;反射到人眼的工具; 人机互动; 
    1. 分类简述:
      1. 液晶屏:液晶一种介于固体和液体之间的特殊物质,它是一种有机化合物,常态下呈液态,施加电压改变分子排列,达到遮光和透光的目地;
      2. LED屏:单个像素点内集成红绿蓝三色,混色实现全彩输出,多个像素构成一个屏幕; 
      3. OLED屏:有机发光二极管,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且弯曲(曲面电视); 
    2. 像素:组成图像单元的基本参数,尺寸小、像素密图像越清晰; 
    3. 分辨率:像素的行*列; 实验用800*480; 表示 有800列480行; 
    4. 色彩深度:像素有多少位(bit),位数越多; 变化效果越细腻; 常规有565(16bit)、888(24bit); 565表示:红5bit、绿6bit、蓝5bit;
    5. 尺寸:常说几寸屏,测量方法:屏幕对角线的长度;
    6. 点距:相邻两个像素之间的距离;例如手机的分辨率比电脑分辨率还高; 像素小:显示效果好; 
  2. 液晶屏控制方式分类:
    1. 串口屏:操作简单,用户通过发送串口指令完成对LCD屏幕的交互,需要厂家配合定制;(常见串口屏厂家:尼奇等);
    2. MCU屏:有专门的MCU驱动屏幕,用户只需跟这些专用IC通信,就可以自定义屏幕的交互;(常用芯片:ILI9341、NT35310等)
    3. LTDC屏:单片机有专用的LTDC接口(F7有专门的LTDC接口,配合DMA2D图形绘制),直接驱动LCD屏幕,显示速度快、效率更高;(本节介绍LTDC屏的使用,选用群创:AT070TN92,3.5寸屏)
  3. 液晶屏信号线接口:
    1. R[7:0]:红色数据
    2. G[7:0]:绿色数据
    3. B[7:0]:蓝色数据
    4. CLK:像素同步时钟信号 ;在时钟信号驱动下,每个时钟传输一个像素点数据; 
    5. DE:数据使能信号;低电平时RGB信号线表示的数据有效; 
    6. HSYNC:水平同步信号
    7. VSYNC:垂直同步信号
  4. 驱动模式:
    1. 框图:
    2. 如何选择DE模式、HV模式:数据手册里面的MODE引脚; DE:MODE=1; HV:MODE=0;
    3. DE模式:常用模式,更加便捷,易操作; 
    4. HV模式:H/V时序要求很高,要对着手册慢慢调试; 
    5. 注意:如果用DE模式,对SYNC的参数就没特殊要求,随便填;如果是HV模式,多翻数据手册,看清时间间隔;
  5. 传输时序:
    1. 扫描方式:(横屏模式)从左到右,从上到下,逐点扫描;通过RGB数据线,在同步时钟CLK下依次传输到液晶屏中,交给显示指针,传输完成一行时,水平同步信号HSYNC电平跳变一次,传输完一帧时VSYNC电平跳变一次,一帧图像HSYNC跳变480次;
    2. 时序分析:
      1. 框图:
      2. 时序相关名词解释:
        1. VBP(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效行数;
        2. VFP(vertical front porch):表示在一帧图像结束后,垂直同步信号以前的无效行数;
        3. HBP(horizontal back porth):表示从水平同步信号开始到一行的有效数据开始之间的CLK个数;
        4. HFP(horizontal front porth):表示从一行的有效数据结束到下一个水平同步信号开始之间的个数;
        5. VSW(vertical sync width):垂直同步信号的宽度,单位为行; 
        6. HSW(horizontal sync witdh):水平同步信号的宽度,单位为同步时钟CLK的个数;
  6. 显存:显卡缓存容量,实际应用期间,把一帧的像素数据存在缓存里,再传输给液晶,这种存储显示数据的存储器称为显存;565格式所需显存容量:2*800*480 = 768K;888格式=3*800*480=1.152MKb;  单片机内部RAM有效,很难分配出这么多RAM,因此我们外扩SDRAM,把SDRAM的首地址,当做显存的首地址; 
  7. LTDC液晶控制器接口简述:
    1. STM32F76XX系列芯片都带有LTDC,可直接外接LCD屏,实现液晶驱动;
    2. 两个带有专用FIFO(PG、PF)的显示屏(FIFO深度64*32位)
    3. 最高支持800*600分辨率的屏幕;
    4. 常见颜色格式:RGB888、RGB565、ARGB8888、ARGB1555(A透明度,类似画面上显示“弹幕的功能”);
    5. 可编程窗口位置和大小;
  8. LTDC结构框图:
    1. 信号线:(565格式连接)
      1. CLK------>PG7,时钟输出
      2. HSYNC------>PI10,行同步信号
      3. VSYNC------>PI9,垂直同步信号
      4. DE------>PF10,数据使能
      5. R[7:3]------>PG6、PH12、PH11、PH10、PH9
      6. G[7:2]------>PI2、PI1、PI10、PH15、PH14、PH13
      7. B[7:3]------>PI7、PI6、PI5、PI5、PG11
    2. 图像处理单元流程:AHB接口获取显存(SDRAM)中的数据,然后分层把数据分别发送到两个层FIFO缓存,接着从缓存中获取数据交给PFC(像素格式转换器),它把数据从像素格式转换成字(ARGB8888)格式,再经过混合单元把两层数据合并得到单层显示数据,通过信号线输出到液晶面板
    3. 配置和状态寄存器:配置LTDC的时序参数(第5小节),寄存器详细介绍:参阅中文参考手册;
    4. 时钟信号:查阅手册得到,LCD典型时钟频率为:33.MHz
  9. DMA2D图形加速器简介
    1. ST为了提高芯片图像处理能力,增加了DMA:Chrom-Art Accelerator,即DMA2D,通过DMA对图像进行填充、搬运,完全不用CPU干预,提高效率,减轻CPU负担;
    2. DMA2D四种工作模式:
      1. 寄存器到寄存器:本例程采用这种方式
      2. 存储器到存储器
      3. 存储器到存储器并执行PFC
      4. 存储器到存储器并执行PFC和混合
  10. LTDC初始化流程
    1. LTDC时钟、DMA2D时钟、GPIO时钟
    2. 初始化SDRAM,用作显存
    3. 根据LCD参数配置通讯时序
    4. 配置LTDC层级控制参数,配置显存地址
    5. 初始化DMA2D,用于辅助显示
    6. 测试程序
  11. 初始化例程
  12. 总结:可以利用STM32CubeMX初始化LTDC看下哪些参数需要设置;
  13. 参考资料:
    1. 正点原子:STM32F7 开发指南(HAL 库版)
    2. 野火:STM32 HAL 库开发实战指南
    3. 官方例程
发布了24 篇原创文章 · 获赞 1 · 访问量 1515

猜你喜欢

转载自blog.csdn.net/Linux_ARM9/article/details/104684738