调试,是一件有挑战的事情
如果你不是工程師,你應該享受不到加班調試的樂趣吧,我記得在大學的時候,我第一次調試I2C時序,當時用的芯片是24C02的RTC芯片,用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林工對我們的大力支持。
掃碼或長按關注
回復「?籃球的大肚子」進入技術群聊
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的调试,是一件有挑战的事情的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程 | 用多个线程模拟实现银
- 下一篇: 图片验证码代码