LCD

前文提要:

一、段码式液晶显示屏LCD结构和显示原理

二、瑞萨MCU内置的LCD控制器/驱动器

1、LCD控制器/驱动器框图

2、LCD控制器/驱动器的驱动波形

3、LCD控制器/驱动器的驱动电压

LCD驱动电压VL1、VL2、VL3、VL4的提供,分为内部升压、电容分割和外部电阻分割。

内部升压

如R7F0C001G/L、R7F0C002G/L内置用于LCD驱动电源的内部升压电路。通过外接内部升压电路的电容器(0.47μF ±30%),生成LCD驱动电压。内部升压方式只能使用1/3偏压法或者1/4偏压法。内部升压方式的LCD驱动电压和器件本身不是同一个电源,因此与VDD的变化无关,能提供固定的电压。能通过设定LCD升压控制寄存器(VLCD)来调整对比度。

1.png

电容分割

如R7F0C001G/L、R7F0C002G/L内置用于驱动电源的电容分割电路。通过外接电容分割电路的电容器(0.47μF ±30%),生成LCD驱动电压。电容分割方式只能使用1/3偏压法。和外部电阻分割方式不同,电容分割方式没有电流流过,因此能减小消费电流。

2.png

外部电阻分割方式

3.png

4、LCD控制器/驱动器时钟控制

4.png

5、LCD控制器/驱动器的数据驱动显示

能从升压电路运行时生成的16种基准电压(调整对比度)中选择。

5.png

6、LCD控制器/驱动器的数据驱动显示

当用于静态、2个时间片、3个时间片或者4个时间片时,如R7F0C001G/L、R7F0C002G/L能通过设定BLON位和LCDSEL位,从以下3种选择LCD显示数据寄存器:

  • A图形区(LCD显示数据寄存器的低4位)的数据显示

  • B图形区(LCD显示数据寄存器的高4位)的数据显示

  • 交替显示A图形区和B图形区的数据(实时计数器(RTC)的固定周期中断时序对应的闪烁显示)

注意在使用8个时间片时,不能选择LCD显示数据寄存器(A图形、B图形或者闪烁显示)。

6.png

闪烁显示(A图形区和B图形区的数据的交替显示)R7F0C001G/L,R7F0C002G/L例子。

当BLON位为“1”时,对应实时计数器(RTC)的固定周期中断(INTRTC)时序,进行A图形区和B图形区的数据交替显示。当LCD闪烁显示时,必须给与A图形区的位对应的B图形区的位设定反相值(ex. 将F0400H的bit0置“1”,在闪烁显示时将F0400H的bit4置“0”);当LCD不闪烁显示时,必须设定相同值(ex. 将F0402H的bit2置“1”,在点灯显示时将F0402H的bit6置“1”)。

显示的切换时序如下所示。

7.png

三、瑞萨MCU内置LCD控制器/驱动器的驱动工作模式待机功耗实测

8.png

9.jpg

四、瑞萨内置LCD控制器/驱动器的MCU系列

可以点击下方链接下载数据手册,了解更详细的规格说明:

R7F0C001G/L、R7F0C002G/L用户手册硬件篇、RL78/L12、RL78/L13、RL78/L1A、RL78/L1C、RA4M1:https://www.renesas.cn/cn/zh

五、瑞萨内置LCD控制器/驱动器的MCU系列评估板

点击链接:https://www.renesas.cn/cn/zh

相关阅读:瑞萨MCU内置LCD控制器/驱动器漫谈(上)

