CPU与EPD的连接框图:
EPD驱动流程:
Source/gate驱动方式(一)
Source/gate驱动方式(二)
>EPD像素由source
芯片进行驱动,每次source芯片把一行的数据准备好后,gate芯片就打开1行进行驱动
>Gate芯片逐行打开,600行全扫描完为1个frame
>由于EPD响应速度不快,故不能像普通的TFT屏只驱动一帧即可显示,而是需要多个frame叠加而成
驱动EPD屏幕示例伪代码
//按照顺序打开EPD各路高压、
VCOM EPD_Power_Up();
//需要驱动FRAME_LEN个frame才算更新完毕
//这个FRAME_LEN是由波形表决定的
for(frame=0; frame<FRAME_LEN; frame++)Y
//frame开始gate的时序EPD_Start_Scan();
//gate扫描,以800×600分辨率为例,gate有//600列,扫完一次600列为一个frame for(line=0;line<600;line++)Y
//向source发送一行数据,数据转换也在里面完成EPD_Send_Row_Data();~
//frame结束gate的时序EPD_End_Scan();1
//更新完毕,关闭各路高压、VCOM EPD_Power_Down();
MCU编程时注意事项(一)
>以800X600分辨率为例,一行有800个像素,一个像素需要2个bit(0为不驱动,1为黑,2为白),EPD屏接口的数据线为8位,即每个Source CLK 送8/2=4个像素,因此送一行数据时需要循环800/4=200次
>图像数据储存在FLASH里,现EPD用作4灰阶显示,即分为黑,灰阶1,灰阶2,白这4个状态,因此图像数据里1个像素用2个bit表示(0为黑,1为灰阶1,2为灰阶2,3为白),故800x600的4灰阶图像所占用的FLASH空间为800*600/4=120000字节。
>由于MCU本身RAM不大,故需要频繁到FLASH里读图像数据并进行数据转换,且MCU速度也不够快,这就导致EPD的刷新一帧的时间比较长,导致最终显示效果异常。为了节省RAM,在图像更新时分为2步,先读上一幅图像数据通过数据转换先把屏驱动到初始状态,再读待更新图像数据通过数据转换把屏驱动到最终的显示效果。为了节省数据转换所占用的时间,在MCU上电后就在RAM生成2个波形表(上一幅图像到初始状态表和初始状态到最终显示图像表)。
上一幅图像到初始状态表用来表示4个像素图像数据(1个字节)从所有灰阶组合到初始状态经过所有帧的查询 表
更多详细内容请下载附件查看
如何使用MCU模拟Tcon直接驱动电子纸.pdf
(709.7 KB, 下载次数: 0)