我們?cè)趶氖?span style="">STM32單片機(jī)的應(yīng)用開發(fā)及調(diào)試過程中,往往會(huì)碰到各類異常。其中有不少比例的問題跟電源有關(guān)。對(duì)于一個(gè)電子產(chǎn)品而言,電源部分很關(guān)鍵、很重要,但在實(shí)際開發(fā)調(diào)試中,我們偶爾會(huì)有意無(wú)意的忽視它。這里分享幾個(gè)實(shí)際案例,以加強(qiáng)刺激,加深印象。
畢竟因?yàn)殡娫磫栴}可能導(dǎo)致的異常很多很多,這里分享幾個(gè)案例算是拋磚引玉,希望大家在調(diào)試中對(duì)電源方面加以重視。個(gè)人認(rèn)為,往往電源出問題時(shí)導(dǎo)致的異常時(shí)并不太好分析,多數(shù)時(shí)候異常表現(xiàn)得更為詭異或沒章法?!?span style="">注:下面提到的案例中異常原因都與電源有關(guān),但并不是說出現(xiàn)類似異常時(shí)一定是電源的原因?!?/span>
下面主要分享幾個(gè)基于STM32應(yīng)用的案例。
案例1:ADC功能異常
某人使用STM32芯片的ADC功能,發(fā)現(xiàn)ADC數(shù)據(jù)完全不對(duì)。反復(fù)核對(duì)供電、ADC硬件線路、來回驗(yàn)證ADC相關(guān)軟件配置都沒能解決問題,讓人抓狂。后來一個(gè)個(gè)檢查芯片的電源腳的連接情況,竟然發(fā)現(xiàn)VDDA沒有連接電源。
案例2:STM32芯片的PLL無(wú)法正常工作
有人使用STM32F373開發(fā)產(chǎn)品,每次開啟PLL都不能正常運(yùn)行。如果不跑PLL,即運(yùn)行基本HSI或HSE都沒有問題。首先懷疑是軟件配置方面的問題,可是即使使用ST官方的標(biāo)準(zhǔn)庫(kù)和CUBE庫(kù)中的例程測(cè)試也還是有問題。初步確認(rèn)和檢查,供電電源穩(wěn)定,一度懷疑芯片品質(zhì)問題。幾經(jīng)反復(fù)比較測(cè)試驗(yàn)證,后來發(fā)現(xiàn)MCU芯片的一個(gè)VDDA腳處于懸空狀態(tài),可靠接上電源后問題解決。因?yàn)镻LL的正常工作也離不開VDDA的供電。
案例3:跟USB主機(jī)的VBUS引腳相連的GPIO容易壞掉
某客戶反映STM32芯片某管腳使用一陣子后出現(xiàn)電平異常,進(jìn)一步證實(shí)為該管腳壞損。大致使用情況如下面原理圖所示:
STM32芯片從外部USB主機(jī)的VBUS取電。外部VBUS的供電經(jīng)過一個(gè)LDO后再給STM32 MCU供電,同時(shí),MCU的另外一個(gè)GPIO【PA9】與外部VBUS直接相連。
這個(gè)電路咋看上去貌似沒什么問題。但由于外部VBUS 5v電源先要經(jīng)過LDO再供給MCU,這里就有個(gè)延時(shí),而GPIO PA9腳則是與VBUS直連。這就導(dǎo)致接上USB插頭的一定時(shí)間內(nèi),VDD=0v,GPIO PA9的Vin=5v,進(jìn)而出現(xiàn)VIN[5v]> (VDD+4.0v)的狀況,超過了MCU芯片數(shù)據(jù)手冊(cè)規(guī)定的相應(yīng)GPIO最大輸入電壓。
所以在開發(fā)調(diào)試過程中,要注意遵守芯片的各個(gè)電源特性參數(shù)。
案例4:從STM32F1系列芯片移植到STM32F4時(shí)功能異常
曾有工程師反映,之前用STM32F1系列芯片好好的,后來因?yàn)楫a(chǎn)品需要,改用STM32F2或STM32F4芯片后,發(fā)現(xiàn)芯片根本不能正常工作,即使最簡(jiǎn)單的程序也跑不順暢。后來發(fā)現(xiàn)其中有部分異常情況源于使用者沒有處理VCAP引腳。STM32F1系列芯片沒有外部VCAP引腳,而F2/F4等系列芯片有VCAP腳的,該類腳需外接合適的電容到地,以保證內(nèi)核供電的穩(wěn)定?!静糠?a target="_blank">STM8也有VCAP腳】
案例5:JLINK無(wú)法連接STM32目標(biāo)板
有人使用J-LINK調(diào)試STM32F071芯片的板子,通過JLINK與STM32F071目標(biāo)板進(jìn)行SWD連接,目標(biāo)板已經(jīng)供電。但發(fā)現(xiàn)不論是通過J-FLASH還是MDK,JLINK都沒法與目標(biāo)板連接上。
來回檢查SWD的4根連接線VDD、SWDIO、SWCLK、GND,沒有發(fā)現(xiàn)問題。因擔(dān)心J-LINK驅(qū)動(dòng)版本等問題,建議其使用STLINK進(jìn)行連接,即使用ST官方的STLINK UTILITY軟件工具也無(wú)法連接目標(biāo)板。建議客戶核對(duì)MCU芯片所有電源及管腳連接情況,最后發(fā)現(xiàn)有個(gè)負(fù)責(zé)給GPIO供電的電源腳VDDIO懸空,將其連接電源后,連接正常。
注:STM32系列中,有些芯片的電源部分,除了有VDD,VDDA、VDD_USB外,還有專門的VDDIO供電腳。本案例中,客戶是從STM32F1系列產(chǎn)品移植過來的,STM32F1系列芯片上是沒有VDDIO電源腳的,所以在移植到STM32F0芯片時(shí),硬件設(shè)計(jì)時(shí)忽視了這個(gè)VDDIO腳。
順便說下,整體上講,STM32不同系列間移植時(shí)軟硬件的兼容性還是很高的,尤其硬件管腳方面的兼容性。不同系列間相同腳位數(shù)的管腳安排的差異大多體現(xiàn)在與電源相關(guān)的管腳,這點(diǎn)要特別注意。另外提醒下,部分STM8芯片也有這個(gè)VDDIO腳。
案例6:STM32芯片總時(shí)不時(shí)燒掉
曾經(jīng)有人反映在使用STM32開發(fā)產(chǎn)品中,時(shí)不時(shí)發(fā)現(xiàn)STM32主芯片壞掉。后來幾經(jīng)測(cè)試驗(yàn)證發(fā)現(xiàn)是原來前端的電源供電芯片品質(zhì)不行,一定比例的電源輸出器件輸出異常導(dǎo)致STM32遭殃,進(jìn)而影響整個(gè)產(chǎn)品功能。
簡(jiǎn)單羅列以上幾個(gè)案例,權(quán)當(dāng)提醒。這些案例事后在這里寫起來是輕飄飄的幾句話,不過在沒找到原因之前往往并不那么輕松,有時(shí)可能折騰很久才解決問題。
====================================
2、利用QuadSPI外擴(kuò)串行NOR Flash的實(shí)現(xiàn)
3、一個(gè)跟內(nèi)存分配有關(guān)的DMA異常話題
5、獲取ST MCU技術(shù)資料及相關(guān)支持的方式與途徑
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論