<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測(cè)試測(cè)量 > 正文

    帶有空片檢測(cè)功能的STM32需注意的GPIO設(shè)計(jì)

    發(fā)布時(shí)間:2022-02-09 責(zé)任編輯:wenwei

    【導(dǎo)讀】從STM32F0部分型號(hào)開始,比如STM32F04x和STM32F09x,STM32越來越多的型號(hào)具有了空片檢測(cè)(Empty Check)功能。以前,STM32的啟動(dòng)由BOOT0和BOOT1來決定,在引入了空片檢測(cè)功能之后,則在BOOT0=0的情況下,還需要分兩種情況:


    一是內(nèi)部已經(jīng)存在代碼,則從用戶存儲(chǔ)區(qū)啟動(dòng);

    二是如果是空片,則從系統(tǒng)存儲(chǔ)區(qū)啟動(dòng),執(zhí)行內(nèi)部Bootloader。


    它帶來什么好處呢?客戶如果是空片上板,無需對(duì)BOOT0引腳進(jìn)行跳線,就可以直接使用內(nèi)部Bootloader進(jìn)行串口或其他通訊口進(jìn)行代碼燒錄了,可以說非常地方便。但是,這同時(shí)為GPIO的設(shè)計(jì)帶來一個(gè)非常大的風(fēng)險(xiǎn),在電路設(shè)計(jì)時(shí)需要引起注意,做好相應(yīng)的措施。


    問題起源


    某客戶在其產(chǎn)品的設(shè)計(jì)中,使用STM32G0B1RET6。有一天,客戶工程師在測(cè)試電流的時(shí)候,無意間發(fā)現(xiàn)一個(gè)情況,說“有個(gè)比較奇怪的情況,STM32G0B1沒有燒錄代碼的情況下,會(huì)比有燒錄代碼的情況下電流多了幾十毫安。”按我們以往的認(rèn)知,在沒有燒錄代碼的情況下,沒有任何操作,不該會(huì)出現(xiàn)這種情況啊。那么這是什么情況呢?


    問題分析


    測(cè)量STM32G0B1在沒有燒錄代碼下的GPIO在懸空下的電平,可以發(fā)現(xiàn)有部分GPIO呈現(xiàn)為高電平,比如PA2/PA3和PA9/PA10。而客戶在PA9上接了一個(gè)外部驅(qū)動(dòng)電路,由高電平驅(qū)動(dòng),所以PA9的高電平,帶動(dòng)了該部分電路的工作,導(dǎo)致了電流的增加。


    從參考手冊(cè)RM0444的GPIO一章,我們知道STM32G0的GPIO在上電后應(yīng)該為模擬狀態(tài),所以這些呈現(xiàn)高電平的GPIO顯得有點(diǎn)奇怪。


    突然想起STM32F091等型號(hào)早就已經(jīng)有的空片檢測(cè)功能,就繼續(xù)查看STM32G0的參考手冊(cè)RM0444的 “Memory and bus architecture”一章,果然,發(fā)現(xiàn)STM32G0系列同樣擁有空片檢測(cè)功能。也就是說,STM32G0B1在沒有燒錄代碼的情況下,它是要到系統(tǒng)存儲(chǔ)區(qū)去執(zhí)行內(nèi)部Bootloader的。


    此時(shí),需要打開應(yīng)用筆記AN2606《STM32微控制器系統(tǒng)存儲(chǔ)器自舉模式》了解一下STM32G0B1在系統(tǒng)Bootloader下GPIO的狀態(tài)。


    由于之前已經(jīng)檢測(cè)到PA2/PA3和PA9/PA10為高電平,而這兩個(gè)引腳對(duì)剛好是Bootloader中所用到USART1和USART2對(duì)應(yīng)的GPIO引腳。于是,檢查其在Bootloader中的配置狀態(tài),請(qǐng)參考圖1。


    1644235706824754.png

    Figure 1 系統(tǒng)Bootloader下USART1/2的端口狀態(tài)


    從圖1中可以了解到PA2/PA3/PA9/PA10均配置為復(fù)用推挽結(jié)構(gòu),帶上拉電阻。其中PA10/PA3為輸入口,PA2/PA9為輸出口。

    使用一個(gè)1k?的電阻來測(cè)量PA9/PA10的端口狀態(tài),來確定其高電平的來源。系統(tǒng)VDD的電壓為3.22V。


    測(cè)量之前,需要了解一下GPIO的結(jié)構(gòu),如圖2。


    1644235690619422.png

    Figure 2 復(fù)用功能配置下的I/O的結(jié)構(gòu)


    從圖2中可以得知,當(dāng)作為輸出時(shí),端口上呈現(xiàn)的高電平來自P-MOS上的VDDIOX;當(dāng)作為輸入時(shí),端口上呈現(xiàn)的高電平來自上拉電阻上的VDDIOX。下面來驗(yàn)證測(cè)試一下。


    先對(duì)輸出口PA9進(jìn)行測(cè)量,使用1k?電阻串入PA9與VSS之間,并串上電流表,測(cè)得電流為3.22mA。由U=I·R公式,剛剛好,總電阻R = U / I = 3.22V ÷ 3.22mA = 1k?。也就是說,PA9的高電平由推挽結(jié)構(gòu)中的P-MOS連接的VDDIOX提供,內(nèi)部沒有電阻。


    再來對(duì)輸入口PA10進(jìn)行測(cè)量,使用1k?電阻串入PA10與VSS之間,并串上電流表,測(cè)得電流為85.4uA。總電阻R = U / I = 3.22V ÷ 85.4uA = 37.7k?,大于在外部串接的1k?電阻。也就是說,PA10的高電平來自上拉電阻所連接的VDDIOX,而且內(nèi)部上拉電阻RPU = 37.7k? - 1k? = 36.7k?。


    多加一步再次確認(rèn)輸入口PA10的情況,這次不使用1k?電阻,而是直接將PA10串上電流表連接到VSS,得到電流值為87.7uA。內(nèi)部上拉電阻RPU = U / I = 3.22V ÷ 87.7uA = 36.7k?,與上面的測(cè)試是相同的。也符合STM32G0B1數(shù)據(jù)手冊(cè)中內(nèi)部上拉電阻的范圍,如圖3。


    1644235674556498.png

    Figure 3 I/O的上下拉電阻參數(shù)


    存在的風(fēng)險(xiǎn)


    到此,已經(jīng)清楚用戶存儲(chǔ)區(qū)沒有燒錄代碼的時(shí)候,STM32啟動(dòng)將進(jìn)入系統(tǒng) Bootloader,PA9被設(shè)置為復(fù)用輸出并輸出高電平,從而推動(dòng)外部電路產(chǎn)生的電流增加。但是我們應(yīng)該更加深入地研究這個(gè)問題。客戶的情況還算是比較好的,接的是一個(gè)驅(qū)動(dòng)電路,并不會(huì)帶來損壞。


    想象一下,如果在客戶的應(yīng)用中,PA9是用作輸入口,用來連接一個(gè)傳感器的中斷輸出,比如連接3軸MEMS加速度計(jì)LIS2DH12的INT1/2引腳。查看LIS2DH12的數(shù)據(jù)手冊(cè),可以得知INT1和IN2引腳的初始狀態(tài)是輸出低電平的,如圖4。


    1644235659191958.png

    Figure 4   LIS2DH的INT1/INT2引腳初始狀態(tài)


    由于LIS2DH12的INT引腳初始狀態(tài)是推挽輸出且輸出低電平,如果直接連接到PA9,而用戶打算將空片先焊接于用戶板,再進(jìn)行代碼燒錄的話,那么,當(dāng)上電的時(shí)候,LIS2DH12的INT引腳輸出低電平,而STM32G0B1進(jìn)入內(nèi)部Bootloader后PA9輸出高電平,直連將導(dǎo)致短路,電流從STM32G0B1的PA9內(nèi)部的VDDIOX經(jīng)過P-MOS,從PA9引腳出來,經(jīng)過連接線,到達(dá)LIS2DH12的INT引腳,從內(nèi)部的M-MOS流到VSS,中間因?yàn)闆]有電阻而造成短路,很可能會(huì)對(duì)芯片產(chǎn)生損壞。所以必須加以注意!


    PA10作為復(fù)用輸入功能,倒是沒有這個(gè)風(fēng)險(xiǎn)。


    結(jié)論


    由于空片檢測(cè)功能的存在,帶有此功能的STM32型號(hào)在空片的情況下啟動(dòng),將會(huì)進(jìn)入系統(tǒng)存儲(chǔ)區(qū),執(zhí)行內(nèi)部Bootloader。內(nèi)部Bootloader會(huì)將部分GPIO設(shè)置為復(fù)用功能輸出引腳并輸出高電平或低電平,如果此引腳在用戶應(yīng)用中作為輸入引腳連接到外部芯片的輸出引腳,那么STM32空片事先焊接于用戶板時(shí),上電將可能帶來極大的風(fēng)險(xiǎn)。在GPIO設(shè)計(jì)中如遇到有空片檢測(cè)功能的STM32必須對(duì)此加以注意。


    解決辦法


    兩種解決辦法供用戶選擇。


    1)    在兩個(gè)芯片的連接中串入電阻進(jìn)行保護(hù),流經(jīng)此電阻的電流必須要低于GPIO的注入電流,而且還必須保證不影響雙邊的高低電平識(shí)別。

    2)    在使用帶有空片檢測(cè)功能的STM32型號(hào)中,在硬件設(shè)計(jì)上要預(yù)先檢查AN2606中所描述的Bootloader使用并配置的復(fù)用功能輸出引腳,在GPIO設(shè)計(jì)時(shí)避免在用戶應(yīng)用中將其作為輸入引腳。


    以上兩種方法,推薦使用第二種方法,更簡(jiǎn)單、更穩(wěn)妥。


    來源:STM32單片機(jī)



    免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理。


    推薦閱讀:


    開關(guān)穩(wěn)壓器的封裝體積正變得越來越小

    SiC功率器件使用過程中的常見問題集(上)

    淺談5G小基站中時(shí)鐘及無源射頻器件的應(yīng)用

    基本半導(dǎo)體第三代碳化硅肖特基二極管性能詳解

    針對(duì)SiC串?dāng)_抑制方法的測(cè)試報(bào)告

    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    熟妇人妻久久中文字幕| 无码人妻久久一区二区三区蜜桃| 精品久久久久中文字幕一区| 色噜噜综合亚洲av中文无码| 天堂а√中文最新版地址在线| 麻豆aⅴ精品无码一区二区| 熟妇人妻系列av无码一区二区| 中文字幕日本人妻久久久免费 | 日韩无码系列综合区| 亚洲成AV人片在线播放无码| 中文字幕视频免费| 最好看的2018中文在线观看| 国产成人无码18禁午夜福利p| 成人A片产无码免费视频在线观看| 久久精品亚洲中文字幕无码麻豆| 国产亚洲?V无码?V男人的天堂| 午夜亚洲AV日韩AV无码大全| 国产精品99久久久精品无码| 久久久久中文字幕| 久别的草原在线影院电影观看中文| 国产精品无码无卡无需播放器 | 色情无码WWW视频无码区小黄鸭| 精品无码国产自产在线观看水浒传| 痴汉中文字幕视频一区| 亚洲VA中文字幕无码一二三区| 久久久人妻精品无码一区| 波多野结衣亚洲AV无码无在线观看| 无码丰满少妇2在线观看| 无码人妻久久一区二区三区| 曰韩人妻无码一区二区三区综合部 | 色综合久久中文字幕综合网| 波多野结衣在线中文| 今天免费中文字幕视频| а√天堂中文官网8| avtt亚洲一区中文字幕| 中文字幕性| 亚洲国产成人精品无码区在线观看 | 中文日韩亚洲欧美字幕| 亚洲AV无码资源在线观看| 特级小箩利无码毛片| 亚洲一区二区三区在线观看精品中文|