来源:瑞萨嵌入式小百科(作者:Leo Liao

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 20

前 言

在很多应用场景下可能需要使用段码式液晶显示屏LCD,如:家用电器、工业设备、仪器仪表、楼宇自动化设备、医用仪器、穿戴设备等等。这不仅是因为段码式液晶显示屏LCD具有显示美观、成本优势、功耗低等优点,而且现在很多MCU都集成了LCD驱动模块,使得开发变得更容易。根据不同电压、段位数、A/B驱动波形等广泛应用的需求,瑞萨集成了LCD驱动模块,不同系列的MCU可使用该模块从而匹配其应用。

一、段码式液晶显示屏LCD结构和显示原理

段码式液晶显示屏LCD内部晶体在静电场的功效下,晶体的排列方向会发生偏转,因而改变其透光性,从而可以看到显示的内容。LCD有一个偏转阀值,当LCD两端的电压高于该阀值时,则显示内容;而低于该阀值时,则不显示。

一般段码式液晶显示屏LCD有三个主要参数:工作中电压、Duty(相匹配COM数)和BIAS(偏压,相匹配阀值),例如,3.0V、1/4Duty、1/3BIAS表明LCD的工作中电压为3.0V,有4个COM,阀值大概是1.1V(3.0/3=1.0)。

1.png

当加在某段LCD两端的电压大于1.0V时显示,反之,不显示。但是,LCD对于驱动电压的反应不是很明显,例如加1.0V电压的时候,可能会微弱显示,这就是通常说的“鬼影”。因此,要保证驱动LCD显示的时候,加在LCD两端的电压要比阀值电压大得比较多,而不显示的时候,则要比阀值电压小得比较多。

需要注意的是,LCD的两端是不能加直流电压的,否则时间稍长会危害段码式液晶显示屏LCD晶体分子结构的电化学特点,造成显示实际效果模糊不清,使用期限降低的不良影响,其毁灭性不能修复,这就要求保证加在LCD两端的驱动电压的平均电压为0。所以,LCD使用分割扫描法,在任何时候只有一个COM扫描有效,其余的COM处于无效状态。

一个好的段码式液晶显示屏LCD控制器/驱动器,应该满足:

  • 能提供不同数量的COM、Duty(相匹配COM数)和BIAS(偏压,相匹配阀值),满足不同规格LCD屏的驱动

  • 能够提供多种分压方式,提供内部分压,减少外围电路分压的元器件

  • 能够提供内部Boost升压,满足一些电池供电,电池电压下降时,亮度还可以保持

  • 能够提供内部基准电压稳压,避免分压不准导致显示出现“鬼影”

  • 能够提供多个不同的基准电压选择,可以调整对比度

  • 能够提供多种不同分割扫描法、驱动波形,满足灵活选择

  • 能够不同的时钟源和不同分割扫描帧率的选择,满足不同应用低功耗的要求

瑞萨MCU内置的LCD控制器/驱动器不但满足上面的规格,而且还提供其他优点功能:

  • 提供不同的时钟源选择,可选择外部副时钟32.768KHz,也可选择MCU内部低速或高速时钟

  • 提供显示数据寄存器,能通过自动读取显示数据寄存器进行段信号SEG和公共信号COM的自动输出

  • 提供时间间隔闪烁功能,方便易用

二、瑞萨MCU内置的LCD控制器/驱动器

1、LCD控制器/驱动器框图

图1为集成到瑞萨自有16bits RL78系列核MCU中的LCD控制器/驱动器,图2集成瑞萨32bits RA4M1系列Arm核MCU中的LCD控制器/驱动器,两者主要区别是LCD控制器/驱动器的工作时钟选择不同,RA4M1系列还可支持选择内部高速时钟。

2.png

图1 R7F0C001/R7F0C002/L12/L13/L1A/L1C LCD控制器/驱动器

3.png

图2 RA4M1 LCD控制器/驱动器

①外围允许寄存器0(PER0):在将副系统时钟(fSUB)用于LCD控制器/驱动器时设定。

②LCD模式寄存器0(LCDM0):LCD驱动电压生成电路、显示波形(A/B)和显示的时间片DUTY的选择。

③LCD模式寄存器1(LCDM1):此寄存器允许或者禁止显示运行,允许或者停止升压电路和电容分割电路的运行以及设定显示数据区和低电压模式。

④运行速度模式控制寄存器(OSMC):通过停止不需要的时钟功能来降低功耗。

⑤LCD时钟控制寄存器0(LCDC0):设定LCD源时钟和LCD时钟的寄存器,通过LCD时钟和时间片决定帧频。

⑥记忆性液晶控制寄存器(MLCD):控制记忆性液晶波形。

⑦LCD升压电平控制寄存器(VLCD):能从升压电路运行时生成的16种基准电压(调整对比度)中选择。

⑧LCD输入切换控制寄存器(ISCLCD):设定CAPL/P126、CAPH/P127、VL3/P125引脚作为LCD功能运行的期间防止贯通电流的流入。

2、LCD控制器/驱动器的驱动波形

驱动波形包括COM端口波形、SEG端口波形、COM和SEG之间电压差波形,当各画素对应的COM和SEG的电位差高于一定电压(LCD驱动电压VLCD,也就是阀值电压)时,LCD显示屏的各画素就点灯。如果电位差低于VLCD,各画素就熄灯。

COM端口波形

根据设定的时间片,如表所示的顺序为公共信号的选择时序,并且以其为一个周期进行重复运行。在静态模式的情况下,COM0~COM3输出相同的信号。

4.png

SEG端口波形

SEG信号对应LCD显示数据寄存器,在8个时间片方式的情况下,各显示数据寄存器的bit0~bit7对应COM0~COM7。与公共信号输出的各时序同步,读数据存储器的数据。如果各位的内容为“1”,就在转换为选择电压后输出到段引脚(SEG4~SEG38)。如果各位的内容为“0”,就在转换为非选择电压后输出到段引脚(SEG4~SEG38)。

在不是8个时间片方式的情况下,在A图形区中各显示数据寄存器的bit0~bit3对应COM0~COM3,在B图形区中各显示数据寄存器的bit4~bit7对应COM0~COM3。与公共信号输出的各时序同步,读数据存储器的数据。如果各位的内容为“1”,就在转换为选择电压后输出到段引脚(SEG0~SEG38)。如果各位的内容为“0”,就在转换为非选择电压后输出到段引脚(SEG0~SEG38)。

因此,必须先确认LCD显示数据寄存器使用的LCD显示屏的前面电极(对应SEG信号)和背面电极(对应COM信号)是如何组合形成显示图形的,然后给显示数据寄存器写与显示图形一一对应的位数据。

COM信号和SEG信号的输出波形

公共信号COM和段信号SEG输出的电压如表(a)-(d)所示。只有在公共信号COM和段信号SEG都为选择电压时才为±VLCD的点灯电压(选择),在其他组合时为熄灯电压(非选择)。
静态显示模式时,公共信号COM的输出波形,在LCD时钟属于的1个周期T(选择或非选择),前T/2输出VL4分压电平,后T/2输出Vss电平;段信号SEG的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平。

5.png

1/2偏压时,公共信号COM的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,输出VL2电平;段信号SEG的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平。

6.png

1/3偏压时,公共信号COM的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,前T/2输出VL1分压电平,后T/2输出VL2电平;段信号SEG的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL2分压电平,后T/2输出VL1电平。

1/3偏压时,公共信号COM的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL4分压电平,后T/2(在后半帧Tf/2)输出Vss电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL1分压电平,后T/2(在后半帧Tf/2)输出VL2电平;段信号SEG的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出Vss分压电平,后T/2(在后半帧Tf/2)输出VL4电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)出VL2分压电平,后T/2(在后半帧Tf/2)输出VL1电平。

