【嵌入式開發問題彙總】硬件篇

此文是我很久之前的一個計劃,目的是讓大家可以在別人的錯誤中有所收穫。

寫下我和實驗室小夥伴以及一些網友遇到的問題和分析。大家可以遇到問題也可以在博文下留言。當然,本人能力有限,錯漏之處請直接提出。希望這篇博文能爲所有喜歡嵌入式的朋友答疑解惑!


目錄

事件1:鉭電容爆炸

事件2:IIC設備工作不正常

事件3:延時/定時不準

事件4:單片機反常發熱

事件5:電感嘯叫

事件6:舵機失控

事件7:串口不工作/收發亂碼

事件8:USB設備連接故障

 


事件1:鉭電容爆炸

描述:電路板上的鉭電容在上電之後冒煙並燒燬。

分析:鉭電容燒燬情況主要有兩個:一種是極性反接,新手焊板容易出這種問題。因爲鉭電容的極性標註和一般的二極管相反,有些人想當然了,鉭電容標有豎線的一端是接高壓側的。此外,超過耐壓值也是引起鉭電容失效的一個原因,圖中電容清晰的標出耐壓值爲16V。由於廠家問題,有時候真實耐壓值會有所出入,且正常工作是,電路中的紋波(尤其是開關電源)也會導致短時間電壓超過耐壓。在設計使用時。最好遵循耐壓值大於兩倍使用電壓的思想。筆者曾經使用過一個焊有10V耐壓鉭電容的電機驅動模塊,接上3S電池(滿電12.6v)的瞬間就boom了一臉。

 

事件2:IIC設備工作不正常

描述:接入的IIC設備有時無法通過初始化,有時用手觸摸金屬部分之後可以正常工作。

分析:IIC設備工作不正常多爲驅動算法的問題,但是如果有遇到手觸摸之後可以正常。有可能是硬件的問題。大家會注意到,許多模塊的SCL和SDA總是帶着兩顆上拉電阻,這是因爲IIC的硬件電路中,可以許多設備掛在一條IIC總線上,時鐘SCL與數據SDA兩條線是開漏輸出的,沒有上拉電阻的幫助,無法輸出高電平。如果硬件上沒有設計上拉電阻,許多單片機的IO帶有上拉功能,但是再許多高速IIC設備上,IO的上拉能力不足以使得電平拉高,所以還是建議大家爲IIC總線配上上拉電阻,阻值一般爲4.7K到10K。在配有上拉電阻的IIC設備上,仍出現此類問題,建議使用萬用表檢查上拉電阻是否虛焊。

 

事件3:延時/定時不準

描述:寫了一個點燈程序,但是閃爍的頻率明顯慢於程序設定值。

分析:排除程序問題,故障有可能出現在晶振上,有條件的可以使用示波器測量晶振的輸出是否爲正弦波。若無法測出正弦波(這個波形有可能不是很標準,是因爲部分示波器的帶寬不夠),有可能外部晶振停振,正常工作的晶振應該輸出標稱頻率的正弦波,其直流偏置爲Vcc的一半。沒有示波器的同學,可以使用萬用表測量晶振兩腳的對地電壓,若一個接近0,另一個接近Vcc,大概率說明晶振未能起振。多種原因可導致晶振停振。比如起振電容不匹配,引腳虛焊,晶振內部晶體破碎等等。當外部時鐘源失效時,部分單片機會選擇使用內部RC振盪時鐘源。這個時鐘源一般爲低速時鐘,所以運行速度會變慢。

 

事件4:單片機反常發熱

描述:單片機在運行時發熱嚴重,甚至燙手。

分析:這個屬於常見問題,實驗室最喜聞樂見的就是燒芯片了,反常發熱,但仍在工作。這個時候有兩種可能,一種是芯片內部出現局部短路,有可能是靜電損傷(尤其是在冬天),也可能某個IO遭受了高壓衝擊(筆者在MSP430,MSP432與STM32的芯片上都遇到過)。這種情況較難排除,只能在確認硬件無誤的情況下更換芯片,此外,還有一種可能,就是一些使用開關電源直接供電的朋友們,檢查一下電源的紋波。別紋波100mV還在用!建議使用LDO。正常的STM32芯片使用萬用表測試時,阻抗大約爲5~30Ω,當然電源線上掛載其他用電設備的電阻會偏小一些。

 

事件5:電感嘯叫

描述:用於開關電源的電感發出尖銳聲音。

分析:用於開關電源的功率電感本質是一個線圈,和喇叭的構造相似。發出嘯叫,說明電流不小而且有點工作不正常,且電流脈動頻率在聽覺範圍20-20KHz之間,有可能是電感接近飽和了。如果設計的開關電源紋波很大,可以考慮更換一顆感值更大的電感。此外,一體成型電感(如圖)的效果比線圈外露的效果要好,具有更好的EMC。

 

事件6:舵機失控

描述:舵機在工作時突然大幅度擺動,回到歸零位置。

分析:排除算法問題後,考慮供電問題,舵機的工作電流較大,MG996/995在堵轉或高負載情況下很容易達到1A以上,這使得普通的USB口供電不穩定(電腦的USB過流保護約爲500mA)普通的充電寶也會因爲內部的保護電路而採取一些保護措施。舵機電壓過低,會導致內部伺服電路異常,繼而出現擺動,歸零等誤動作。所以爲確保舵機正常工作,建議使用穩定的,大功率的電源供電(如高倍率航模電池,大功率開關電源等)。

 

事件7:串口不工作/收發亂碼

描述:串口不能正常收發消息,或持續收發亂碼數據

分析:排除算法問題後,先檢查一個新手常犯的錯誤:TXD與RXD的對接問題:主機的TXD(發送端)應該連接從機的RXD(接收端),反過來主機的RXD(接收端)應該連接從機的TXD(發送端),如下圖。此外,還需要注意兩端的邏輯電平是否一致,若不一致,需要增加電平轉換電路。

 

事件8:USB設備連接故障

描述:嵌入式設備無法正常連接到PC,連接後無提示或提示“有一個USB設備工作不正常”

分析:排除算法問題後,首先看設備是直連芯片還是使用了一些串口轉USB的芯片。如果是使用串口轉USB的芯片,則應重點檢查芯片是否工作正常,然後檢查是否在PC正確安裝了該芯片的驅動程序。如果是設備直連芯片,則主要觀察D+.D-是否等長佈線。由於USB的通訊頻率一般很高,差分線需要嚴格保證相位對齊。由於線長差異導致的信號相位延遲會導致通訊失敗。在設計PCB階段,就應做好阻抗匹配,等長佈線,且佈線儘可能短。不要與其他高頻信號線靠近平行放置。

 


如果以上的問題與解決方案對你有幫助,請爲我在右上角(PC端)/右下角(移動端App)點一下贊,謝謝!

如有問題,可以私信交流或直接在評論區留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章