2011年7月5日 星期二

1) AVR 晶片簡介

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 為例,晶片所在的位置如下圖所示:

image 
▲ 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) 如下:

image

而 ATmega328 TQFP 封裝的 I/O 腳位配置圖 (Pinout) 如下:

image

下一步

下一節將介紹 AVR 晶片的 I/O Ports。

延伸閱讀

2 意見:

wyrd 提到...

非常感謝詳細的解說,
對於並非本系專科又非常有興趣的人,
真的受益非淺。

Cooper Maa 提到...

不客氣

可惜我文章都是點到為止,而且也缺少精美的圖片解說(畢竟不是專業寫手啊!)。最近有一本 Arduino 即將上書,看作者部落格介紹,這本看起來蠻不錯的,推薦給你:

超圖解Arduino互動設計入門(暫定)
http://swf.com.tw/?p=341