7.png

1/4偏压时,公共信号COM的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,前T/2输出VL1分压电平,后T/2输出VL2电平;段信号SEG的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL2分压电平,后T/2输出VL2电平。

1/4偏压时,公共信号COM的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL4分压电平,后T/2(在后半帧Tf/2)输出Vss电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL1分压电平,后T/2(在后半帧Tf/2)输出VL3电平;段信号SEG的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出Vss分压电平,后T/2(在后半帧Tf/2)输出VL4电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL2分压电平,后T/2(在后半帧Tf/2)输出VL2电平。

8.png

COM信号和SEG信号的输出波形实例

在此例子,以第7位的9.png进行说明。需要根据显示图形并且通过COM0~COM3的各公共信号的时序,将表所示的选择电压和非选择电压输出到SEG12引脚和SEG13引脚。
10.png

因此,给SEG12对应的显示数据寄存器(地址F040CH)准备“1101”即可。SEG12和各公共信号之间的LCD驱动波形例子如下图所示。在选择COM0时SEG12为选择电压,就知道LCD点灯电平+VLCD/–VLCD的交流矩形波的产生。

11.jpg

SEG12和各公共信号之间的4个时间片的LCD驱动A波形例子(1/3偏压法)

12.pngSEG12和各公共信号之间的4个时间片的LCD驱动B波形例子(1/3偏压法)

作者:Leo Liao

来源:瑞萨嵌入式小百科

围观 13

在智能家电、健康设备以及消费电子领域,精美直观的LCD彩屏显示,往往能够为用户带来更佳的使用体验。然而,丰富的彩屏UI界面带来了开发周期和数据存储成本的增加,也成为困扰客户产品开发迭代的痛点。

对此,芯海科技(股票代码:688595)在备受欢迎的小尺寸LCD彩屏显示解决方案的基础上,进一步推出基于CS32L015芯片平台的彩屏GUI开发方案。

1.pngCS32L015彩屏开发板:CS32L015-EVAL-TFT V1.1

UI资源丰富,满足多样需求

该方案提供丰富内容资源和多控件功能,旨在满足客户对于UI界面多样化和个性化的需求。

无论是图片、动画的插入与编辑,艺术字、滑块等控件的使用,该方案都能够得到轻松实现。同时,开发者还可根据需求调整帧刷新周期、背景设置等多种属性,打造更加符合产品特色的UI界面。

2.png

为了简化开发流程,该方案还提供统一的页面操作接口和便捷的功能拓展开发支持,帮助客户开发者更加专注于产品核心功能和用户体验的提升,而无需过多关注底层实现细节。

简化设计流程,高效压缩数据

芯海科技GUI开发方案在原有方案基础上进行重大升级,引入先进的GUI设计工具和编解码算法,使得开发者仅需通过简单的拖拽和编辑,即可快速完成UI界面的设计。

3.png

在传统的彩屏应用开发过程中,开发者通常需要花费大量时间和精力,进行Flash区域的规划、数据的烧写以及显示内容的调整。

对此,该方案实现了对UI数据的高效压缩。通过独特的编解码算法结合便利的下载组件,不仅优化了存储空间的使用,降低了对大容量Flash的需求,更显著降低了开发成本,这为终端产品的快速上市和成本控制提供了有力支持。

4.png

同时,该方案完善的工具链和精简的API能够帮助客户实现高效开发,最快在一天内即可实现UI设计和彩屏显示功能。

完善开发支持,解决后顾之忧

为了确保客户工程师能够顺利使用GUI开发方案及充分发挥其潜力,芯海科技提供了全方位的支持和服务。从硬件参考设计、IDE使用指导到示例代码和GUI方案开发指南,公司提供详尽的开发资料和技术文档。

目前,基于芯海科技CS32L015的LCD GUI显示的标准方案,已开放相关的开发资料和DEMO演示板,欢迎您联系芯海科技体验该方案的便捷与高效。我们将竭诚为您提供端到端的技术支持和服务保障,确保您的使用过程能够得到及时、专业的帮助。

基于CS32L015芯片平台的GUI开发方案的推出,是芯海科技在小尺寸LCD彩屏显示的持续布局。该方案延续了芯海科技一贯的高性能、高可靠性的产品特点,更通过创新的技术手段和优化的设计思路,为开发者带来了更加便捷、高效的开发体验。

来源:芯海科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 15

本解决方案使您能够用所有RX家族单片机实现对SPI连接TFT LCD模块的控制。用更少的硬件资源实现更复杂的HMI。

