在很多人眼里,主控板有著密密麻麻的芯片引腳與PCB走線,看起來非常難的樣子。其實(shí)恰恰相反,主控板的設(shè)計(jì)有著其特有的設(shè)計(jì)規(guī)律,其實(shí)說白了就像搭積木,在滿足單片機(jī)最小系統(tǒng)的條件下,需要哪些功能,只需要增添相對(duì)應(yīng)的電路模塊即可,也可稱為模塊化設(shè)計(jì)思想。
本文我將從三個(gè)層次來介紹用于機(jī)器人主控板的設(shè)計(jì)思想。分別為:
根基,主控板最基礎(chǔ)部分的設(shè)計(jì)和原理;
枝干,主控板功能模塊的擴(kuò)展與設(shè)計(jì)思路;
樹葉,主控板中功能模塊具體電路參數(shù)的計(jì)算。
我將以一棵大樹的層次結(jié)構(gòu)為模型,帶領(lǐng)大家走進(jìn)電路設(shè)計(jì)的樂趣。
根 基
這里的根基表示的是單片機(jī)最小系統(tǒng),是單片機(jī)可以正常執(zhí)行程序的最簡(jiǎn)工作環(huán)境。如果沒有這些的話,單片機(jī)是無法運(yùn)行程序的。
最小系統(tǒng)的組成包括,電源電路,時(shí)鐘電路,復(fù)位電路。大多數(shù)芯片的最小系統(tǒng)需要包含以上三種電路,而有的芯片卻可以不使用外部時(shí)鐘,其芯片內(nèi)部可以通過RC振蕩器為程序運(yùn)行提供時(shí)鐘基準(zhǔn)。
根基之電源電路。以STM32系列單片機(jī)為例,其工作電壓在2.0V~3.6V,通常會(huì)使用3.3V電源供電。
假設(shè)我們使用5V電源為電路板提供電源,這樣就需要將5V轉(zhuǎn)換成3.3V為單片機(jī)供電。考慮到單片機(jī)需要工作在低紋波的電源環(huán)境下,這里選擇了線性降壓電源(LDO)。明確了設(shè)計(jì)目的,下面就需要進(jìn)行方案選擇了。
需要做的事:使用那款LDO芯片將5V電壓降低到3.3V電壓,且滿足功率需求。能夠?qū)崿F(xiàn)這幾項(xiàng)需要的方案,非常多,下面我簡(jiǎn)單列舉了幾款常用芯片。
細(xì)細(xì)分析上面的表格中參數(shù),發(fā)現(xiàn)不同芯片有著不同的最大輸出電流。這時(shí)可根據(jù)單片機(jī)內(nèi)部資源使用情況來計(jì)算最大工作電流(在單片機(jī)手冊(cè)可以查找到),來進(jìn)行方案選取。確定了單片機(jī)最大工作電流后,需要擴(kuò)大3倍來選取電源芯片。
至此,已經(jīng)確定好了電源芯片方案,但是如何進(jìn)行電路連接呢?如何設(shè)計(jì)能減少干擾呢?對(duì)于電路如何連接,一般在芯片手冊(cè)前幾頁會(huì)給出典型應(yīng)用電路。這里我以AMS1117-3.3為例進(jìn)行介紹。
下圖來自芯片手冊(cè)中的典型應(yīng)用電路模塊。一般情況下,按照數(shù)據(jù)手冊(cè)中的電路連接,就可以正常使用。為了提高系統(tǒng)的穩(wěn)定性,我們還可以對(duì)電路稍加修改。比如,在電源輸入口增加磁珠來抑制電源線上的高頻干擾信號(hào)。在輸入輸出端增加濾波去耦電容,以保證輸出電源的純凈,和瞬態(tài)響應(yīng)能力。
根基之復(fù)位電路。相信很多人和我一樣,從接觸51單片機(jī)時(shí)就開始疑惑復(fù)位電路的工作原理,由于對(duì)模擬電路理解的不夠透徹,而不能給出正確答案,當(dāng)別人問起時(shí),吞吞吐吐說不出個(gè)所以然來。對(duì)于復(fù)位電路,這里給出兩種不同的解釋,歡迎大家批評(píng)指正。
對(duì)于低電平復(fù)位的單片機(jī)來說,其復(fù)位電路如下圖所示:
復(fù)位電路解釋一:首先,明確電容器具有通交隔直的能力。而交流電的定義為非直流電都為交流電,而直流電的定義是大小方向不隨時(shí)間變化。
那可以這樣理解:在電路上電瞬間,電壓從零變化到VCC此時(shí)電容兩端電壓在不斷變化應(yīng)該歸屬于交流電,這個(gè)變化過程是需要時(shí)間的。在這段時(shí)間內(nèi)電容處于導(dǎo)通狀態(tài),RST引腳電壓接近于GND(低電平)。滿足單片機(jī)復(fù)位要求。具體參數(shù)可通過RC電路進(jìn)行計(jì)算。通常使用0.1uf和10K電阻進(jìn)行單片機(jī)復(fù)位。
復(fù)位電路解釋二:從電容充電曲線理解.電容在充電時(shí),兩端電壓曲線如下圖仿真圖所示,電壓緩慢爬升,當(dāng)IO口電壓低于0.8V時(shí),單片機(jī)就會(huì)認(rèn)為IO口電平為低電平,則圖中復(fù)位電路使用參數(shù)可提供288us低電平時(shí)間,足夠滿足單片機(jī)進(jìn)行復(fù)位。
根基之時(shí)鐘電路。對(duì)于單片機(jī)來說時(shí)鐘就像心跳一般,在時(shí)鐘信號(hào)的基準(zhǔn)下,有規(guī)律的執(zhí)行者代碼。時(shí)鐘電路大同小異,這里以無源晶振為例。
如上圖所示,為時(shí)鐘電路,其中兩個(gè)22pf電容為起振電容,1M電阻為環(huán)路反饋電阻。采用8MHZ晶振,經(jīng)STM32內(nèi)部PLL鎖相環(huán),進(jìn)行倍頻可達(dá)到72MHZ,后經(jīng)過分頻電路進(jìn)行分頻為各外設(shè)提供時(shí)鐘。
單片機(jī)最小系統(tǒng)主要由這三部分,作為控制器的根基,是必須要有的。無論多么復(fù)雜的功能都需要基于此進(jìn)行拓展,下面介紹如何拓展主控板的功能。
枝 干
這里的枝干指的是以最小系統(tǒng)為根基引申出來的各個(gè)功能模塊。和大樹一樣,枝干在滿足自身生長(zhǎng)的條件下可多可少。這里簡(jiǎn)要介紹兩個(gè)擴(kuò)展功能,以展示控制器中“枝干”的設(shè)計(jì)過程。
新增枝干---溫度檢測(cè)功能:
這里想用單片機(jī)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的溫度計(jì)功能,可用于機(jī)器人中電機(jī)溫度檢測(cè),也可以稱為需求。這時(shí)我們需要做的就是選用哪種方法去實(shí)現(xiàn)溫度檢測(cè)。如果你學(xué)過51單片機(jī),可能會(huì)想到DS18B20這款單總線溫度傳感器,好這里可以把它作為一種備選方案。還有沒有其他的???我喜歡列表,畫圖去將腦海中的想法展現(xiàn)在紙面上,這里列表看看我腦中能夠列出多少種方案。
看吧,隨便一列就能夠列出5個(gè)備選方案,實(shí)際中遠(yuǎn)遠(yuǎn)不止這些。為了使文章更加豐滿,介紹更多的基礎(chǔ)電路設(shè)計(jì),這里以負(fù)溫度系數(shù)熱敏電阻作為實(shí)現(xiàn)本次任務(wù)的傳感器。
負(fù)溫度系數(shù)熱敏電阻的阻值會(huì)隨著環(huán)境溫度的升高而降低。對(duì)于型號(hào)為MF52 10K ±1%的熱敏電阻,其阻值隨溫度變化的曲線如下圖所示。在-40~70之間其阻值的線性度非常好,完全可以使用一次函數(shù)式(y=ax+b)來擬合這段曲線,然后根據(jù)電阻值去反推環(huán)境溫度。
問題推進(jìn)到現(xiàn)在,測(cè)量溫度的需求,已經(jīng)演變成了如何測(cè)量熱敏電阻阻值的需求。說道電阻,應(yīng)該能夠想起最基本的歐姆定律吧!
通過上式,我們就可以通過檢測(cè)熱敏電阻兩端電壓來確定熱敏電阻阻值。
電壓法測(cè)量熱敏電阻阻值:這種辦法比較簡(jiǎn)單,在產(chǎn)品中應(yīng)用的也較多。使用電阻R1與熱敏電阻串聯(lián),然后使用單片機(jī)ADC功能讀取VF1點(diǎn)電壓,后反推出熱敏電阻阻值,進(jìn)而計(jì)算出當(dāng)前所測(cè)試溫度。
其計(jì)算公式為:
電路中的R1需要選取一個(gè)合適的數(shù)值。選取過大,NTC兩端電壓變化范圍就會(huì)變得很窄,為后期的數(shù)據(jù)出來帶來不便。
如下圖所示,為R1分別選取了10K,55K,100K三個(gè)阻值時(shí),VF1隨溫度變化曲線。從圖中可以看出當(dāng)R1=10K時(shí),VF1的范圍很寬,并且溫度在0度到45度范圍內(nèi)變化時(shí),VF1具有很好的線性度。
相比而言當(dāng)R1選取55K和100K時(shí),VF1的表現(xiàn)就沒有那么好了。
這樣我們就在單片機(jī)最小系統(tǒng)上添加了測(cè)量溫度的功能。在整個(gè)設(shè)計(jì)過程中,我們只僅僅使用到了單片機(jī)的一個(gè)ADC口,其余都應(yīng)屬于模擬電路知識(shí)。按照這個(gè)思維,我們可以實(shí)現(xiàn)很多功能,比如你想要給控制器添加WIFI功能,通過分析也許你連原理圖都不用改,只需要購(gòu)買個(gè)具有UART的WIFI模塊就能夠?qū)崿F(xiàn),就是這么簡(jiǎn)單。
新增枝干---電路電流檢測(cè)功能:
在控制器設(shè)計(jì)中難免會(huì)涉及到檢測(cè)電流,用于電路過流保護(hù),或電機(jī)相電流檢測(cè)。這里想用單片機(jī)檢測(cè)電機(jī)某相電流,來實(shí)現(xiàn)電機(jī)的FOC控制,也可以稱為需求。
電流檢測(cè)方案有多種可供選擇,比如采樣電阻,霍爾電流傳感器,羅氏線圈。這里我選擇了電阻對(duì)電機(jī)相電流采樣。
一般檢流電阻的值都比較小,比如0.005歐姆。當(dāng)流過10A電流時(shí),電阻兩端壓差僅為50mv,這樣就不會(huì)對(duì)電路造成影響,但是會(huì)帶來一個(gè)問題,直接使用單片機(jī)ADC讀取時(shí),無法準(zhǔn)確讀取到數(shù)據(jù)。通常的做法是將電壓放大后,再使用單片機(jī)讀取。
電路設(shè)計(jì)到這里,從剛開始的電流檢測(cè)需求,已經(jīng)推進(jìn)到采樣電壓信號(hào)的放大需求。這時(shí)想到的必然是使用運(yùn)放對(duì)采樣電壓放大。
如下圖所示,選取了運(yùn)放構(gòu)成的減法電路(差分放大電路),來放大電壓信號(hào)。具體的電路計(jì)算后文詳細(xì)介紹。
這樣又在單片機(jī)最小系統(tǒng)上添加了電流檢測(cè)功能。在整個(gè)設(shè)計(jì)過程中,只僅僅使用到了單片機(jī)的一個(gè)ADC口。
枝干部分就先列舉兩例,在這種思維的指引下,你可以嘗試著實(shí)現(xiàn)其他功能,比如實(shí)現(xiàn)一個(gè)數(shù)據(jù)顯示功能,實(shí)現(xiàn)CAN通信,實(shí)現(xiàn)4-20ma信號(hào)處理。好好想想,看看有多少種可用的解決方案。
樹 葉
樹葉指的是以最小系統(tǒng)為根基引申出來的各個(gè)功能模塊中的具體電路參數(shù)。這里的設(shè)計(jì)需要根據(jù)選定的最終方案來詳細(xì)計(jì)算電路中阻容等每個(gè)元件的值和具體器件選型。
現(xiàn)在以上文中電流檢測(cè)電路為例,來介紹如何計(jì)算電路參數(shù)。
上圖中的電路原型為減法電路(也稱差分放大電路),如下圖所示
根據(jù)模電基礎(chǔ)知識(shí),其輸出電壓表達(dá)式為:,其中為差分放大器的放大倍數(shù)。
假設(shè)系統(tǒng)中需要將信號(hào)放大5倍,這時(shí)應(yīng)該等于5。這里的取值可就多了,比如100歐姆和500歐姆,1K歐姆和5K歐姆,10K歐姆和50K歐姆。這么多種組合,到底哪個(gè)組合比較好呢?在我看來在保證功耗允許的情況下,阻值越小越好。100歐姆就比1K歐姆好,1K歐姆就比10K歐姆好。
電機(jī)的三相電流波形是相位相差120度的正弦波,如下圖所示。在電流檢測(cè)過程中信號(hào)有半個(gè)周期為負(fù)值。對(duì)單電源供電的運(yùn)放,位于負(fù)半軸的電流值是無效的,無法進(jìn)行放大。此時(shí)就需要對(duì)電流波形進(jìn)行偏移,使得整個(gè)周期的電流波形都位于正半軸以上。
為了解決這個(gè)問題,只需要在下圖RB處添加直流偏移電壓Vref,輸出電流形就會(huì)向Y軸正方向偏移Vref。
此時(shí),輸出電壓表達(dá)式為(可根據(jù)疊加原理推導(dǎo)):
下圖所示,將一個(gè)30mv正弦信號(hào)放大5倍并偏移1.65V后的電流波形。
至此,我們已經(jīng)計(jì)算出了電路中的電阻參數(shù),當(dāng)Ra=1K時(shí),Rb=5K這個(gè)組合是比較好的。因?yàn)镾TM32單片機(jī)ADC引腳最大輸出電壓為3.3V,通常對(duì)電流波形偏移Vref=1.65V即可滿足要求。
主控板的設(shè)計(jì)就這樣簡(jiǎn)單,明確需求,方案選取,計(jì)算參數(shù),簡(jiǎn)單三步即可實(shí)現(xiàn)你想要的功能。這里我為大家準(zhǔn)備了大量素材,大家可添加小編領(lǐng)取。
評(píng)論
查看更多