1. 程式人生 > >STM32應用過程中與電源相關的案例分享

STM32應用過程中與電源相關的案例分享

我們在從事STM32微控制器的應用開發及除錯過程中,往往會碰到各類異常。其中有不少比例的問題跟電源有關。對於一個電子產品而言,電源部分很關鍵、很重要,但在實際開發除錯中,我們偶爾會有意無意的忽視它。這裡分享幾個實際案例,以加強刺激,加深印象。

畢竟因為電源問題可能導致的異常很多很多,這裡分享幾個案例算是拋磚引玉,希望大家在除錯中對電源方面加以重視。個人認為,往往電源出問題時導致的異常時並不太好分析,多數時候異常表現得更為詭異或沒章法。【注:下面提到的案例中異常原因都與電源有關,但並不是說出現類似異常時一定是電源的原因。】

下面主要分享幾個基於STM32應用的案例。

案例1:ADC功能異常。

某人使用STM32晶片的ADC功能,發現ADC資料完全不對。反覆核對供電、ADC硬體線路、來回驗證ADC相關軟體配置都沒能解決問題,讓人抓狂。後來一個個檢查晶片的電源腳的連線情況,竟然發現VDDA沒有連線電源。

案例2:STM32晶片的PLL無法正常工作。

有人使用STM32F373開發產品,每次開啟PLL都不能正常執行。如果不跑PLL,即執行基本HSI或HSE都沒有問題。首先懷疑是軟體配置方面的問題,可是即使使用ST官方的標準庫和CUBE庫中的例程測試也還是有問題。初步確認和檢查,供電電源穩定,一度懷疑晶片品質問題。幾經反覆比較測試驗證,後來發現MCU晶片的一個VDDA腳處於懸空狀態,可靠接上電源後問題解決。因為PLL的正常工作也離不開VDDA

的供電。

案例3:跟USB主機的VBUS引腳相連的GPIO容易壞掉。

某客戶反映STM32晶片某管腳使用一陣子後出現電平異常,進一步證實為該管腳壞損。大致使用情況如下面原理圖所示:


STM32晶片從外部USB主機的VBUS取電。外部VBUS的供電經過一個LDO後再給STM32 MCU供電,同時,MCU的另外一個GPIO【PA9】與外部VBUS直接相連。

這個電路咋看上去貌似沒什麼問題。但由於外部VBUS 5v電源先要經過LDO再供給MCU,這裡就有個延時,而GPIO PA9腳則是與VBUS直連。這就導致接上USB插頭的一定時間內,VDD=0v,GPIO PA9的Vin=5v,進而出現VIN[5v]> (VDD+4.0v)

的狀況,超過了MCU晶片資料手冊規定的相應GPIO最大輸入電壓。


所以在開發除錯過程中,要注意遵守晶片的各個電源特性引數。

案例4:從STM32F1系列晶片移植到STM32F4時功能異常

曾有工程師反映,之前用STM32F1系列晶片好好的,後來因為產品需要,改用STM32F2或STM32F4晶片後,發現晶片根本不能正常工作,即使最簡單的程式也跑不順暢。後來發現其中有部分異常情況源於使用者沒有處理VCAP引腳。STM32F1系列晶片沒有外部VCAP引腳,而F2/F4等系列晶片有VCAP腳的,該類腳需外接合適的電容到地,以保證核心供電的穩定。【部分STM8也有VCAP腳】



案例5:JLINK無法連線STM32目標板。

有人使用J-LINK除錯STM32F071晶片的板子,通過JLINK與STM32F071目標板進行SWD連線,目標板已經供電。但發現不論是通過J-FLASH還是MDK,JLINK都沒法與目標板連線上。

來回檢查SWD的4根連線線VDD、SWDIO、SWCLK、GND,沒有發現問題。因擔心J-LINK驅動版本等問題,建議其使用STLINK進行連線,即使用ST官方的STLINK UTILITY軟體工具也無法連線目標板。建議客戶核對MCU晶片所有電源及管腳連線情況,最後發現有個負責給GPIO供電的電源腳VDDIO懸空,將其連線電源後,連線正常。

注:STM32系列中,有些晶片的電源部分,除了有VDD,VDDA、VDD_USB外,還有專門的VDDIO供電腳。本案例中,客戶是從STM32F1系列產品移植過來的,STM32F1系列晶片上是沒有VDDIO電源腳的,所以在移植到STM32F0晶片時,硬體設計時忽視了這個VDDIO腳。

順便說下,整體上講,STM32不同系列間移植時軟硬體的相容性還是很高的,尤其硬體管腳方面的相容性。不同系列間相同腳位數的管腳安排的差異大多體現在與電源相關的管腳,這點要特別注意。另外提醒下,部分STM8晶片也有這個VDDIO腳

案例6:STM32晶片總時不時燒掉。

曾經有人反映在使用STM32開發產品中,時不時發現STM32主晶片壞掉。後來幾經測試驗證發現是原來前端的電源供電晶片品質不行,一定比例的電源輸出器件輸出異常導致STM32遭殃,進而影響整個產品功能。

簡單羅列以上幾個案例,權當提醒。這些案例事後在這裡寫起來是輕飄飄的幾句話,不過在沒找到原因之前往往並不那麼輕鬆,有時可能折騰很久才解決問題。