准备工作:

  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. 使用 Golang 代码生成图表的开源库对比

    本文的目标读者 对用 Golang 代码生成折线图.扇形图等图表有兴趣的朋友. 本文摘要 主要介绍 Go 中用以绘图的开源库,分别是: GitHub - wcharczuk/go-chart: go ...

  2. django中的自定义分页器

    1.什么是自定义分页器 当我们需要在前端页面展示的数据太多的时候,我们总不能将数据展示在一页上面吧!这时,我们就需要自定义一个分页器,将数据分成特定的页数进行展示,每一页展示固定条数的数据! 2.为什 ...

  3. java学习第一天.day04

    顺序结构 代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. 选择结构 选择结构也被称为分支结构.代码根据逻辑 ...

  4. 查看 npm 的全局安装依赖包

    在控制台中输入以下指令可以直接查看 npm 全局安装的依赖包: npm list -g --depth 0

  5. 模拟赛:树和森林(lct.cpp) (树形DP,换根DP好题)

    题面 题解 先解决第一个子问题吧,它才是难点 Subtask_1 我们可以先用一个简单的树形DP处理出每棵树内部的dis和,记为dp0[i], 然后再用一个换根的树形DP处理出每棵树内点 i 到树内每 ...

  6. webgl(three.js)实现室内三维定位,3D定位,3D楼宇bim、实时定位三维可视化解决方案——第十四课(定位升级版)

    序: 还是要抽出时间看书的,迷上了豆豆的作品,最近在看<天幕红尘>,书中主人公的人生价值观以及修为都是让我惊为叹止.很想成为那样的人,但是再看看自己每天干的事,与时间的支配情况,真是十分的 ...

  7. KingbaseES 命令行安装数据库

    关键字: ​ KingbaseES.Linux.x86-64 一.安装前环境准备 1.硬件环境支持 ` 金仓数据库管理系统KingbaseES支持X86.X86_64,同时支持龙芯.飞腾等国产CPU硬 ...

  8. Linux_etc-shadow文件总结

    shadow 文件权限 $ll shadow ---------- 1 root root 1131 Aug 6 12:04 shadow 可以看出只有root可以操作它,普通用户执行passwd,内 ...

  9. 《Win10——如何进入高级启动选项》

    Win10--如何进入高级启动选项       第一种方法: 管理员命令提示符输入如下代码,自动重启并进入高级启动选项. shutdown /r /o /f /t 00     第二种方法: 1. 管 ...

  10. Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析

    一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...