負載電流的浪一催 系統(tǒng)便莫名跑飛
時間有限,而且電量低也許就是出現(xiàn)這個故障的一個條件呢,所以我沒有打火充電,而是繼續(xù)測試了下去。后視鏡展開-后視鏡閉合-后視鏡展開......哎呀,竟然跑飛了!
本文引用地址:http://butianyuan.cn/article/201903/398125.htm居然跑飛了!我知道會有Bug,可萬萬沒想到會是這么大的Bug!對于嵌入式系統(tǒng)設(shè)計人員來說,代碼結(jié)構(gòu)復雜造成的誤解、本身邏輯設(shè)計上有錯誤、語句實現(xiàn)上有漏洞這些都不可怕,很容易就能解決掉。但是跑飛,莫名其妙的跑飛就非常讓人頭疼了。
春天是一個生命力獨享風流的季節(jié),天地之間充斥著生的豪情,長風沛雨,艷陽明月,大地和其上的生靈們被喜悅充滿,神采紛揚。身邊佳人在側(cè),微風輕拂,而我卻沒有了欣賞的興致。
我本能地意識到,應(yīng)該是本就比較低的電池電量被拉低,造成了車身控制器的欠壓復位,一復位,后視鏡驅(qū)動自然就斷了,自然就展開不到頭或者折疊不到頭了??墒菫槭裁幢群笠曠R電機還要耗電的其它負載啟動時,沒有發(fā)生這種跑飛復位呢?應(yīng)該是其它負載驅(qū)動電路做得比較好,而后視鏡電機驅(qū)動電路沒有處理好。
這就意味著必須改電路,而硬件改版至少需要大半個月的時間,這就跟領(lǐng)導和車廠保證的時間點產(chǎn)生了矛盾,為了拖延時間,要么實話實話(需要分析并修改電路),要么扯謊。而這個問題其實我之前就發(fā)現(xiàn)過,只是沒有重視,因為我的疏忽,不僅耽誤將近一個月時間,還惹出那么多口水功夫,一念至此,我的心情更加沉郁了。
5
和領(lǐng)導簡短匯報了情況之后,領(lǐng)導跟我商量半天,意識到確實應(yīng)該就是硬件設(shè)計的問題,于是令我迅速回家,同時安排家里的同事帶著后視鏡負載進行測試,看看能不能復現(xiàn)故障。
在返程的路上,家里的同事一路跟我反饋著測試結(jié)果,采用電量較低的鉛酸蓄電池做為電源時,啟動包括后視鏡電機在內(nèi)的各種負載時都會造成供電電源電壓下拉個兩v左右,但是MCU的5v供電電壓不會受到絲毫影響,所以不會出現(xiàn)我認為的“欠壓復位”。最后,家中這位負責硬件設(shè)計的同事李工試圖把鍋重新甩回到我的頭上,讓我再好好看看代碼。
好好看看代碼?你以為代碼像鄰家的大妹子一樣,那么好看嗎?
回到公司,灑家直奔測試臺,李工正嚴陣以待??次覛⑦^來之后,他調(diào)出了示波器測出的已經(jīng)存儲在電腦上的12v和5v供電電壓的波形以及出現(xiàn)在MCU復位管腳上的復位脈沖波形,悠悠地對我說:“要不咱倆一塊測測?”
灑家眉頭一皺,“這是出現(xiàn)故障時的波形還是正常運行時的波形?”李工嘴角一咧,“自然是出現(xiàn)故障時的波形,要不然呢!”
完了,事情和預想的竟然不一致!憑著想當然的猜測,我從C市直接返回了公司,如果真的是軟件問題,這么大一個烏龍,我怎么向領(lǐng)導交代?!
站在一旁的領(lǐng)導拍了拍我的肩膀,溫和地對我們倆說:“板子確實是在操作后視鏡這個電流并不算太大的負載時復位了,天雷君,你再檢查一下軟件的問題,實在不行找一下MCU廠家的技術(shù)支持。李工,你再好好測一下信號地、功率地上的波形??纯词遣皇前训靥Ц吡??!?/p>
6
按照領(lǐng)導的吩咐,我找到了MCU廠家的技術(shù)支持,描述了一番問題之后,這位身經(jīng)百戰(zhàn)的技術(shù)支持跟我聊了聊這顆處理器設(shè)計上的一些細節(jié)信息,最后向我提議,讓我寫一段測試代碼,確認復位的真正原因。該MCU支持好幾個復位源,復位后會有一個寄存器存儲復位源信息,可以通過這個寄存器確認復位的真正原因。
掛掉電話后,我老老實實地寫了段測試代碼,最后確認,確實就是欠壓導致的復位!我把這個信息反饋給領(lǐng)導后,領(lǐng)導和我交流了片刻,然后帶著我去找李工。
找到李工時,他正戴著耳機,面含著笑意刷著手機,領(lǐng)導問起對地波形的測量情況,他支吾半天,老老實實地承認還沒有測試。于是我們一行三人跑到工作臺那里開始測試。
后視鏡折疊-后視鏡展開-后視鏡折疊......終于,故障再現(xiàn)了,在那一瞬間,一個清晰的被抬高了的電壓出現(xiàn)在示波器的界面上。
實錘了,事實證明,確實是后視鏡驅(qū)動電路的原因,導致了后視鏡電機啟動時,有時會把地給抬高,從而導致VCC-GND之間的電壓差不滿足MCU的供電要求,觸發(fā)了MCU的欠壓復位。
修改倒很簡單,領(lǐng)導在后視鏡供電電源和地之間加了兩個大電容,測試上百次,故障不再復現(xiàn),搞定!世間事每每如此,找原因時費盡心機,解決時卻毫不費力!
后記
牛掰的工程師不僅可以發(fā)現(xiàn)問題,更可以解決問題。我發(fā)現(xiàn)了問題,領(lǐng)導解決了問題,事實證明,領(lǐng)導的水平是比我高呢,還是比我高呢:)
評論