准备工作:

  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烧录的更多相关文章

  1. hyperopt自动调参

    hyperopt自动调参 在传统机器学习和深度学习领域经常需要调参,调参有些是通过通过对数据和算法的理解进行的,这当然是上上策,但还有相当一部分属于"黑盒" hyperopt可以帮 ...

  2. 自动调参库hyperopt+lightgbm 调参demo

    在此之前,调参要么网格调参,要么随机调参,要么肉眼调参.虽然调参到一定程度,进步有限,但仍然很耗精力. 自动调参库hyperopt可用tpe算法自动调参,实测强于随机调参. hyperopt 需要自己 ...

  3. 转://Oracle undo 自动调优

    Oracle 10gr2的后续版本中添加了UNDO信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:1. 当UNDO TABLESPACE为 fix ...

  4. 3D打印机如何添加自动调平功能

    原理说明 Kossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:http://learn.makerlab.me/guides/11 3d打印打印时最重要的是第一层的效果,如果 ...

  5. sklearn学习8-----GridSearchCV(自动调参)

    一.GridSearchCV介绍: 自动调参,适合小数据集.相当于写一堆循环,自己设定参数列表,一个一个试,找到最合适的参数.数据量大可以使用快速调优的方法-----坐标下降[贪心,拿当前对模型影响最 ...

  6. Auto ML自动调参

    Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...

  7. dbms_sqltune.report_sql_monitor 自动调优

    --创建 dbms_sqltune.create_tuning_task ; --执行 dbms_sqltune.execute_tuning_task; --产看创建的task 和 status S ...

  8. html实现点击章节自动调到开头

    #转载请联系 原理是用id的值结合a链接实现锚点效果.比较简单,直接放一段代码好了. <!DOCTYPE html> <html lang="en"> &l ...

  9. 一个很笨的方法,写脚本来实现自动调dmp,找有用的数据

    很久很久以前用到的方法, 方法挺笨的,但是算是比较实用吧. 全自动的调试dmp,最后只要结果. 谁用得着就给谁看吧. 这里需要两个脚本 1:启动脚本,是一个批处理文件,用来启动调试器,来加载dmp和调 ...

随机推荐

  1. Redis入门到实战

    一.Redis基础 Redis所有的命令都可以去官方网站查看 1.基本命令 keys * 查找所有符合给定模式pattern(正则表达式)的 key .可以进行模糊匹配 del key1,key2,. ...

  2. .NET WebAPI 采用 IDistributedCache 实现分布式缓存过滤器 Redis 模式

    分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护. 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时. 与其 ...

  3. Excel 逻辑函数(二):AND 和 OR

    前言 AND 函数是且:OR 函数是或.AND 函数中的条件必须都满足才返回 TRUE:OR 函数中的条件只要满足一个就返回 TRUE.AND 和 OR 的参数最多允许有 30 个. AND [题目] ...

  4. Linux 基于源码安装 Redis

    1.下载 Redis: 前往 Redis 官网复制 Redis 相应版本的下载链接,到终端下载 2. 进入到指定目录, 下载 redis.tar.gz 包,运行 wget + 复制的下载链接  例如: ...

  5. 2022年NISP考试时间|NISP一级考试时间|NISP|网安伴|NISP管理中心

    NISP一级~~国家信息安全水平考试一级证书 NISP一级证书是由中国信息安全测评中心颁发的国家级认证证书.面向全社会各行各业通用的信息安全意识普及和信息安全保护知识培训,是在任何单位和工作中都应具备 ...

  6. ARC120D Bracket Score 2 (模拟)

    题面 给一个长度为 2 N 2N 2N 的序列 A A A,定义一个长度为 2 N 2N 2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i , j i,j i,j, ∣ A i ...

  7. 第五十二篇:webpack的loader(三) -url-loader (图片的loader)

    好家伙, 1.什么是base64? 图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要 ...

  8. Altium Designer 18学习

    目录 目录 快捷键 通孔 敷铜 修改铜皮与导线之间的间隔 去除指定敷铜区域 DRC设计规则检查问题: 快捷键 EJC 快速跳转到器件 M 移动 CTRL+M 测量距离 通孔 敷铜 放置多边形平面 -- ...

  9. git hooks在业务中的使用

    起因 最近公司项目发生了一起线上事故,最后排查下来是配置文件的问题.项目里application.yml文件内会用@build.time@记录打包时的时间,但是这个写法是build-helper-ma ...

  10. 以TrueType为例谈字形描述

    以TrueType为例谈字形描述 作者:哲思 时间:2022.9.17 邮箱:zhe__si@163.com GitHub:zhe-si (哲思) (github.com) 一.前言 在深入理解&qu ...