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