Motoki Ushigome(Sr Staff Product Marketing Specialist

以往提到家电,其操作面板通常是由段式LCD、LED和物理按键组成,但近年来,有越来越多注重设计性的高端机型采用了TFT LCD和电容式触控按键。

为了满足家电和工业设备对TFT LCD显示的需求,瑞萨一直在开发基于图形LCD控制器和2D绘图引擎的RX家族单片机,并长年提供无需外设LCD显示用IC的单芯片解决方案。为了在广泛应用中更轻松采用TFT LCD模块,我们本次发布了适用于所有RX家族单片机的基于SPI的GUI解决方案。

1.png

下面将介绍基于SPI的GUI解决方案的优点。

仅需4个端子即可实现TFT LCD显示

要通过SPI实现显示控制,只需使用时钟输出、数据输出/输入和芯片片选4个端子。TFT LCD模块在插针数量较少的封装中也能得到控制,因此在元件封装面积有限的应用中也可顺利应用。

2.jpg

合作伙伴GUI库,可免费使用到批量生产

从开发到批量生产,所有RX家族单片机用户均可免费使用Segger公司的GUI库“emWin for RX”。emWin已针对嵌入式应用进行了优化,即使是LCD显示用CPU和内存资源较少的RX100系列,也能轻松运行。

提供可快速体验QVGA LCD显示的示例程序

我们准备的示例程序使用了RX家族单片机评测板(RX140、RX671)和商用QVGA LCD模块。您可以同时体验微波炉LCD显示和基于电容式触控传感器的应用操作。

此外,我们还提供了一个PoC,让您可以体验本解决方案在实际场景中的应用。与上面的示例程序类似,可以在QVGA LCD模块上显示微波炉操作界面。电容式触控按钮和滑块由透明电极构成,在LED背光的照射下,可从黑色外壳浮现出白色。另外由于外壳正面完全扁平,给人一种时髦的HMI设计感。结合在Web上发布的电路板原理图、透明电极和外壳设计信息,客户可以在开发产品时进行参考。如您打算使用本PoC,请与您瑞萨销售/代理商联系。

3.jpg

基于SPI的GUI解决方案的PoC(非卖品)

利用RX家族的基于SPI的GUI解决方案,您可以用更少的硬件资源实现高级HMI创新,因此强烈建议您在下一代产品开发中使用。

来源:瑞萨电子

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 13

Holtek新推出BH67F2495 LCD Flash MCU,具备阻抗与电化学测量电路并内建USB功能,适用于USB血糖仪、二合一血糖血压机等产品。

1.jpg

BH67F2495内建完整MCU资源,与模拟前端电路,可支持多种阻抗测量、电化学测量与各样生理信号测量之组合应用。内建USB驱动器可支持USB通信;内建LCD驱动器具备恒定亮度功能;支持多种传输接口,包含I²C、SPI与UART。

MCU资源包含64K×16 Flash ROM、4096×8 RAM,另外内建4096×8 EEPROM,容易实现产品调校/标定的功能,简化开发及生产。BH67F2495提供64-pin LQFP与80-pin LQFP两种封装。

来源:Holtek

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 11

春意萌发,向“芯”而生。中微半导(688380.SH)2023年产品规划全面提速,日前正式发布新型工业级低功耗BAT32G127,该产品专为简化电池供电的LCD显示应用而设计,资源可拓展性强,卓越的低功耗优势可广泛应用于智能水表、热表、燃气表、测量仪器及温控器等电池供电LCD显示应用。

1.jpg

-40℃~105℃专为工业设计

BAT32G127具备高集成、高可靠的特点,芯片基于Arm Cortex®-M0+内核,工作频率32 MHz,配备128KB Flash,8KB SRAM和2.5KB专用 Data Flash,1.8V ~ 5.5V工作电压,工作温度-40℃~105℃,确保恶劣工作环境下系统平稳运行。

BAT32G127集成增强型DMA控制器,内置12bit高精度ADC,精度控制在±1.5LSB,丰富的模拟外设,可实现动态数据高精度实时采样及转化,快速响应驱动LCD背光,为电池供电LCD显示应用提供高效支持。

兼具低功耗及宽泛工作电压

2.jpg

BAT32G127秉持工业级一贯低功耗、高性能的产品开发理念,在休眠模式下电流低至0.7 uA,运行功耗35uA/MHz@32MHz,支持工作电压1.8~5.5V宽电压供电模式,多种工作模式如低功耗运行模式、sleep模式、deep sleep模式等,帮助延长电池使用寿命。

扩展性强 灵活应对复杂场景

3.jpg

BAT32G127集成A/D转换器、温度传感器、比较器,运算放大器等高精度模拟外设,高达26通道的高精度12Bit ADC,1通道8bit DAC。具备灵活的I2C、SPI、UART多种标准接口,并支持C-Type/R-Type LCD显示,最多可支持8COM*38SEG,芯片兼容性广、扩展性能强,适用各种工业控制及复杂场景。

完善硬件保障 快速启动开发

4.jpg

BAT32G127具有出色ESD、EFT抗干扰性能及RAM奇偶校验、SFR保护、CRC等增强型安全功能,符合IEC/UL 60730标准,满足工业级高可靠性标准,能为系统运行提供完善硬件保障,实现应用所需的高抗干扰、高稳定性和高可靠性要求。

BAT32G127提供QFN40、LQFP32、LQFP48、LQFP64多种封装形式可选,性能、功耗及封装尺寸均占优势,兼容市场主流设计,满足工程师pin to pin快速互换迭代开发,加快产品上市周期。

开发支持

中微半导为BAT32G127提供完善软硬件开发套件、应用文档、一站式解决方案和现场技术支持服务。

5.jpg

BAT32G127开发板支持3.3V/5V供电切换,同时板载CMS-ICE8 OB调试器,仅一条Type-C线即可实现仿真、串口打印功能,方便客户快速验证产品。

BAT32G127现已实现量产,可批量供货,样品申请请联系Rain.xia@mcu.com.cn

来源:中微半导

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 27

灵动股份推出的MM32L0130系列MCU具有片上SLCD液晶显示控制器,SLCD 驱动器是用于单色无源液晶显示器(SLCD)的数字驱动器,具有多达 8 个公共端和多达 63 个分段端, SLCD 引脚最多为 64 个,因此最多可驱动 240(60x4)或 448(56x8)个段码。驱动段码的最终数量由产品规格书中设备引脚的数目决定。

1、SLCD介绍

1.1  SLCD功能框图

SLCD 驱动模块包括以下几个基本的子模块,如下图所示。

  • 显示数据寄存器

  • SLCD 输出驱动引脚

  • 时钟产生单元,包括时钟预分频器、帧时钟分频器、电荷泵时钟分频器和闪烁时钟分频器

  • 闪烁控制器

  • 内置升压电荷泵和偏置电压生成单元

  • 时序控制和波形发生器

1.png

1.2  SLCD主要特征

  • 显示帧率灵活控制

  • 兼容 APB 接口

  • 支持静态、 1/2、 1/3、 1/4、 1/6 和 1/8 占空比

  • 支持 1/2、 1/3 和 1/4 偏置电压设置

  • 为了存储显示数据,内置了 16*32bit 显示数据寄存器

  • 通过软件来调整 SLCD 输出电压,来调节对比度

  • 外围电路简单,不需要模拟器件支持

1)内嵌电容升压器来得到比电源电压更高而且不受其影响的 SLCD 驱动电压。升压器产生的 SLCD驱动电压范围可调,可以匹配支持 3V 或者 5V 的 LCD 屏幕

