分享一點(diǎn)STM32硬件設(shè)計的經(jīng)驗
聲明:由于下述內(nèi)容不起眼但很重要,所以別的人肯定是不會寫出來告訴你的啦。
很多經(jīng)驗都是從錯誤中總結(jié)出來的,所以沒有實踐,哪會犯錯,沒有犯錯,哪來經(jīng)驗。
我曾經(jīng)設(shè)計了一個基于STM32的工控板,引出了JTAG調(diào)試接口,當(dāng)我把板子上的電源部分和STM32最小系統(tǒng)部分先焊好以后,先試一下JLINK V8能否順利下載程序,結(jié)果插上JLINK V8以后,JLINK的燈變成了紅色。正常的時候是綠色。所以我知道這里肯定有問題了。
JLINK燈變紅,據(jù)我以前的經(jīng)驗,一般就是復(fù)位引腳有問題。所以我用萬用表量了一下復(fù)位引腳的電壓,結(jié)果是0V。
我們看復(fù)位電路,正常情況下,復(fù)位以后,復(fù)位引腳應(yīng)該是高電平(3.3V)才對。
我首先懷疑電容C11是不是焊的短路了,因為貼片電阻相對直插電阻來說還是很小的,以前也有直接焊短路的時候。拿萬用表量了一下,結(jié)果沒有短路。
然后懷疑復(fù)位引腳是不是在焊接過程中,直接連了地了?用萬用表量了一下,沒有接地。這個錯誤又排除了。
不是以上兩個焊接電路引起的問題,我就開始想,這個電路和以前設(shè)計的STM32電路有什么區(qū)別,這個電路和以前的STM32電路的區(qū)別就是,這個電路的VDDA引腳和VREF+引腳沒有直接和VDD3.3V相連,而是連接了一個參考電壓芯片。用的參考電壓芯片是LM4040A30芯片,這是一個3.0V的參考電壓,連接電路如下:
用萬用表量了一下,結(jié)果那個3.0V的地方是1.76V,遠(yuǎn)遠(yuǎn)低于3.0V,所以我再一次打開了LM4040A30芯片的datasheet,找到了如下一段話。
這段話的意思就是要選擇合適的電阻Rs,不要讓Iz大于15mA,否則就會燒壞它。也就是穿過LM4040的電流不能大于15mA,我算了一下我現(xiàn)在用5.1K電阻的話,穿過LM4040的電流應(yīng)該是連1個mA都不到,所以我懷疑是不是這個限流電阻用的太大了,使得電壓基準(zhǔn)芯片工作不正常了。
那就倒算一下吧,假設(shè)現(xiàn)在LM4040A30正常,輸出3.0V,那么Rs的電阻值就應(yīng)該是(3.3V-3.0V)/15mA=20歐姆,也就是說,只要電阻大于20歐姆就可以保證LM4040不被燒壞,手頭正好有100歐的電阻,所以我如果用100歐的電阻的話,穿過LM4040的電流就是(3.3V-3.0V)/100歐=3mA。發(fā)生在100電阻上的功率大概就是0.3V乘以0.003安,不到1mW,所以用0805封裝的電阻足夠了,保證不會燒電阻。
所以我把原來的5.1K換成了100歐,再次量了一下基準(zhǔn)電壓,變成3.00V了,這時候,插上JLINK V8,燈也綠了,可以正常下載程序了。
為什么基準(zhǔn)電壓VDDA和VREF+在1.75V時單片機(jī)不正常?
看了一下STM32單片機(jī)的參考手冊,手冊上指出,VDDA引腳和VREF+引腳的電源電壓范圍應(yīng)該是2.4~3.6V,所以當(dāng)VDDA引腳電壓不足時,單片機(jī)無法工作。
另外注意:我的電路中,把VDDA和VREF+連接到了一起,接到了3.0V基準(zhǔn)電壓了。建議,以后再做STM32電路的時候,把VDDA和其他的VDD連接,只把VREF+和基準(zhǔn)電壓芯片連接。
這就是做STM32電路板的一點(diǎn)經(jīng)驗,希望對你有幫助。