1-3 Atmega328P微控制器:
這次主要使用Arduino Uno當作我們的開發平台,而Arduino Uno使用Atmel Atmega328P微控制器。
Atmel Atmega328P微控制器為Atmel的一款AVR架構8位元的處理器。AVR架構屬於RISC(複雜指令集)。
如圖為Atmega328P的架構圖。 如圖為Atmega328P的腳位圖。 透過這張圖,可以看到ATmega328P擁有:
- 28隻Pin腳。
- 其中GPIO擁有PB,PC,PD每一個8根腳,共24腳的GPIO。
- 一組USART通訊,位於編號2(RXD)與3(TXD)。
- 兩個外部中斷,位於編號4(INT0)與5(INT1)。
- 1組SPI通訊,位於編號18(MISO)與17(MOSI),19(SCK)。
- ADC輸出,位於編號23(ADC0),24(ADC1),25(ADC2),26(ADC3),27(ADC4),28(ADC5)。
如圖為Atmega328P的暫存器圖。 共有32個通用暫存器(General Purpose Working Register,R0~R31), R0~R25供開發者儲存資料使用。R26~R31為X,Y,Z暫存器,可用來進行間接定址。
如圖為Atmega328P的記憶體分佈圖。
- 32個通用暫存器。
- 64個IO暫存器(特殊功能暫存器,Special Function Register),用來進行IO的控制。
- 160個外部IO暫存器。
- 2048x8bit的內部記憶體。