您好,歡迎訪問(wèn)上?,F(xiàn)易電子元器件有限公司網(wǎng)站!
最近做stm32項(xiàng)目,糾結(jié)過(guò)其啟動(dòng)方式。
看到篇不錯(cuò)的文章,轉(zhuǎn)載一下。原文格式不太好,內(nèi)容也有很多奇怪的地方(尤其是第二篇,就先認(rèn)為原文是原創(chuàng),只是作者的思路我不懂吧),都一一刪改。想看原文的朋友鏈接如下:
http://www.ithao123.cn/content-3065243.html Duanxx的STM32學(xué)習(xí): 啟動(dòng)模式,BOOT0和BOOT1詳解
http://bluefish.blog.51cto.com/214870/1239098 上拉電阻與下拉電阻的作用
所謂啟動(dòng),一般來(lái)說(shuō)就是指我們下好程序后,重啟芯片時(shí),SYSCLK的第4個(gè)上升沿,BOOT引腳的值將被鎖存。用戶可以通過(guò)設(shè)置BOOT1和BOOT0引腳的狀態(tài),來(lái)選擇在復(fù)位后的啟動(dòng)模式。
Main Flash memory是STM32內(nèi)置的Flash,一般我們使用JTAG或者SWD模式下載程序時(shí),就是下載到這個(gè)里面,重啟后也直接從這啟動(dòng)程序。
System memory從系統(tǒng)存儲(chǔ)器啟動(dòng),這種模式啟動(dòng)的程序功能是由廠家設(shè)置的。一般來(lái)說(shuō),這種啟動(dòng)方式用的比較少。系統(tǒng)存儲(chǔ)器是芯片內(nèi)部一塊特定的區(qū)域,STM32在出廠時(shí),由ST在這個(gè)區(qū)域內(nèi)部預(yù)置了一段BootLoader,也就是我們常說(shuō)的ISP程序,這是一塊ROM,出廠后無(wú)法修改。
一般來(lái)說(shuō),我們選用這種啟動(dòng)模式時(shí),是為了從串口下載程序,因?yàn)樵趶S家提供的BootLoader中,提供了串口下載程序的固件,可以通過(guò)這個(gè)BootLoader將程序下載到系統(tǒng)的Flash中。但是這個(gè)下載方式需要以下步驟:
Step1:將BOOT0設(shè)置為1,BOOT1設(shè)置為0,然后按下復(fù)位鍵,這樣才能從系統(tǒng)存儲(chǔ)器啟動(dòng)BootLoader
Step2:最后在BootLoader的幫助下,通過(guò)串口下載程序到Flash中
Step3:程序下載完成后,又有需要將BOOT0設(shè)置為GND,手動(dòng)復(fù)位,這樣,STM32才可以從Flash中啟動(dòng)
可以看到,利用串口下載程序還是比較的麻煩,需要跳帽跳來(lái)跳去的,非常的不注重用戶體驗(yàn)。
Embedded SRAM 內(nèi)置SRAM,既然是SRAM,自然也就沒(méi)有程序存儲(chǔ)的能力了,這個(gè)模式一般用于程序調(diào)試。
假如我只修改了代碼中一個(gè)小小的地方,然后就需要重新擦除整個(gè)Flash,比較的費(fèi)時(shí),可以考慮從這個(gè)模式啟動(dòng)代碼(也就是STM32的內(nèi)存中),用于快速的程序調(diào)試,等程序調(diào)試完成后,在將程序下載到SRAM中。
因此,比較常見(jiàn)的選擇方式是BOOT0接地,當(dāng)然啦,如果自己畫stm32系統(tǒng)板的話,最好也要留下其他兩個(gè)啟動(dòng)方式。對(duì)于大型程序使用SRAM進(jìn)行調(diào)試還是很有必要的。
下面講一下上拉電阻與下拉電阻的區(qū)別:
上拉電阻就是把不確定的信號(hào)通過(guò)一個(gè)電阻鉗位在高電平,此電阻還起到限流的作用。同理,下拉電阻是把不確定的信號(hào)鉗位在低電平。上拉電阻是指器件的輸入電流,而下拉指的是輸出電流。
那么在什么時(shí)候使用上、下拉電阻呢?
1、當(dāng)TTL電路驅(qū)動(dòng)CMOS電路時(shí),如果TTL電路輸出的高電平低于CMOS電路的最低高電平(一般為3.5V),這時(shí)就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。
2、OC門電路必須加上拉電阻,以提高輸出的搞電平值。
3、為加大輸出引腳的驅(qū)動(dòng)能力,有的單片機(jī)管腳上也常使用上拉電阻。
4、在CMOS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻降低輸入阻抗,提供泄荷通路。
5、芯片的管腳加上拉電阻來(lái)提高輸出電平,從而提高芯片輸入信號(hào)的噪聲容限,增強(qiáng)抗干擾能力。
6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。
7、長(zhǎng)線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。
另外,上拉電阻阻值的選擇原則包括:
1、從節(jié)約功耗及芯片的灌電流能力考慮應(yīng)當(dāng)足夠大;電阻大,電流小。
2、從確保足夠的驅(qū)動(dòng)電流考慮應(yīng)當(dāng)足夠?。浑娮栊。娏鞔?。
3、對(duì)于高速電路,過(guò)大的上拉電阻可能邊沿變平緩。
綜合考慮以上三點(diǎn),通常在1k到10k之間選取。對(duì)下拉電阻也有類似道理
作為輸入接VCC等于1,接GND=0。
如果按鍵短路(按下)電阻為零,按鍵按下,Out=0,當(dāng)按鍵斷開(kāi),Out=?顯然當(dāng)Out懸空輸出VCC,這可以用儀表測(cè)量。這個(gè)VCC就是靠R1“上拉”產(chǎn)生的,顧名思義,R1就是上拉電阻。上拉電阻的大小,取決于輸出接負(fù)載的需要,通常邏輯電路對(duì)高電平輸出阻抗很大,要求輸出電流很小,在上拉電阻上壓降可以忽略,當(dāng)然上拉電阻不能太大,否則就不能忽略了。
實(shí)際電路還有這種結(jié)構(gòu)
這里的R1也是上拉電阻。
單片機(jī)P0口輸出結(jié)構(gòu)一部分電路類似下圖,實(shí)際可能用的是場(chǎng)效應(yīng)管。
當(dāng)Q1,Q2分別導(dǎo)通,可以對(duì)外輸出0和1,當(dāng)Q1,Q2都不導(dǎo)通時(shí)?要想輸出1,咋辦?外接上拉電阻!
為什么要使用拉電阻:
一般作單鍵觸發(fā)使用時(shí),如果IC本身沒(méi)有內(nèi)接電阻,為了使單鍵維持在不被觸發(fā)的狀態(tài)或是觸發(fā)后回到原狀態(tài),必須在IC外部另接一電阻。
這里不再詳細(xì)說(shuō)明
數(shù)字電路有三種狀態(tài):高電平、低電平、和高阻狀態(tài),有些應(yīng)用場(chǎng)合不希望出現(xiàn)高阻狀態(tài),可以通過(guò)上拉電阻或下拉電阻的方式使處于穩(wěn)定狀態(tài),具體視設(shè)計(jì)要求而定!一般說(shuō)的是I/O端口,有的可以設(shè)置,有的不可以設(shè)置,有的是內(nèi)置,有的是需要外接,I/O端口的輸出類似與一個(gè)三極管的C,當(dāng)C接通過(guò)一個(gè)電阻和電源連接在一起的時(shí)候,該電阻成為上C拉電阻,也就是說(shuō),如果該端口正常時(shí)為高電平,C通過(guò)一個(gè)電阻和地連接在一起的時(shí)候,該電阻稱為下拉電阻,使該端口平時(shí)為低電平。
上拉電阻是用來(lái)解決總線驅(qū)動(dòng)能力不足時(shí)提供電流的。一般說(shuō)法是拉電流,下拉電阻是用來(lái)吸收電流的,也就是灌電流。
上?,F(xiàn)易電子元器件有限公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像
CopyRight 2020-2025 29711999.com.cn All rights reserved 滬ICP備2020031792號(hào)