2)SLCD 驱动电源可以通过软件来选择内部电源或外部电源。

3)可以选择使用内嵌电容分压器对 SLCD 驱动电压进行分压,得到驱动电压的中间值(VLCDrail1,VLCDrail2, VLCDrail3, VLCDrail4)

  • 两种调整显示对比度的方法

1)当采用内部升压器来提供 VLCD 电源时,可以通过软件调节 VLCD 输出电压

2)其它情况下可以在每帧显示之间插入死区时间

  • 支持以下低功耗模式:低功耗运行模式,睡眠模式,低功耗睡眠模式,停止模式,深度停止模式,待机模式;在不需要显示的时候,可以完全关闭 SLCD 驱动以达到降低功耗的目的

  • 支持相位反转模式,降低功耗和 EMI

  • 每一帧显示开始的时候,通过中断信号与软件同步,更新显示数据

  • 闪烁功能

1)可以从所有段码中任意选择 1 到 8 个段码闪烁显示,也可以闪烁显示全部段码

2)在静态、 1/2、 1/3、 1/4 占空比模式下可以闪烁显示任意段码

3)软件选择闪烁频率,支持闪烁频率 0.5Hz, 1Hz, 2Hz 或 4Hz

  • 灵活的引脚复用功能,可以配置任意 LCD 驱动引脚成为 COM 或者 SEG 功能;SLCD 的驱动引脚在没有被配置成 SLCD 功能的时候,可以作为 GPIO 引脚来使用

  • SLCD 驱动电平(VLCDrail1, VLCDrail2, VLCDrail3, VLCDrail4)的去耦合功能

  • 支持低功耗驱动波形

  • 支持 DMA 传输

  • 支持中断

2、功能概述

2.1  显示数据寄存器

为了存储显示数据, SLCD 驱动模块内置了 16 个 32 比特显示数据寄存器。显示数据寄存器中的比特位与 LCD 显示屏上的段码一一对应, 如果要点亮 LCD 显示屏上的某个段码, 则需要把显示数据寄存器中的相对应的比特写为‘1’;反之如果要熄灭某个段码, 则需要把对应的比特写为‘0’, 如下图所示。

2.png

在 static, 1/2, 1/3 和1/4 duty模式下,显示数据寄存器被划分为主显示数据寄存器片区(SLCD_DR[7:0])和辅助显示数据寄存器片区( SLCD_DR[15:8]);在 1/6 和 1/8 duty 模式下,显示数据寄存器(SLCD_DR[15:0])全部作为主显示数据寄存器片区使用,没有辅助显示数据寄存器片区的分划。显示数据寄存器的具体结构和详细的片区划分情况见下图:

3.png

2.2  主/辅助显示数据寄存器

在 static,1/2,1/3和1/4 duty 模式下,可以通过 SLCD 帧控制寄存器(SLCD_FCR)中的DRSEL比特选择控制将主显示数据寄存器片区(SLCD_DR[7:0])或者辅助显示数据寄存器片区(SLCD_DR[15:8])的数据显示到 LCD 屏幕上,如果DRSEL为‘0’, 显示主显示数据寄存器片区的数据;如果 DRSEL 为‘1’,显示辅助显示数据寄存器片区的数据。SLCD 状态寄存器(SLCD_SR)中的 DRSS 比特可以指示出显示数据当前使用的显示数据寄存器片区, 如果当前使用的是主显示数据寄存器片区的数据, 则 DRSS 比特为‘0’;如果当前使用的是辅助显示数据寄存器片区的数据,则 DRSS 比特为‘1’。将 SLCD 帧控制寄存器(SLCD_FCR)中的 DRLC 比特置‘1’可以清除主显示数据寄存器片区的数据;将 DRHC 比特置‘1’可以清除辅助显示数据寄存器片区的数据。

