绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
调试,是一件有挑战的事情
2020-01-16 13:18:00

原文:

调试,是一件有挑战的事情mp.weixin.qq.com图标


如果你不是工程师,你应该享受不到加班调试的乐趣吧,我记得在大学的时候,我次调试I2C时序,当时用的芯片是24C02的存储芯片,用51单片机模拟I2C时序,怎么整也整不出来,时序这个东西,一通百通,一不通那就是几个通宵熬夜都有可能。


先量电压,量电压了看波形,波形反反复复的看了之后,就是没有从设备的应答信号,再去看看硬件设计,该上拉电阻的地方有没有接上上拉电阻。


关于上拉电阻和下拉电阻这个自行百度,可以理解为一个默认的能力把,就像弹簧默认是有一个力的,你需要一个>弹簧的默认力才能驾驭弹簧,上拉和下拉就是保持它的默认能力。


作为一个电子工程师,调试通信时序应该是基本操作,就好比,如果你是一个厨师,那么你会做蛋炒饭应该也是默认的能力。


我在TCL的时候,我就跟欢哥用一个单片机调试TVP5150的时序,那叫一个头疼,我们整整调试了一周。


如果你是一个app端的开发码农,哪里有问题,就在哪里加日志,但是如果你是一个驱动工程师,如果你是一个单片机工程师,很多时候,你是没有办法加日志调试的,可以了就满声欢喜,不行就埋头苦干,即使是工作很多年的工程师,也只能给你一些建议,但是解决问题,还是需要你自己上阵杀敌。


如果你调试过很多低速的通信时序,经过多年的积累,慢慢有了经验,就觉得调试没什么意思了,那么你可以试试去调试下mipi时序看看。


好了,这里应该很多读者都是干这个的,你可能心里会想,调试mipi也是一把过,没有遇到什么非常棘手的问题,那么恭喜你,你此生路途平坦,没有遇到什么难事,可以说在工作上,没有遇到太难的事情,可能这也是一种缺憾,你享受不到加班孤独的快感,你也享受不到末班地铁的速度,你应该找点有挑战性的项目给自己的人生添砖加瓦。


……………………………………





这几天在调试一个mipi屏,刚开始一点头绪都没有,折腾了很久,一点图像也没有显示,我们量了电压,mipi供电的每一路电压,没有发现有什么不对的,而且,mipi通路,我们得出来的结果也是正确的,因为我们买的是开发板来验证开发,用我们的mipi时序init code驱动开发板的LCD,虽然显示不正确,但是是有图像出来的,从这个现象可以知道,mipi是工作了,主控应该通过mipi把一些鬼东西传送到了开发板的mipi屏幕上。所以也可以验证mpi这个通路是正常的。


经过一个晚上的折腾和排不了忧愁也解不了困难,我们一致把问题定位在发送指令的组包格式上。


mipi的长包和短包前面的包头都是不一样的。





mipi有两种组包模式


一种是DCS,一种是Generic模式,分别如上图所示。


不同的组包方式,发送的格式都不同,比如DCS模式,长包的包头是0x39,但是是Generic模式的话,长包的包头是0x29。


给大家看看mipi的波形,以及对应的解析

这个波形我相信很多人都没有见过




……………………………………

注意


个波形是的,所以不要记录个波形。

解析出来的下面111000……后,每个字节,低位在前,高位在后

个字节一定是0x87,所以每个包的mipi波形都是一样的。


我们一直想让屏厂IC的FAE给我们说明清楚他们用的是哪种格式,或者我们需要适配哪种格式的时序给屏IC,屏才能正常工作起来。但是屏厂的FAE不是很配合,他一直纠结是平台这边没有发送正确的时序给屏,但是是哪里没有正确,或者说需要发送什么正确的格式过去,他也不能给出一个肯定的回复。


我们后面,想到的两个思路就是


1、用一个已经点亮这个屏的平台过来,跟这个屏对接,用示波器抓取波形,再修改我们发送的指令时序。


2、跟屏厂借一个主板,可以跟屏模组调试时序的,用那个主板可以给屏发送指令,然后我们再用示波器抓波形,按照这个波形发送指令给屏。


3、屏IC的FAE过来支持我们,如果直接有工程师过来支持,我们就可以当面沟通,有问题也可以很快的解决了。


我们后来冷静下来开会梳理了下


1、复位脚,这个是很多屏都需要的,我们刚开始也花费了很长时间在复位脚上,后终于搞定了复位脚,可以正常开机复位了,所以这部分不是问题了。


2、使能脚,我们的屏没有这个,默认用硬件供电使能了,所以也排除了,但是rockchip的同学说有遇到其他屏使能脚上电时序不对亮不了的。


3、初始化参数,我们初始化参数是屏厂提供的,刚开始因为mipi模式不对,和屏厂不同,后面调整后和屏厂对应的,而且我们发现屏厂的IC是可以同时兼容两种模式的,我猜想他们也是想匹配所有的mipi模式。


4、11 29 指令,这个指令是用来开启屏幕的,就是所有初始化结束后,延迟几毫秒后就写入 1129 ,这个是mipi屏通用的指令,我们测量了波形,是正常的,但是屏幕还是没有任何东西。


5、mipi 时钟,这个因为我们用的是开发板,开发板驱动的也是mipi屏,这个应该没有问题,通过测量也没有问题。


6、屏对应的各路电压,这个前面pin to pin确认了好多次,也没有发现异常。


……………………………………


后的后,软件这边实在没有办法了,硬件在一次常规排查后发现屏有一路供电没有,硬件修改后,我拿到手上,说出了那句说了无数次的话,这是见证奇迹的时刻了,然后,看到android界面缓缓升起的时候,心中那个嗨啊~


所以,根本的问题是接线口的一个位置,焊接员没有焊接好导致电压没有传到屏上。


ps:感谢rockchip林工对我们的大力支持。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~