AVR 晶片簡介
AVR 是 ATmel 這家公司設計的 8 位元晶片,晶片架構來自於 Alf-Egil Bogen 和 Vegard Wollan 的構想。AVR 是 Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor 的縮寫。
AVR 目前大概可分為下列幾個家族:
- 8-bit tinyAVR 系列
- 8-bit megaAVR 系列
- 8/16-bit XMEGA 系列
- 32-bit AVRs 系列
排愈後面的等級愈高,主要是記憶體較大、速度較快、腳位和周邊也比較多。
如果沒有特別聲明,這系列教學中提到的 AVR 指的都是 8 位元的晶片。
Arduino 與 AVR 晶片的關係
前面說過,Arduino 用的就是 AVR 的晶片,你可以在 Arduino 板子上找到 AVR 晶片,以 Arduino UNO 為例,晶片所在的位置如下圖所示:
在 arduino.cc 這個頁面中,條列了 Arduino 各種版本的板子、硬體規格、所用的 MCU 等資訊。下列是幾款 Arduino 跟它們所用的 MCU 對照表:
- Arduino UNO: ATmega328
- Arduino Duemilanove: ATmega328 (剛出道時使用 ATmega168)
- Arduino Diecimila: ATmega168
- Arduino Mega: ATmega1280
- Arduino Mega 2560: ATmega2560
- Arduino NG: ATmega168 (剛出道時使用 ATmega8)
- Arduino USB: ATmega8
ATmega328 晶片的重要特性
Arduino UNO 和 Duemilanove 用的是同一顆 ATmega328 晶片,下表是 ATmega328 的晶片特性摘要:
特性 | 說明 |
---|---|
Operating Voltage | 1.8V - 5V |
Flash Memory | 32 KB |
SRAM | 2 KB |
EEPROM | 1 KB |
Clock Speed | 16 MHz |
External Interrupt | 2 |
Timer | Two 8-bit Timer/Counters with Prescaler and Compare Mode One 16-bit Timer/Counter with Prescaler, Compare and Capture Mode |
PWM Channel | 6 Channels |
ADC Channel | 8 Channels 10-bit ADC in TQFP package 6 Channels 10-bit ADC in PDIP package |
USART | 1 |
SPI | 1 |
TWI | Phlilips I2C compatible |
如果你是第一次接觸單晶片,表中很多名詞你可能不認識。不用擔心,這張表你現在只要大概瀏覽一下即可,這些周邊之後會一個個介紹。
ATmega328 的晶片封裝(IC package)
一般來說,晶片的封裝分成 PDIP 和 TQFP 兩種封裝。
註:
- PDIP 是 Plastic Dual Inline Package 的縮寫,指的是塑膠雙排針腳式封裝。
- TQFP Thin Quad Flat Pack 的縮寫,指的是薄型方形扁平封裝。
以 Arduino UNO 所用的 ATmega328 為例,它屬於 PDIP 封裝,其 I/O 腳位配置圖 (Pinout) 如下:
而 ATmega328 TQFP 封裝的 I/O 腳位配置圖 (Pinout) 如下:
下一步
下一節將介紹 AVR 晶片的 I/O Ports。
非常感謝詳細的解說,
回覆刪除對於並非本系專科又非常有興趣的人,
真的受益非淺。
不客氣
回覆刪除可惜我文章都是點到為止,而且也缺少精美的圖片解說(畢竟不是專業寫手啊!)。最近有一本 Arduino 即將上書,看作者部落格介紹,這本看起來蠻不錯的,推薦給你:
超圖解Arduino互動設計入門(暫定)
http://swf.com.tw/?p=341