技術(shù)領(lǐng)域
本發(fā)明涉及微控制單元(Micro Control Unit,MCU)啟動(dòng)模式領(lǐng)域,具體涉及MCU啟動(dòng)模式選擇電路和基于該電路的MCU代碼更新方法。
背景技術(shù):
MCU的啟動(dòng)模式分為正常工作模式和燒錄模式,燒錄模式用于MCU代碼的燒錄和更新。MCU啟動(dòng)時(shí)會(huì)偵測(cè)啟動(dòng)模式選擇引腳的電位來決定進(jìn)入哪種模式。若偵測(cè)到啟動(dòng)模式選擇引腳是低電位,則MCU進(jìn)入正常工作模式,若偵測(cè)到啟動(dòng)模式選擇引腳是高電位,則MCU進(jìn)入燒錄模式。所以在MCU啟動(dòng)前需要給MCU啟動(dòng)模式選擇引腳一個(gè)電位值。
現(xiàn)有技術(shù)中的啟動(dòng)模式選擇電路是由一個(gè)單刀開關(guān),一個(gè)上拉電阻和一個(gè)下拉電阻組成的電路來配置MCU啟動(dòng)模式選擇引腳的電位值?,F(xiàn)有的啟動(dòng)模式選擇電路下,每次MCU更新代碼時(shí)都需要關(guān)機(jī),拆開整機(jī)然后斷開開關(guān)來配置MCU啟動(dòng)模式選擇引腳的高電位以便進(jìn)入燒錄模式,進(jìn)行MCU代碼的燒錄和更新。MCU更新代碼完成后,需要恢復(fù)開關(guān)為閉合狀態(tài),再組裝成整機(jī),配置MCU啟動(dòng)模式選擇引腳的低電位以便進(jìn)入正常工作模式。
這種方式有如下缺陷:第一,頻繁地拆裝機(jī),容易造成MCU整機(jī)的拆裝磨損;第二,需要專業(yè)的拆裝技術(shù)才能完成MCU的拆裝工作;第三,MCU代碼更新的時(shí)間冗長(zhǎng),MCU的代碼更新的時(shí)間不僅包含代碼燒錄時(shí)間,還包含拆裝機(jī)花費(fèi)的時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的MCU啟動(dòng)模式選擇電路和基于該電路的MCU代碼更新方法。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:根據(jù)本發(fā)明的一個(gè)方面,提供了一種MCU啟動(dòng)模式選擇電路,該電路包括:電源、單刀開關(guān)、上拉電阻和第一下拉電阻組成的電路;進(jìn)一步,該電路還包括:電容、二極管和第二下拉電阻。
第一下拉電阻的一端和單刀開關(guān)的一端相連,第一下拉電阻的另一端接地。
單刀開關(guān)的另一端和上拉電阻的一端相連;上拉電阻的另一端接電源。
第二下拉電阻的一端接地;第二下拉電阻的另一端與二極管的正極以及MCU的通用輸入輸出引腳相連。
電容的一端接地,電容的另一端與二極管的負(fù)極以及單刀開關(guān)的另一端、上拉電阻的一端以及MCU的啟動(dòng)模式選擇引腳相連。
本發(fā)明提供的這種電路中,在電源一定的情況下,上拉電阻與第一下拉電阻的參數(shù)選擇滿足:分壓后上拉電阻和單刀開關(guān)連接處的輸出電壓不超過預(yù)設(shè)的低電位值。
在本發(fā)明提供的這種電路中,電容和第一下拉電阻組成延時(shí)阻容電路,電容和第一下拉電阻的參數(shù)選擇滿足:延時(shí)阻容電路的電位延時(shí)大于MCU偵測(cè)MCU啟動(dòng)模式選擇引腳電位的時(shí)間。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種基于上述本發(fā)明一個(gè)方面所述電路的一種MCU代碼更新的方法,該方法包括:
通過MCU的通用輸入輸出引腳輸出高電位,二極管導(dǎo)通,MCU的啟動(dòng)模式選擇引腳變?yōu)楦唠娢徊⒃陔娙莺偷谝幌吕娮杞M成的延時(shí)阻容電路的作用下保持一定時(shí)間。
MCU重啟,偵測(cè)MCU啟動(dòng)模式選擇引腳的電位為高電位,進(jìn)入燒錄模式,更新代碼。
電容存儲(chǔ)的電荷通過第一下拉電阻放電,MCU啟動(dòng)模式選擇引腳的高電位通過第一下拉電阻和上拉電阻分壓成低電位。
代碼更新完成后,MCU重啟,偵測(cè)MCU啟動(dòng)模式選擇引腳的電位為低電位,進(jìn)入正常工作模式。
本發(fā)明的這種MCU啟動(dòng)模式選擇電路,在不拆裝整機(jī)和撥動(dòng)開關(guān)的情況下實(shí)現(xiàn)MCU由正常工作模式切換到燒錄模式,完成MCU代碼的燒錄。該電路可使MCU避免拆裝機(jī)造成的拆裝磨損,不需要專業(yè)的拆裝技術(shù),同時(shí)縮短了MCU代碼燒錄的時(shí)間,讓MCU代碼燒錄變得簡(jiǎn)便易操作。
附圖說明
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種MCU啟動(dòng)模式選擇電路的電路圖;
圖2是本發(fā)明一個(gè)實(shí)施例提供的基于圖1所示電路的一種MCU代碼更新方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
本發(fā)明的核心思想是利用下拉電阻和電容組成的延時(shí)電路以及MCU的通用輸入輸出引腳(General Purpose Input Output,GPIO)來實(shí)現(xiàn)啟動(dòng)模式選擇引腳電位的自控和保持,這樣在正常工作模式下,通過MCU來控制啟動(dòng)模式選擇引腳的電位為高電位,從而切換到燒錄模式,代碼更新完成后,啟動(dòng)模式選擇引腳的高電位再通過放電、分壓恢復(fù)到低電位,MCU進(jìn)入正常工作模式。
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種MCU啟動(dòng)模式選擇電路的電路圖。本發(fā)明的這種MCU啟動(dòng)模式選擇電路包括:電源、單刀開關(guān)、上拉電阻和第一下拉電阻;該電路進(jìn)一步包括:電容、二極管和第二下拉電阻。
第一下拉電阻的一端和單刀開關(guān)的一端相連,第一下拉電阻的另一端接地。單刀開關(guān)的另一端和上拉電阻的一端相連。上拉電阻的另一端接電源,第二下拉電阻的一端接地,第二下拉電阻的另一端與二極管的正極以及MCU的通用輸入輸出引腳相連。
電容的一端接地,電容的另一端與二極管的負(fù)極以及單刀開關(guān)的另一端、上拉電阻的一端以及MCU的啟動(dòng)模式選擇引腳相連。
參見圖1,本實(shí)施例的MCU啟動(dòng)模式選擇電路包括電源、單刀開關(guān)J1、上拉電阻R1和第一下拉電阻R2;進(jìn)一步還包括:電容C1、二極管D1和第二下拉電阻R3。
參見圖1,第一下拉電阻R2的一端和單刀開關(guān)J1的一端相連,第一下拉電阻R2的另一端接地。
參見圖1,單刀開關(guān)J1的另一端和上拉電阻R1的一端相連。上拉電阻R1的另一端接電源。
參見圖1,第二下拉電阻R3的一端接地,第二下拉電阻R3的另一端與二極管D1的正極以及MCU的通用輸入輸出引腳(MCU_GPIO)相連。
參見圖1,電容C1的一端接地,電容C1的另一端與二極管D1的負(fù)極以及單刀開關(guān)J1的另一端、上拉電阻R1的一端以及MCU的啟動(dòng)模式選擇引腳(MCU_BOOT_MODE)相連。
在電源一定的情況下,上拉電阻R1與第一下拉電阻R2的參數(shù)選擇滿足:分壓后上拉電阻R1和單刀開關(guān)J1連接處的輸出電壓不超過預(yù)設(shè)的低電位值。
在本發(fā)明的一個(gè)實(shí)施例中,電源為3.3伏,為了保證上拉電阻R1和單刀開關(guān)J1連接處的分壓后輸出的電壓不超過預(yù)設(shè)的低電位值0.3伏,上拉電阻R1與第一下拉電阻R2的參數(shù)選擇滿足上拉電阻R1與第一下拉電阻R2阻值之比為10/1的條件。
具體地,上拉電阻R1為220千歐,第一下拉電阻R2為22千歐,這樣在電源為3.3伏的情況下,通過上拉電阻R1和第一下拉電阻R2分壓后輸出的電壓為低電位0.3伏。
當(dāng)然在本發(fā)明的其他實(shí)施例中,電源可以選擇其他的參數(shù),不限于本發(fā)明一個(gè)實(shí)施例中的3.3伏,低電位的值也可以根據(jù)具體的MCU啟動(dòng)模式選擇電路的相關(guān)參數(shù)進(jìn)行預(yù)設(shè),不限于本發(fā)明一個(gè)實(shí)施例中的0.3伏的低電位。
電容和第一下拉電阻組成延時(shí)阻容電路,電容和第一下拉電阻的參數(shù)選擇滿足延時(shí)阻容電路的電位延時(shí)大于MCU偵測(cè)MCU啟動(dòng)模式選擇引腳電位的時(shí)間。
在本發(fā)明的一個(gè)實(shí)施例中,電容C1和第一下拉電阻R2組成延時(shí)阻容電路,電容C1和第一下拉電阻R2的參數(shù)選擇滿足:延時(shí)阻容電路的電位延時(shí)大于MCU偵測(cè)MCU啟動(dòng)模式選擇引腳電位的時(shí)間。具體的,第一下拉電阻R2為22千歐,電容C1為47微法,預(yù)設(shè)的MCU偵測(cè)MCU_BOOT_MODE引腳電位的時(shí)間為1秒,這樣根據(jù)延時(shí)時(shí)間計(jì)算公式可得延時(shí)時(shí)間大于1秒。
可以理解,在本發(fā)明的其他實(shí)施例中,MCU偵測(cè)MCU_BOOT_MODE引腳電位的時(shí)間不限于1秒,應(yīng)當(dāng)根據(jù)實(shí)際的電路中的相關(guān)參數(shù)進(jìn)行電容取值選擇以組成阻容延時(shí)電路。
在本發(fā)明的一個(gè)實(shí)施例中,二極管D1是單向?qū)щ姷?,電流只能從MCU_GPIO流向MCU_BOOT_MODE。
在本發(fā)明的一個(gè)實(shí)施例中,電源為3.3伏,3.3伏是高電位。第二下拉電阻R3的阻值為10千歐。
在本發(fā)明的一個(gè)實(shí)施例中,二極管D1使用的是RB161M-20型號(hào)的二極管。
該電路下MCU代碼的燒錄分為兩種情況,首次燒錄和第二次及以后代碼更新。具體過程分述如下:
MCU首次燒錄代碼
MCU首次燒錄代碼是在組裝之前,也就是說在主板的時(shí)候把代碼燒錄好,然后再組裝成整機(jī)。MCU首次燒錄代碼時(shí),MCU芯片里沒有數(shù)據(jù),呈現(xiàn)空白狀態(tài),無法啟用MCU啟動(dòng)模式選擇引腳電位的自控和保持。參見圖1,MCU首次燒錄代碼的過程為:先關(guān)機(jī),然后斷開單刀開關(guān)J1,配置啟動(dòng)模式選擇引腳MCU_BOOT_MODE的電壓為高電位,開機(jī),電源將3.3伏的高電平通過上拉電阻R1輸送到MCU_BOOT_MODE,MCU偵測(cè)到MCU_BOOT_MODE的高電位從而進(jìn)入燒錄模式,進(jìn)行代碼燒錄。代碼燒錄完成后,關(guān)機(jī)并閉合單刀開關(guān)J1,單刀開關(guān)J1閉合后開機(jī),通過上拉電阻R1和第一下拉電阻R2分壓,將3.3伏的高電壓,分壓成0.3伏的低電壓輸出到MCU_BOOT_MODE。MCU偵測(cè)到MCU_BOOT_MODE的低電位從而進(jìn)入正常工作模式。通過上述步驟完成MCU的首次代碼燒錄。
MCU第二次及以后更新代碼
本發(fā)明提供的這種MCU啟動(dòng)模式選擇電路主要適用于MCU第二次及以后更新代碼的情況。參見圖1,該電路中的電容C1用于存儲(chǔ)通過MCU_GPIO輸入的電荷。第二下拉電阻R3的作用是為MCU_GPIO提供默認(rèn)電位,防止出現(xiàn)懸空狀態(tài)。二極管D1的作用在于利用二極管的單向?qū)щ娞匦?,使得MCU_BOOT_MODE的電荷通過第一下拉電阻R2放掉,防止MCU_BOOT_MODE的電荷回流而通過第二下拉電阻R3過快的放掉。
電容C1和第一下拉電阻R2組成延時(shí)阻容電路。為了保證MCU在重啟時(shí)可以偵測(cè)到啟動(dòng)模式選擇引腳的高電位,從而使得MCU進(jìn)入燒錄模式,在本發(fā)明的一個(gè)實(shí)施例中延時(shí)阻容電路的延時(shí)時(shí)間需要大于1秒。
MCU第二次及以后更新代碼的過程具體為:
參見圖1,MCU需要更新代碼時(shí),在正常工作模式下,MCU通過MCU_GPIO輸出高電位(3.3伏),二極管D1導(dǎo)通,MCU_BOOT_MODE變?yōu)楦唠娢?,由于電容C1的電荷存儲(chǔ)功能,MCU_BOOT_MODE會(huì)保持高電位(3.3伏)一定的時(shí)間,然后MCU重啟,偵測(cè)MCU_BOOT_MODE的電位為高電位進(jìn)入燒錄模式,進(jìn)行MCU代碼的更新。
參見圖1,MCU進(jìn)入燒錄模式后,電容C1存儲(chǔ)的電荷通過第一下拉電阻R2放電,MCU_BOOT_MODE的高電位通過第一下拉電阻R2(22千歐)和上拉電阻R1(220千歐)分壓成0.3伏的低電位。
代碼更新完成后,MCU重啟,偵測(cè)MCU_BOOT_MODE的電位為低電位0.3伏,進(jìn)入正常工作模式。
這樣在不需要專業(yè)的拆裝技術(shù),不用拆裝整機(jī)和撥動(dòng)開關(guān)情況下完成MCU代碼的燒錄和更新,操作非常方便,同時(shí),時(shí)間也縮短為僅僅是MCU代碼更新的時(shí)間,讓MCU代碼更新變得省時(shí)省力,簡(jiǎn)便易操作。
圖2是本發(fā)明一個(gè)實(shí)施例提供的基于圖1所示電路的一種MCU代碼更新方法的流程圖。
參見圖2,該方法包括步驟201:通過MCU的通用輸入輸出引腳輸出高電位,二極管導(dǎo)通,MCU的啟動(dòng)模式選擇引腳變?yōu)楦唠娢徊⒃陔娙莺偷谝幌吕娮杞M成的延時(shí)阻容電路的作用下保持一定時(shí)間。
步驟202:MCU重啟,偵測(cè)MCU啟動(dòng)模式選擇引腳的電位為高電位,進(jìn)入燒錄模式,更新代碼。
步驟203:電容存儲(chǔ)的電荷通過第一下拉電阻放電,MCU啟動(dòng)模式選擇引腳的高電位通過第一下拉電阻和上拉電阻分壓成低電位。
步驟204:代碼更新完成后,MCU重啟,偵測(cè)MCU啟動(dòng)模式選擇引腳的電位為低電位,進(jìn)入正常工作模式。
通過上述步驟,完成了MCU代碼的更新,同現(xiàn)有的代碼更新方法相比,快捷簡(jiǎn)便。
綜上所述,本發(fā)明提供的這種MCU啟動(dòng)模式選擇電路和基于該電路的MCU代碼更新的方法在不拆裝整機(jī)和撥動(dòng)開關(guān)的情況下實(shí)現(xiàn)MCU由正常工作模式切換到燒錄模式,完成MCU代碼的燒錄。該電路可使MCU避免拆裝機(jī)造成的拆裝磨損,不需要專業(yè)的拆裝技術(shù),同時(shí)縮短了MCU代碼燒錄的時(shí)間,讓MCU代碼燒錄變得簡(jiǎn)便易操作。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。