LcdToos如何实现PX01自动调Flicker及VCOM烧录
准备工作:
LcdTools+PX01点亮需调Flicker的屏;F118 Flicker探头,用于自动Flicker校准测量,F118连接PX01上电后,探头屏会提示零点校准,此时需盖住探头窗口再按探头“MODE”按键进行零点校准,校准完毕后就可以正常使用了;IC资料,需要了解vcom读写、烧录次数读取方法以及烧录流程。
下图为PX01+F118搭配各种接口屏进行自动Flicker的示意图
LcdTools实现用PX01自动Flicker及vcom烧录,主要分以下几步:
1、 先弄清楚Flicker画面是用什么,即屏支持在什么Flicker画面下进行vcom校准;常见的Flicker画面有如下几种。
PX01内置大量Flicker画面,如果需要的Flicker画面PX01内置没有,请用图片实现。
2、看IC资料,弄清楚vcom读写怎么实现,实现这个就可以实现调Flicker。实现写vcom函数void SetVcomToLcm();实现vcom读取函数void ReadOtpVcom();
3、看IC资料,弄清楚烧录次数怎么读取;实现烧录次数读取函数void ReadOtpTimes();
4、查看vcom烧录流程资料,实现烧录函数;如果没有,跟客户索取;实现烧录函数void BurnOtp()。
下面实例介绍使用LcdTools通过PX01对屏进行自动Flicker调整及vcom烧录的详细过程;实例采用的屏视频口为LVDS,分辨率为1024x600,数据通信口为SPI,Drvier IC为JD9168。
1、 先确认Flicker画面,设置PX01自动Flicker校准需使用的Flicker画面,在“测试设置”栏“VCOM OTP”下,“FLK画面”下拉进行画面选择;
从屏原厂了解到所需的Flicker画面如下图,PX01内置画面不支持;
我们用图片实现,把Flicker图片转成相应分辨率bmp图片,命名为F01.bmp,存到PX01 SD中,并在LcdTools自动Flicker“测试设置”栏设置相应的Flicker画面为Picture 1。
2、 完成vcom读写函数编写,实现vcom写入屏和从屏中读取出来;查看IC资料,这里提一下这个JD9168 SPI的读写指令构成。
a) SPI写(命令+数据),从IC资料可以看出SPI写数据构成如下:
SPI通信为3线8位模式;发送寄存器(命令)和数据前,需要发送相关SPI 写命令位置、数据位置、数据个数、命令地址和数据;如切到PAGE0,DEh写00h;
实际要发送的数据为:F1h(spi wr index) 01h(data index) 01h(data cnt) DEh(cmd) 00h(data),用LcdTools编写指令为:SpiWrite(WIRE3,BIT8,1,0xF1,0x01,0x01,0xDE,0x00);
写纯命令,即数据个数为0,不带参数,如写命令29h,实际发送数据为:F1h(spi wr index) 01h(data index) 00h(data cnt) 29h(cmd),用LcdTools编写指令为:SpiWrite(WIRE3,BIT8,1,0xF1,0x01,0x00,0x29);
b) SPI读(命令+数据+读取数据),从IC资料可以看出SPI读数据构成如下:
读取寄存器值前,需要发送SPI 读命令位置、数据位置、数据个数、命令地址,然后再读取返回数据;如读取B2h寄存器3个参数,实际发送数据为:F2h(spi rd index) 01h(data index) 03h(data cnt) B2h(cmd),发送完后开始接收3个读取值,用LcdToos实现指令为:SpiRead (WIRE3,BIT8,DUMMY0,4,0xF2,0x01,0x03,0xB2, 3); 请注意以下几点,使用LcdTools SPI读取指令,如果发送完到开始接收读取参数之间没有空时钟打拍,dummy时钟参数请选用”DUMMY0”;第4个参数表示需发送数据的个数;最后一个参数表示读取参数的个数。
言归正传,我们先实现vcom写函数SetVcomToLcm(),参考IC资料可以了解,vcom位于B2h寄存器,9bit模式;
所以写的时候我们需要把vcom拆分成高字节bit[8]和低字节bit[7:0],实现方法如下:
实现vcom写函数SetVcomToLcm()后,我们就可以实现修改vcom而改变屏Flicker闪烁度,怎么确认vcom修改是否有效呢?LcdTools连接PX01点亮屏后,切到“测试设置”栏,设置好Flicker画面,点击“设置为当前FLK画面”按钮使屏显示Flicker画面,在vcom栏写入需要写入的vcom值(十六进制),再点击写入,重复尝试修改vcom值写入,看屏Flicker画面闪烁是否有变化,如果有,说明vcom写入生效。
再实现vcom读函数ReadOtpVcom(),就可以知道屏当前的vcom值是多少,而且在PX01自动Flicker校准烧录vcom后,可以读取出来对比是否烧录OK;从寄存器描述可以知道,vcom参数为9bit,分两个字节,bit[8]在para1最低位,bit[7:0]为para2,读取para1 para2后需拼接成9bit数据赋值给vcom变量。
实现方法如下:
验证读取是否OK方法,编译下载后,在“测试设置”栏“VCOM OTP”栏下点击“读取”按钮进行vcom读取,在vcom栏会显示读取出来的vcom值(十六进制),同时“端口信息”栏也会打印相应的读取指令信息。
3、 实现vcom烧录次数读取函数ReadOtpTimes(),参考资料可以看出烧录次数参数在B2h寄存器第三个参数 ,低4位有效;读取出来烧录次数参数出来后,对齐进行判断再赋值给烧录次数变量otptimes。
实现方法如下:
到这步完成后,就可以实现自动Flicker查找了;要使PX01能自动查找vcom,需要告诉他一些相关规则,需要在“测试设置”栏“VCOM OTP”栏下设置自动Flicker的相关参数;
次数上限:限定vcom烧录次数,超过之后不进行Flicker烧录,此功能用于生产或工程调试,OTP次数非常有限,避免误烧把仅有的几次烧录次数用完;
FLK测量类型:分FMA和JEITA两种,常用FMA(%),速度快;
Vcom搜寻范围:限定vcom值在以起始值为中点,左右范围内进行vcom搜寻;
Vcom最大值:限定vcom搜寻过程中不能超过的上限;
Vcom最小值:限定vcom搜寻过程中不能超过的下限;
Vcom起始值:第一次vcom搜寻的起始vcom值,也是vcom搜寻范围的中点值;
Vcom步进值:第一次vcom搜寻循环的步进值,之后的循环会逐步缩小一半,直到步进值为1;
最优阈值:用于不需要找到最佳vcom,满足Flicker需求情况下提前退出查找过程;
不良阈值:设定最佳vcom的Flicker值判定是否是OK;
烧录使能:烧录和Flicker功能总开关,不勾选PX01烧录按钮无功能;
开机烧录:勾选后按开关键点亮屏后自动进行Flicker校准烧录,用于产线提高效率;
一键烧录:勾选后按烧录键从查找最佳vcom到烧录一次完成,不勾选第一次按烧录键进行最佳vcom查找,需要烧录vcom的话需再按一次烧录键,用于工程调试;不勾选的情况下,已经查找完最佳vcom后,按除了烧录键的任意其他按键,烧录vcom条件将不成立。
以上参数设置完成后就可以测试自动Flicker校准流程,编译下载后,把F118放置在屏中间位置,开机点亮屏再按“烧录”按键,PX01会自动切到Flicker画面进行最佳vcom搜寻,可以看到屏会从很闪到不闪的过程,并最终会在PX01显示屏的消息栏打印出最佳vcom值。
4、 实现烧录函数BurnOtp(),此步实现的是如何把vcom固化到屏Drvier IC中;查看IC资料,了解烧录的详细流程;
仔细分析烧录流程,按照烧录流程完成烧录函数功能,实现方法如下图:
烧录函数实现后,还需设置烧录完毕判断是否成功的检测方法,在上电函数中加入指令SetOtpDoneCheckType(),用于告诉PX01烧录完毕后如何判断是否烧录OK,这里推荐使用SetOtpDoneCheckType (0)或者SetOtpDoneCheckType (2)。
到这里就已经完成了自动Flicker校准和vcom烧录的全部流程,验证自动Flicker校准和vcom烧录功能的时候,建议先把烧录次数上限调小,避免误烧;工程编译后下载,开机点亮屏,按“开关”键开机后按“烧录”键进行Flicker自动校准,如果勾选了“一键烧录”,PX01会对屏进行自动Flicker校准和vcom烧录一次完成,否则,Flicker校准完后需再按一次“烧录”键才会进行烧录动作;烧录完毕后,PX01会有提示音并显示烧录结果,烧录OK会提示“滴滴”两声并在PX01显示屏消息栏显示“OTP OK”;烧录NG则会提示“滴滴滴”并在PX01显示屏消息栏显示“OTP NG”。
例程源码连接:
链接:https://pan.baidu.com/s/1KiJMeaPwDLGI1Ov-RAgkgQ
提取码:4hgf
这个例程示例只起抛砖引玉之用,实际应用需按数据接口和IC资料进行相应功能实现,欢迎交流!
LcdToos如何实现PX01自动调Flicker及VCOM烧录的更多相关文章
- hyperopt自动调参
hyperopt自动调参 在传统机器学习和深度学习领域经常需要调参,调参有些是通过通过对数据和算法的理解进行的,这当然是上上策,但还有相当一部分属于"黑盒" hyperopt可以帮 ...
- 自动调参库hyperopt+lightgbm 调参demo
在此之前,调参要么网格调参,要么随机调参,要么肉眼调参.虽然调参到一定程度,进步有限,但仍然很耗精力. 自动调参库hyperopt可用tpe算法自动调参,实测强于随机调参. hyperopt 需要自己 ...
- 转://Oracle undo 自动调优
Oracle 10gr2的后续版本中添加了UNDO信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:1. 当UNDO TABLESPACE为 fix ...
- 3D打印机如何添加自动调平功能
原理说明 Kossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:http://learn.makerlab.me/guides/11 3d打印打印时最重要的是第一层的效果,如果 ...
- sklearn学习8-----GridSearchCV(自动调参)
一.GridSearchCV介绍: 自动调参,适合小数据集.相当于写一堆循环,自己设定参数列表,一个一个试,找到最合适的参数.数据量大可以使用快速调优的方法-----坐标下降[贪心,拿当前对模型影响最 ...
- Auto ML自动调参
Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...
- dbms_sqltune.report_sql_monitor 自动调优
--创建 dbms_sqltune.create_tuning_task ; --执行 dbms_sqltune.execute_tuning_task; --产看创建的task 和 status S ...
- html实现点击章节自动调到开头
#转载请联系 原理是用id的值结合a链接实现锚点效果.比较简单,直接放一段代码好了. <!DOCTYPE html> <html lang="en"> &l ...
- 一个很笨的方法,写脚本来实现自动调dmp,找有用的数据
很久很久以前用到的方法, 方法挺笨的,但是算是比较实用吧. 全自动的调试dmp,最后只要结果. 谁用得着就给谁看吧. 这里需要两个脚本 1:启动脚本,是一个批处理文件,用来启动调试器,来加载dmp和调 ...
随机推荐
- (一)esp32开发环境搭建(VSCode+IDF实现单步调试)
保姆级手把手教学视频 https://www.bilibili.com/video/BV1RL411A7CU 前言 因为碰上一个学长,跟他聊了会儿天,推荐我做一点物联网的项目,想来想去,那就用WiFi ...
- java-前端之HTML
--html网页简单使用 1.html网页的基本标签 <!doctype html><!-- 声明网页版本 --> <html><!-- 唯一的跟元素 --& ...
- 小技巧---eclipse 全选lib jar包
按住shift键,点击第一个jar包,然后点击最后一个jar包,就全选了所有jar包,然后添加build path 添加到类路径
- HandInDevil 的头发 (分 块)
题面 H a n d I n D e v i l \rm HandInDevil HandInDevil 的头发很油,因此随时有跳蚤跳上 H a n d I n D e v i l \rm HandI ...
- Postfix别名邮件与SASL验证
Postfix别名邮件与SASL验证 环境简介 系统: CentOS 8.3.2011 软件包: postfix-2:3.3.1-12.el8.x86_64 cyrus-sasl-2.1.27-5.e ...
- 【java】学习路径27-HashSet、TreeSet,HashMap
学习路径20-27的所有源代码都可以在此下载 https://www.aliyundrive.com/s/cg8jTRbg6vy HashSet.TreeSet中,Set表示集合,特性在于:无序的.不 ...
- Can't pickle local object '_createenviron.<locals>.encodekey'报错解决
关于selenium传参报错问题,用下面是报错信息: Traceback (most recent call last): File "D:/code/read_book/main.py&q ...
- Linux或Docker里安装minio / Docker中安装h5ai
此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...
- KingbaseES V8R6集群外部备份案例
案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...
- KingbaseES集群部署工具安装
关键字: KingbaseES.Java.ClientTools 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows XP ...