2.3  COM 和 SEG 引脚配置

SLCD 模块提供公共端(COM)引脚和段(SEG)引脚的驱动。

2.4  SLCD 引脚配置

SLCD 的 SEG 和 COM 引脚是同通用功能 I/O 复用的。在不作为 SLCD 引脚使用时,这些引脚可以配置成通用功能 I/O 引脚。具体配置请参考通用功能 I/O 章节。

2.5  COM 和 SEG 引脚重映射

当作为 SLCD 引脚使用时,每一个 SLCD 引脚都可以被重映射为 COM 或者 SEG 引脚,以简化电路板上的布局布线。SLCD 模块支持从 L0 到 L63 最多 64 个 SLCD 引脚(SLCD 引脚的最终数量由产品规格书中设备引脚的数目决定),每一个引脚可以通过相应的 SLCD_CFGR0 和 SLCD_CFGR1 寄存器来配置,重映射其作为 COM 或者 SEG 功能。

2.6  时钟产生

时钟产生模块为波形发生模块和电荷泵模块提供各自所需的时钟,其结构如下:

4.png

时钟产生模块结构图

3、实验

3.1  硬件设计

本次实验使用MM32L0130片上SLCD驱动LCD液晶屏显示。硬件使用灵动股份设计的EVB-L0136开发板,板载LCD接口可以适配GDC0689液晶屏,GDC0689具有半透和反射两种模式,6位8字、6点视角、宽温,适用于工业设备等产品。GDC0689液晶屏全显效果图如下:

5.png

EVB-L0136开发板LCD模块原理图如下:

6.png

原理图1(LCD部分)

7.png

原理图2(MM32F0130部分)

3.2  程序设计

例程主要用到GDC0689液晶屏的数码管部分进行计数显示,以最右边的数码管作为小数部分,其余数码管作为整数部分,从最低位开始累加计数,满十就向前一位进1。

灵动股份设计了MM32F0130 SLCD相关的库函数以及API函数,容易理解和使用,代码较多,这里不再进行赘述,仅对部分主要程序进行分析。

3.21 SLCD测试函数

    void slcd_test(void)
{
    slcd_init();
    while(1) {
        LCD_DisplayDataUpdate();
        DELAY_Ms(100);
    }
}

3.22 SLCD初始化函数

void slcd_init()函数主要代码:

使能PWR、BKP时钟

        RCC_APB1PeriphClockCmd(RCC_APB1ENR_PWR, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1ENR_BKP, ENABLE);

使能SLCD时钟,软件复位SLCD

        RCC_SLCD_ClockCmd(SLCD, ENABLE);
    SLCD_DeInit();

SLCD的时钟源选择LSI,配置LSI时钟频率为40KHZ。

        RCC_LSICLKConfig(RCC_LSICLKSource_40KHz); 
    RCC_LSICmd(ENABLE);
    RCC_SLCDCLKConfig(RCC_SLCDCLKSource_LSI);

LSI作为SLCD时钟源,对应时钟预分频系数为4,分频系数为16

        else if(slcd_clk_source_freq <= LSI_VALUE) {
        pre_value = SLCD_Prescaler_4;
        div_value = SLCD_Divider_16;
    }

初始化SLCD结构体,配置1/4偏置、1/3占空比,VDD作为SLCD电源使能

        slcd_struct.SLCD_Divider = div_value;
    slcd_struct.SLCD_Duty = SLCD_Duty_1_4;
    slcd_struct.SLCD_Bias = SLCD_Bias_1_3;
    slcd_struct.SLCD_VoltageSource = SLCD_VoltSrcCapCharggDownVdd;
    SLCD_Init(&slcd_struct);

SLCD pin对应的GPIO配置为SEG或COM,并使能

        SLCD_IO_Config(&(SEGorCOM[0]));
    //must call after SLCD_init

配合SLCD COM索引寄存器

        SLCD_COM_IndexInit(&(SCLD_COM_Index[0]));

配置电荷泵时钟分频为1024

        SLCD_ChargePumpClockDivConfig(SLCD_ChargePumpClock_Div1024);

正常驱动波形

        SLCD_LowPowerDriveCmd(DISABLE);

配置无死区插入,当在两帧之间插入死区时,SEG和COM信号电压为零

        SLCD_DeadTimeConfig(SLCD_DeadTime_0);

清除显示数据寄存器

        LCD_Clear();

关闭SLCD闪烁模式,闪烁时钟分频系数为512

        SLCD_BlinkConfig(SLCD_BlinkMode_Off, SLCD_BlinkFrequency_Div512);

配置SLCD闪烁索引

        SLCD_BLINK_IndexInit(SCLD_BLINK_Index);

3.23 LCD更新显示数据函数

