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