12個選用微控制器的小細節

九月 30, 2016
Facebook
Twitter
图片

許多電子產品都需要微控制器(microcontroller)或微處理器(microprocessor)來當「大腦」。大致來說,如果產品功能較複雜,需要高速運算能力(像是智慧型手機或平板電腦),就要用微處理器,否則,用微控制器通常是比較好的選擇。舉例來說,Arduino便是基於微控制器,Raspberry Pi則是基於微處理器。
通常你的電子零件會需要用到微控制器。你可以把微控制器想成一台電腦,裝在單一積體電路上,包含處理器、記憶體和其他週邊裝置。微控制器的選擇很多,多到可以將你我淹沒的程度。
雖然只要在Google查些資料,就可以大致理出選擇的脈絡,不過,我個人的建議是從大的供應商(像是DigikeyArrowMouser)下手,這些廠牌的微控制器都非常容易買到,比價也比較容易。
在專題構想的階段,可以先畫一個方塊圖來表現你的系統,比方說,你想要在微控制器上面接什麼?
系統方塊圖(system block diagram)在初期計畫的時候非常有用,比方說,你可以計算專題需要多少輸入/輸出( input and output、簡稱I/O)腳位和序列埠等。
微控制器可以搭配許多不同的週邊裝置,以下是目前一些微控制器常見的配備。
記憶體:目前市面上大部分微控制器都有內建快閃(FLASH)和隨機存取(RAM)記憶體,快閃記憶體為非揮發性記憶體(電源消失後,儲存的資料不會消失),隨機存取記憶體則是揮發性記憶體,作為短暫儲存之用。另外,有些微控制器也會包含電子抹除式可複寫唯讀記憶體(EEPROM)記憶體,可以永久儲存資料。
數位通用輸入與輸出腳位(Digital General Purpose Input and Output、簡稱GPIO): GPIO是邏輯層次的輸入與輸出腳位,通常可以承受(sink)和流出 (source)幾十毫安培(millamp),可以設為漏極開路(open drain)或推挽式(push pull)應用。
類比輸入(Analog input):多數微控制器都可以精確讀取類比電壓,微控制器通過類比-數位轉接器(Analog to Digital Converter、簡稱ADC)來取樣類比訊號。 
類比輸出(Analog output): 微控制器可以透過數位-類比轉換器(Digital to Analog Converter、簡稱DAC)或脈寬調變(Pulse Width Modulation、簡稱PWM)產生器來產生類比訊號, 有些微控制器沒有DAC,但是有支援PWM方式的類比訊號輸出。
線上電路程式編寫(In Circuit Programming、簡稱ISP): 有了ISP,即使微控制器安裝在應用線路(application circuit)電路板上還是可以進行程式編寫,不用為了輸入程式碼而把微控制器拿出來! 最常見的ISP協定是 JTAG和 SWD。
無線網路:如果你的專題需要無線網路,有一些微控制器有提供 Bluetooth、WiFi、ZigBee和其他無線網路規範。
序列通訊:
所有的微控制器都可以進行某種序列通訊,我們在這邊介紹一些常見的通訊協定:
通用非同步收發傳輸器(Universal Asynchronous Receiver Transmitter、簡稱UART)是一種序列埠,發送數位文字訊息,長度通常是7到8位元,有一個起始位元,可加入校驗位元(parity bit)和1到2個停止位元(stop bit),UART時常和其他標準(如RS-232或RS-485)一起使用。
​UART是序列通訊最早的型態,UART屬於非同步協議(asynchronous protocol),沒有時序資料(clock signal), 不過,許多微控制器也有同步版本的UART,稱為USART。
序列周邊介面(Serial Peripheral Interface、簡稱SPI):SPI主要用在微控制器與週邊裝置之間的短距序列通訊,SPI屬於同步協議,包含時序資料(clock signal),規格包含四條線:資料輸入:(data in)、資料輸出(data out)、時序資料(clock)與晶片選擇訊號(chip select signals)。
內部整合電路(Inter Integrated circuit、簡稱I2C):I2C也寫作 I2C,是一種兩線序列匯流排,作為微控制器與電路板上其它晶片的通訊之用。和SPI相同,I2C也屬於同步協定,不過,I2C的資料輸入與輸出在同一條線上,也沒有晶片選擇訊號,每一個週邊裝置都有各自的位置訊息,I2C的好處在於只有兩條線,但是速度就比SPI慢上一截。
USB(Universal Serial Bus,通用序流排) 相信大家都非常熟悉,USB是目前最迅速的序列通協定(protocol)之一,通常用來連接需要大量資料傳輸的週邊配備。 
控制器區域網路(Controller Area Network、簡稱CAN) 則是為汽車相關產品設置的通訊標準。
微控制器核心
微控制器核心也有很多種,有些具有名聲,有些則值得進一步認識。
以下是四種最常見的核心:
ARM Cortex-M
2位元的ARM Cortex M系列是目前最常用的微控制器核心之一,ARM不製作或販賣微控制器 ,而是授權其它晶片製造商使用他們的硬體架構。
​有許多公司提供Cortex-M微控制器,包含意法半導體(ST Microelectronics)、飛思卡爾(Freescale Semiconductor)、芯科實驗室(Silicon Labs)、德州儀器(Texas Instruments)和Atmel等等。
Cortex M系列微控制器是上市產品中我最愛的選擇,成本低,功能強,而且四處可見。
8051
八位元的8051微控制器由Intel 在1980年代開發出來,是目前常用的微控制器核心中開發年代最早的。 8051目前的版本由早期的設計改良而來,至少有八間半導體設計廠商(semiconductor manufactures)在做。舉例來說, CSR (CSR101x)的低耗能藍牙晶片核心就是8051的。
PIC
PIC是Microchip出品的微控制器家族,非常受歡迎,有許多規格可以選擇,不同的腳位數目、封裝型態(package style)、週邊裝置選擇可以組合出幾乎無窮無盡的產品規格。
Atmel AVR
Atmel的 AVR系列微控制器最有名的應用就是作為Arduino系列開發板的大腦,對許多Maker來說,從Arduino轉換到Atmel AVR微控制器並不困難。不過,我發現AVR的價格常比其他效能相當、甚至更好的核心還高一些。 
結論
當你選好微控制器後,下一步就是設計微控制器線路與連接週邊裝置,關於這個部分,我會在本系列的下一篇文章討論。
想要學習電子儀器設計的更多知識嗎?歡迎閱讀拙作〈如何開發電子產品原型〉指南。
(譯:劉允中)
原文
Social media & sharing icons powered by UltimatelySocial