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