LCD_DisplayDataUpdate()函数主要代码:

        Number1 = (Number1 + 1) % 1000000;

    if(Number1 < 10) {
        LCD_DisplayNumber1(0, ' ', 0);
        LCD_DisplayNumber1(1, ' ', 0);
        LCD_DisplayNumber1(2, ' ', 0);
        LCD_DisplayNumber1(3, ' ', 0);
        LCD_DisplayNumber1(4, '0', 1);
        LCD_DisplayNumber1(5, '0' + Number1, 0);
    }
    else if(Number1 < 100) {
        LCD_DisplayNumber1(0, ' ', 0);
        LCD_DisplayNumber1(1, ' ', 0);
        LCD_DisplayNumber1(2, ' ', 0);
        LCD_DisplayNumber1(3, ' ', 0);
        LCD_DisplayNumber1(4, '0' + ((Number1 / 10) % 10), 1);
        LCD_DisplayNumber1(5, '0' + ((Number1 / 1 ) % 10), 0);
    }
    ......(省略余下代码)

其中LCD显示函数 void LCD_DisplayNumber1(u8 Index, char ch, u8 Point)用于配置数码管显示,函数的3个形参含义如下:

  • Index表示选中的数码管索引,对应6个数码管,可选值为0,1,2,3,4,5

  • ch表示要显示的数字,为char类型

  • Point表示该数码管是否显示Dp字段,显示则为1,否则为0

举例:代码中LCD_DisplayNumber1(5, '0' + Number1, 0)表示选中第5个数码管(最右),显示内容是Number的值,不显示Dp字段。

3.24 LCD显示函数

LCD_DisplayNumber1()函数主要代码:

    void LCD_DisplayNumber1(u8 Index, char ch, u8 Point)
{
    u8 i;
    char TAB[6][8][4] =  {   // (1)
        {"5A ", "5B ", "5C ", "5D ", "5E ", "5F ", "5G ", "DP5"},
        {"6A ", "6B ", "6C ", "6D ", "6E ", "6F ", "6G ", "DP6"},
        {"7A ", "7B ", "7C ", "7D ", "7E ", "7F ", "7G ", "DP7"},
        {"8A ", "8B ", "8C ", "8D ", "8E ", "8F ", "8G ", "DP8"},
        {"9A ", "9B ", "9C ", "9D ", "9E ", "9F ", "9G ", "DP9"},
        {"10A", "10B", "10C", "10D", "10E", "10F", "10G", "   "},
    };

    u8 COMn = 0xFF, SEGn = 0xFF;

    u8 Code = LCD_SearchCode(ch);   // (2)

    if(Code != 0xFF) {
        for(i = 0; i < 7; i++) {
            LCD_SearchName(TAB[Index][i], &COMn, &SEGn);   // (3)

            if((COMn != 0xFF) && (SEGn != 0xFF)) {
                LCD_WriteBit(COMn, LCD_SEG_Table[SEGn][0], LCD_SEG_Table[SEGn][1], (Code >> i) & 0x01);   // (4)
            }
        }

        LCD_SearchName(TAB[Index][7], &COMn, &SEGn); // (5)

        if((COMn != 0xFF) && (SEGn != 0xFF)) {
            LCD_WriteBit(COMn, LCD_SEG_Table[SEGn][0], LCD_SEG_Table[SEGn][1], Point);   // (6)
        }
    }
}

1、定义三维字符数组TAB[6][8][4],其中[6]对应6位“8”字,[8]对应“8”字的8段(含DP段),[4]表示元素的长度,对应各段的名称。

2、形参ch表示要显示的数字,为char类型,LCD_SearchCode(char ch)函数用来遍历LCD_CODE_Table[38],如果传入的参数ch和LCD_CODE_Table[i].ch相等,则返回LCD_CODE_Table[i].Data,即该数字对应的段选信号。

3、LCD_SearchName(TAB[Index][i], &COMn, &SEGn)函数遍历所有COM口(4)和SEG口(22),如果TAB[Index][i]和LCD_NAME_Table[i][j]相等,则获取COMn和SEGn的值,然后返回。

4、获取COMn对应的显示数据寄存器索引,根据段选信号,给显示数据寄存器赋值。

5、获取Dp段对应的COMn和SEGn的值,然后返回。

6、获取COMn对应的显示数据寄存器索引,根据Dp段选信号,给显示数据寄存器赋值。

3.3  实验演示

下载程序运行,观察GDC0689液晶屏显示:

来源:灵动MM32MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 188

Cortex-M23 內核:NuMicro M256 系列

IC 特点

M256 系列是 32 位低功耗微控制器产品内建 LCD 驱动以及电容式触控,基于 M23 内核支持 Armv8-M 指令集架构,工作频率为 48 MHz,内建 128 KB Flash 及 16 KB SRAM,运作在 1.75V 至 5.5V 宽工作电压和 -40℃ 至 105℃ 的工业温度范围。

M256 系列内建 8 x 28, 6 x 30, 4 x 32, 8 x 44, 6 x 46, 4 x 48 COM/SEG 驱动控制器,具备电荷泵以及内部电阻分压驱动 LCD 方式,电荷泵用以确保电池电压降低的情况下 MCU 仍能使 LCD 对比度保持一致,并能支持 3V 至 5V 的 LCD 玻璃;内建触控按键侦测电路,增加可调配参数有利于 Touch key 算法的执行效率,提供高达 16 信道独立按键,并具备低功耗、防水以及高抗干扰的特色。

