这两天有个朋友拿一台原装整机和几片全代码予以取代原装显示屏的产品过来分析。该全代码烧录过的显示模组采用的返修JD9365DA的驱动IC,原装屏采用的是ILI9881C的驱动IC,出现的异常现象是JD9365DA全代码烧录后装整机仍无法点亮。
经过抽丝剥茧比对ILI9881C驱动代码中有对01页的0x22寄存器进行写操作,该写操作模拟添加至JD9365DA 1129初始化代码前会导致无法点亮,实验了多个寄存器发现不只0X22寄存器会导致无显只要不在JD9365DA OTP Table表内的寄存器写操作都会导致异常。
相当于整机会对原装屏进行初始化,初始化代码中含有对0x22寄存器的操作(全代码烧录过的显示模组无法响应ILI9881C初始化内的页面操作,只能当成对JD9365DA 默认0页的0x22寄存器操作)导致的无显。![在这里插入图片描述](https://img-怎样避免“吃代码”这种现象,只能避开有冲突的驱动IC(如ILI与JD部分IC存在冲突)或寻找多种驱动IC的原装屏通过识别硬件ID或软件ID进行Copy复制过来ID后再进行全代码烧录。特别注意下,如果开机可以点亮的话要确认下按整机Power键是否还可以正常唤醒。
还有另外一种另类的解决方案需要实践,如全代码OTP时初始的密钥设置为“Enable SRD CMD and all in-house registers”,结束时密钥更改为"Enable STD CMD and Page0~3 registers",避免其他初始化代码干扰起冲突。
值得一提的是禹创有一颗ER68576CB001(替代88577等)可以不识别21,36等通用指令,只认11 29 28 10且带有分辨率升降功能,方便全代码烧录兼容其他驱动IC不用更改主板驱动进行无缝切换。