光电显示
今天的用户希望他们的移动设备具有出色的图形功能,但仍需要可接受的电池寿命。显示器的其他用户也期望低功耗。这些标准显然有不同的方向,但有可用的低功耗微控制器,如果应用得当,可以大大解决这些问题。本文将介绍三种此类设备,详细介绍三种基于图形的应用程序。
第一个应用将着眼于使用Silicon Labs的EFM32微控制器来驱动电子纸显示器。然后,本文将介绍使用标准微控制器驱动 LCD 的两种不同方法。在其中的第一个中,PIC32微控制器来自Microchip将成为开发无控制器图形嵌入式应用电路的一部分。其次,将使用 STMicroelectronics的标准ST62微控制器来驱动 LCD。 电子纸展示
电子阅读器的增长催生了对看起来好像是用纸制成的显示器的需求,以便为读者创造更像书本的体验。这种显示器是反射式的,因为它们完全依赖环境光。没有背光。它们是双稳态的,即使断电也能保留图像。除了电子阅读器,它们还用于工业标牌、电子货架标签和其他图像更新不频繁的应用。当显示静态图像时,它们不消耗电流,因此延长了电池寿命。但是,他们需要大量电流来更新图像,这可能需要一到两秒钟。
填充有深色油的透明胶囊构成像素。油中含有带负电荷的白色二氧化钛颗粒。胶囊的正面和背面都有电极。如果前电极带正电,则粒子被吸引到它,像素显示为白色。如果背面电极带正电,则粒子会朝着使黑色油可见的方向移动,因此像素显示为黑色。这如图 1 所示。
图 1:电极将带负电的白色颗粒吸引到显示器的正面或背面以创建图像。
由于它们消耗的电流非常小,因此显示器中其他任何消耗电流的东西都变得相对更明显,因此微控制器的选择变得很重要。在此示例中,我们使用的是 Silicon Labs 的 EFM32 MCU,因为它可以利用其各种能量模式来减少消耗的电流量。在这种类型的应用中,它主要处于能量模式 4 中,在这种模式下,它消耗的电流低至 20 nA。此范围内的 MCU 可拥有高达 1 MB 的 Flash 和 128 KB 的 SRAM,可用于保存帧缓冲区和图像。这些显示器在低温下也需要更长的时间来更新,但 MCU 有一个内部温度传感器,可以用来调整这个时间。
这种显示器的一个问题是对比度,它会随着时间的推移而衰减。一些制造商对这种衰减率提出了要求,一个制造商的一个例子是在三周内从 9.1 到 7.1 的对比度指定下降。重影也可能导致问题,仍然可以看到之前图像的某些部分。如果不是所有粒子都设法移动到单元格的另一侧,则会发生这种情况,从而产生灰色阴影。这通常通过为每个图像多次写入显示器来解决。
此示例使用Pervasive Displays SG020AS0T1 EPD 扩展板和 Silicon Labs EFM32GG-STK3700
入门套件。扩展板包括一个用于连接显示器的灵活面板连接器、用于存储图像的 8 MB 闪存、温度传感器和用于连接 EFM32 MCU 的 20 针接头。该连接器可用于 1.44、2.0 和 2.7 英寸的纸质显示面板。驱动面板的信号在 20 针接头上路由。该板带有一个 20 针连接器电缆,该电缆端接在另一侧的标准跨接电缆中。图 2 显示了如何将入门板连接到扩展套件。
图 2:用于将扩展板连接到入门套件的连接表。
Pervasive Displays 的面板配有集成的玻璃上芯片 (CoG) 驱动程序,可控制面板上的线条和列。CoG 有一个三线 SPI 接口,用于接受来自 MCU 的命令。将图像写入显示器时,面板需要大电压来驱动像素。为了在没有外部电压供应的情况下实现这一点,使用了电荷泵电路。MCU 必须提供 100 到 300 kHz 之间的 PWM 信号来为该电压充电。
绘制图像的过程从 MCU 上电和初始化 CoG 开始。在初始化期间,MCU 向 CoG 发送 SPI 命令,并且必须遵守 CoG 文档中的时序。它还必须提供 PWM 波形作为初始化序列的一部分。图像数据被多次写入以避免重影并提高对比度。帧应重写的次数取决于显示器的类型和温度。粒子在较冷的温度下移动得更慢,因此面板需要更多的重写。这就是为什么扩展板有一个温度传感器来帮助确定必要的重写次数。EFM32 中还有一个内部温度传感器可以使用。然后关闭 CoG 驱动程序,这必须按照 MCU 必须遵循的时序以特定顺序完成。该序列包括首先清除像素寄存器,然后对电荷泵电容器进行放电。
MCU 需要在内存中保留两个帧缓冲区,一个用于新图像,一个用于仍在面板上的旧图像。这是因为面板分四个阶段更新。首先,将当前图像反转。其次,整个面板被绘制成白色。然后,绘制新图像的反面,最后绘制新图像。断电序列完成后,可以移除面板的电源,图像将保持在原位。
为了在显示更新期间优化功率,EFM32 必须始终处于正确的能量模式。因此,在渲染新图像时,它应该以高频率运行。在更新阶段,当帧通过 SPI 传输到面板时,时钟频率可能会变慢,因为该阶段应该运行预定的时间。在延迟期间,当 MCU 等待 CoG 就绪时,MCU 可以处于睡眠模式。根据在睡眠模式期间是否需要执行其他任务,使用能量模式四作为睡眠模式是明智的。从该模式唤醒时,MCU 必须进行完全复位并运行启动和初始化代码,这会增加电流消耗。因此,仅当睡眠模式较长时,此模式才完全有益。
在更新期间可以优化以节省电力的主要参数是每个阶段应该花费多长时间。显示文档应为每个面板定义合理的默认值以及可用于延长此时间以适应较冷环境的温度因素。
无控制器图形应用程序
许多嵌入式应用程序使用内部或外部图形控制器,但这些会增加成本并使设计更加复杂。然而,对于基本的图形用户界面,这种控制器通常不是必需的。相反,可以使用微控制器外围设备来创建虚拟图形控制器,而不会占用大量 CPU 时间;此处给出的示例使用的 CPU 时间不到 5%。它使用 Microchip 的 PIC32 微控制器和公司的PICtail 低成本无控制器 (LCC)图形板,可与许多 PIC32 入门套件配合使用。
无控制器图形系统需要以大约 60 Hz 的刷新率将一帧像素信息发送到显示玻璃。这意味着系统必须不断地向 LCD 面板发送帧数据,这会占用大量 CPU 时间。但是,PIC32 MCU 可以有一个直接存储器访问 (DMA) 外设,无需 CPU 干预即可传输数据,从而将 CPU 时间减少到 5% 以下。
在无控制器图形应用程序中,应将 DMA 设置为通过并行主端口 (PMP) 一次传输一行帧数据。每行包含许多像素,并且 DMA 在每次传输期间发送一部分帧缓冲区。PMP 或定时器中断触发下一次 DMA 传输,直到传输一条线。对于具有非持久中断的 PIC32 器件,定时器是 DMA 触发源。
PMP 在每次像素传输后选通一个读或写信号。PMP 外设的读写选通用作显示玻璃的像素时钟。在传输每行像素数据后,CPU 会被 DMA 中断,并更新 LCD 面板所需的某些时序信号,例如 HSYNC、VSYNC 和 DEN。重复此过程,直到绘制了整个帧。帧存储在易失性存储器中,因此图像可以是动态的。在此设置中,使用了 SRAM。系统可以设置为使用内部或外部 SRAM,如图 3 所示。
图 3:系统设置为使用外部(顶部)和内部(底部)内存。
PMP 数据线用于将颜色映射到 TFT LCD。根据所使用的颜色格式,可以配置 16 条 PMP 数据线来传输颜色数据。在 8 BPP 颜色模式下,只需要 8 条 PMP 数据线。当为 16 BPP 颜色模式使用外部存储器时,可以使用 8 或 16 PMP 数据线。使用 8 条数据线,外部存储器数据线仍以 16 BPP 模式映射到 TFT LCD,但 PIC32 MCU 仅通过 8 位连接到存储器。当需要执行写入时,MCU 可以使用外部存储器上的低/高字节引脚将 16 位颜色值发送到 SRAM。
尽管此处描述的无控制器方法旨在与 TFT LCD 面板一起使用,但它也可以与 CSTN 或 MSTN 玻璃一起使用,只需稍作修改。大多数 LCD 面板可以有 8 到 24 条颜色数据线,具体取决于颜色深度。这些线为 LCD 提供原始颜色数据。时钟信号 HSYNC、VSYNC、DEN 和 PCLK 将像素数据与图形帧和 LCD 面板同步。同步线告诉 LCD 面板数据何时位于行 (HSYNC) 或帧 (VSYNC) 的开头或结尾。DEN(数据启用线)让面板知道何时发送有效的像素数据。TFT 类型面板需要 DEN,因为需要时间来设置面板以获得正确的像素位置。
PCLK 信号是整个系统的时钟源。来自 PCLK 的一个时钟脉冲更新面板。所有其他时钟线必须与像素时钟同步,以实现正确的图像输出。并非所有显示面板都有 HSYNC、VSYNC 和 DEN 线。此示例适用于可用于解释每一行及其用途的面板。但是,不包含 HSYNC 和 VSYNC 信号的面板仍然可以与无控制器图形设置一起使用。
LCC 软件驱动程序可以帮助需要某些时序参数的同步,例如水平和垂直脉冲的脉冲宽度、前沿和后沿。将这些值编译到驱动程序中后,面板会显示框架。
在屏幕中渲染新像素与刷新屏幕一样重要。这是通过 CPU 写入显示缓冲区来完成的。如果帧存储在外部,则在更新帧时暂停 DMA 传输。这是因为只有一个 PMP 外设,它由虚拟图形控制器或 DMA 传输共享。这会影响屏幕的刷新率。需要监控像素更新量,防止刷新率变化过大,否则人眼会察觉到变化。这是使用虚拟图形控制器中的像素计数变量完成的,该变量在每次像素写入时更新并在每次 DMA 中断期间清除。
用标准微控制器驱动 LCD
也可以使用 STMicroelectronics 的 ST62 微控制器在没有专用驱动器的情况下驱动 LCD。这适合需要低成本小型显示器但又可以利用该微控制器的多功能功能的应用。
在施加零均方根 (RMS) 电压的情况下,LCD 实际上是透明的。LCD 对比度(使各段变暗或不透明并因此开启)是由施加的 RMS LCD 电压和 LCD 阈值电压之间的差异引起的,该电压特定于每种 LCD 类型。施加的 LCD 电压必须交替提供零 DC 值,以确保 LCD 的长寿命。复用率越高,对比度越低。信号的周期必须足够短以避免显示的可见闪烁。
每个 LCD 段连接到一个 IO 段和一个所有段共用的背板。使用 S 段的显示器由 S+1 条 MCU 输出线驱动。背板由控制在 0 和VDD之间的信号 – com – 驱动,占空比为 50%。选择“ ON”段时,将具有相反极性的信号发送到相应的段引脚。当同相信号 com 发送到段引脚时,段为“关闭”。使用 MCU,IO 在逻辑电平 0 或 1 的输出模式下运行。
对于双工驱动器(参见图 4),使用两个背板而不是一个。每个 LCD 引脚连接到两个 LCD 段,每个段在另一侧连接到两个背板之一。因此,只需 (S/2)+2 个 MCU 引脚即可驱动具有 S 段的 LCD。必须在背板上产生三种不同的电压电平:0、V DD /2 和 V DD。段电压电平仅为 0 和 V DD。如果 RMS 电压低于 LCD 阈值电压,则 LCD 段无效,如果 LCD RMS 电压高于阈值电压,则 LCD 段有效。只有背板电压需要中间电压V DD /2。选择作为背板的 ST62 IO 引脚由软件设置为 0 或VDD的输出模式V DD /2的电平和高阻抗输入模式。该电压 V DD /2 由外部连接到 IO 引脚的两个等值电阻器定义。通过使用具有灵活 IO 引脚配置的 MCU,只需四个附加电阻即可实现双工 LCD 驱动。
图 4:双工模式下的基本 LCD 段连接。
对于具有 1 或 2 段和多达 36 段的多路复用率的简单 LCD,这种方法非常具有成本效益。
结论
许多类型的应用都需要某种形式的显示器,即使是那些有成本和功耗压力的应用。这会让许多同样面临严格的上市时间限制的工程师感到头疼。然而,正如这里的三个示例所示,标准的低成本和低功耗 MCU 通常可用于驱动图形应用程序。
全部0条评论
快来发表一下你的评论吧 !