M256 系列支持丰富的周边界面,如定时器、看门狗定时器、5 路 PDMA、3 组 UART、1 组 I²C、1 组 SPI/I²S、1 组 USCI (通用串行接口)与 6 路 16 位 PWM。整合高性能模拟周边电路,包含 16 信道 12 位 730 kSPS 采样率 ADC、两组模拟比较器 (ACMP)、温度检测传感器来降低外部周边组件的采用并缩小终端产品尺寸,并提供多种封装。

电动自行车面板

应用场景

  • 触摸按键通过IEC 61000-4-6 10V动态电流测试

  • 电池供电、MCU平均耗电: <3uA 以供鋰电池超过30小时以上续航力

  • RTC提供休眠时间纪录时间功能

  • LCD内建电荷泵驱动使得户外显示效果佳

“最新低功耗LCD微控制器内建电容式触控

电容式触控感测

结构

  • 最外层为一薄薄的二氧化硅硬化处理层

  • 第二层为 ITO,在玻璃表面建立一均匀电场

  • 最下层的 ITO 作用为遮蔽功能,以降低干扰

工作原理

  • 利用感应人体微弱电流的方式,可令电场引发电流

  • 电容式触控面板已由在ITO铟锡氧化物玻璃上加工形成触控传感器,当手指碰触屏幕时,ITO Pattern及控制IC便会立即感测到电容的变化,并且藉由感测点的电容强弱,计算出触控点的位置

洗衣机控制面板

应用场景

  • 支持高达16通路触控按键

  • 触摸按键通过IEC 61000-4-6 10V动态电流测试

  • 触摸按键防水功能佳

  • LCD具备buffer驱动电流功能

“最新低功耗LCD微控制器内建电容式触控

输液泵

应用场景

  • PWM用来控制三相电机,使帮浦按照一定顺序和运动规律上下往复运动

  • 6路以上12-bit ADC 连接多种传感器: 红外滴数传感器(控制流速/流量)、压力传感器(堵塞检测)、超声波气泡传感器

  • 内建LCD驱动与触控按纽

  • 当帮浦异常内建的ACMP及时切断输液通路

  • 当AC断电时内建RTC具备独立VBAT引脚做数据保持

  • 提供高达7路串口用来实现智能医疗云端管理

“最新低功耗LCD微控制器内建电容式触控

来源:新唐MCU
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 35

前言

在一些图形界面应用中,系统架构会时常考虑使用 FSMC接口来驱动 8080接口的 LCD屏。在 MCU渲染完成,将framebuffer发送到 LCD时,有可能会遇到存儲大小端的问题。STM32MCU都采用 ARMCortex内核,内存使用小端格式。而 intel 8080接口的 LCD在传输 RGB数据时,使用的是大端格式。MCU在传输 RGB数据时,字节序有可能不匹配。

在图形界面应用中,像素格式一般会使用 RGB888或 RGB565。而在使用 FSMC接口驱动 8bit位宽的 LCD时,很可能会使用 RGB565格式。本文中会介绍两种方法来处理8bit8080接口 RGB565格式图像数据字节序问题。

图像数据字节序

8bit8080 LCD在接收 RGB565数据时,会将第一个字节解析为{R4-R0,G5-G3}, 第二个字节解析为{G2-G0,B4-B0},并按这个顺序接收所有数据,如下图:

“驱动

而在 MCU内存中,数据按小端格式存放,RGB565数据存放的字节序如下:

“驱动

如果不做调整直接将 RGB数据发给 LCD,MCU会先发送 Byte0,再发送 Byte 1,这样 LCD显示的内容就会错乱。对比上面两张图可以看出,只需将内存中 Byte0与 Byte1字节位置对调(Byteswap),就能满足 LCD接口的字节序要求。可以直接使用 CPU进行 Byteswap,但这会消耗过多 CPU算力,同时也会占用更多内存。这里我们将使用硬件进行 Byteswap.

DMA2D 进行Byteswap

DMA2D是 ST为图形应用专门设计并优化的2D加速引擎,拥有丰富的功能。其字节序重排功能包含了Red blueswap以及 Byteswap特性。Red blueswap特性在 L4和 L4+系列 MCU都支持,而 Byteswap仅在L4+系列有支持。在 L4+系列上,通过配置 DMA2D_OPFCCR寄存器的 SB位,即可使能 Byteswap功能,在 DMA2D的outputFIFO中完成字节序调整,如下图:

“驱动

因此在图形界面应用中,需要 Byteswap时,可以考虑用 DMA2D来传输 RGB数据给 LCD。

GPDMA 进行Byteswap

在新推出的 U5系列芯片上,集成了 GPDMA模块。这是新的通用DMA模块,能在传输数据的同时,还有丰富的数据处理能力。在初始化GPDMA时,通过配置源和目的数据位宽为 DMA_SRC_DATAWIDTH_WORD,在数据处理中配置 DataExchange为 DMA_EXCHANGE_DEST_BYTE,如下面代码,也能实现Byteswap功能。

“驱动

这样,在图形应用中,既能使用 DMA2D加速渲染过程,也能使用 GPDMA的数据处理能力。通过 GPDMA直接向FSMC接口输出 Byteswap后的 RGB565格式的图形数据给LCD。

小结

在驱动 8位 8080接口 LCD时,需要注意图像数据字节序问题。使用 RGB565格式时,可以使用 DMA2D或 GPDMA来传输图像数据,同时对图像数据做 Byteswap调整,满足LCD的字节序要求。

本文转载自:STM32单片机
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 147

页面

订阅 RSS - LCD