2011年7月5日 星期二

From Arduino to AVR 單晶片教學

前言

單晶片微電腦 (Single Chip Microcomputer),或稱微控制器 (Microcontroller,縮寫為 µC 或 MCU),是一個將 CPU、記憶體、I/O Port 等周邊電路全部整合為一體的晶片。不像微處理器需要外部電路連接周邊,微控制器的應用只要少許的電路就可以運作,因為所有必要的周邊它都內建了。微控制器主要用在嵌入式系統,例如汽車電子、工業控制、機械控制等領域。

著名的 Arduino 板子上也有一顆微控制器,它是 AVR 的晶片,例如 Arduino UNO, Duemilanove 用的是 ATmega328,Arduino Diecimila 的是 ATmega168,而早期的 Arduino USB 則是使用 ATmega8。

Arduino 在歐美非常流行,因為它超簡單,很快就可以上手,我認為從 Arduino 到 AVR 是一條進入單晶片韌體開發的捷徑,因此著手撰寫這一系列的教學文件,希望這可以幫助想學單晶片韌體開發的新手,也希望能夠拋磚引玉,藉此引出高手發表佳文,同時也希望路過的先進不吝指教。

教學目標

我假設讀者你是單晶片新手,我不打算一次把所有與單晶片有關的東西全塞到你腦袋裏,因為這麼做其實是揠苗助長,適得其反,因此這系列的教學將維持 Arduino 一貫的簡約風格,點到為止。這系列教學的目標為:

  • 帶你認識 AVR 單晶片以及其周邊,包括 I/O Ports, Interrupt, Timer, USART, PWM, ADC 等。
授課對象

你必須具備下列基礎:

  1. 寫過 Arduino 程式

    如果你沒接觸過 Arduino,建議你先看「Arduino 入門教學」。
  2. 熟悉 C 語言
上課器材

你需要一張 Arduino 板子,一條 USB 傳輸線,以及 Arduino IDE 軟體開發環境:

imageimage
▲ Arduino UNO 與 USB 傳輸線

image
▲ Arduino IDE

教學目錄

1) AVR 晶片簡介

2) I/O Ports

2.1) Blink part 1
2.1) Blink part 2
2.2) Button

3) Interrupts

3.1) External Interrupts

4) Timers

4.1) Blink with Timer
4.2) Timer as a Counter

5) USART

5.1) USART Transmitter
5.2) USART Receiver

6) PWM

6.1) PWM modes part 1
6.1) PWM modes part 2
6.2) Fading

7) ADC

相關網站

0 意見: