劉軍(正點原子)
【作者簡介】劉軍(正點原子):無協第25屆技術總監,現就職于佳都新太科技股份有限公司,任電子工程師一職。對STM32有深入的研究,曾出版著作《例說STM32》,曾受邀到ST公司演講,自己研發的STM32開發板在淘寶上銷量火爆。
一、問題現象
功能:電源控制板可以單獨控制5V/12V/24V三路電壓的輸出,并測量其電流和電壓。
電源控制板所選CPU為STM32F103C8T6@72Mhz.
電源控制板所選繼電器為:24V@12mA.
電源控制板所有電解電容均為2200uF.
電源控制板2.0PCB如下圖所示:
圖1
下面是地線回路:
圖2
打樣焊接后,測試時發現如下問題:
1,stm32控制K3導通(K3控制12V的輸出。),導致STM32異常重啟。重啟2~3次之后,可以正常控制K3導通。
2,K3導通后,在VCC12處人為短路,導致STM32重啟,但是電流顯著增加(之前為20ma,之后為350ma),同時STM32發熱嚴重。但是STM32運行正常(持續觀察數分鐘無異常)。
二,原因分析
先看問題2.
根據現象我進行了如下檢測:
1,STM32正常工作,在電源輸入口直接短路12v,現象不能重復。
2,STM32正常工作,將K3強行導通,在12V輸出口短路,現象被重復。
3,STM32進B00TLOADER模式,將K3強行導通, ,在12V輸出口短路,現象被重復。
仔細檢查PCB后,發現問題可能是出在地線回路,如圖3所示:
圖3
我這樣設計的本意是VSSA的地和STM32的其他地是分開的,為了ADC準確,我特地把VSSA和模擬部分的地連在一起,而STM32的其他地則連到另外一個地線網絡,如圖3所示。
采取措施如下,如圖4所示:
圖4
在A處,將底層的地線割開,在B處,用焊錫連接兩個地線網絡。在做同樣測試,未重現問題2,而問題1依舊。問題2得到解決。
再看問題1.
根據問題2的解決方法,問題1的問題,也有可能出在地線。
在解決問題2之后,地線網絡分為上下兩層。沒有連接在一起(沒有形成地線環)。我認為干擾可能來自ULN2003,于是把ULN2003的地線割開,直接連接到電源輸入點的地。如圖5所示:
圖5
在C處割開,斷開ULN2003與下方地網的連接,直接連接在地線輸入端。
經測試,問題依舊。
進一步查看,發現圖6所示電流圈:
圖6
這樣5V-》3.3V-》GND回路就形成了一個環,并且剛好將12V的輸出圈在里面,當輸出短路的時候,瞬間電流變化很大,諧波很多,對環路會形成很大干擾。因此導致STM32死機。(這里可以預測5V短路應該也會導致STM32死機,只是如果5V短路了,STM32就沒電源了,不好觀測現象)。
解決辦法如圖7:
圖7
在D處,將地線割斷,直接從E處飛線連接F處。再測試,問題得到解決。
至此,問題1得到解決。
此時,更進一步,測試短接24V輸出,產生很大火花(電容2個2200uF并聯,比較足),同時導致STM32死機,原因同樣是形成了電源回路,導致死機。
解決辦法如圖8:
圖8
在G處,將地線網絡斷開,連接H處和E處。再測試,24V短路也無法導致STM32重啟。問題得到解決。
二,總結
1. 對STM32的內部電源理解薄弱,想當然的認為VSSA和GND無任何聯系。
2. 雖然參加了電磁兼容的培訓,但是實際經驗嚴重不足,導致設計缺陷明顯。
3. 說某個芯片的看干擾性能不行,多半是自己電路設計不行。電路設計的差,再好的芯片也是百搭。
4. 問題解決期間,試過在PCB下面放一塊銅板(覆銅PCB),同時連接到GND,發現對問題解決沒多大幫助(問題依舊),不要指望覆銅解決所有干擾的問題.