Arduino mega ADK入门教程

一、简介
Arduino Mega ADk也是采用USB接口的核心电路板,它与Mega2560最大的不同就是Mega ADK上多了一路USB主控制接口用来与Andrio系统的手机互连。Mega ADK的处理器核心是ATmega2560,同时具有54路数字输入/输出口(其中16路可作为PWM输出),16路模拟输入,4路UART接口,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。Arduino Mega2560也能兼容为Arduino UNO设计的扩展板。Arduino Mega2560已经发布到第三版,与前两版相比有以下新的特点: 
1、在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。 
2、改进了复位电路设计。 
3、USB接口芯片由ATmega16U2替代了ATmega8U2。

二、概要
1、处理器 ATmega2560 
2、工作电压 5V 
3、输入电压(推荐) 7-12V 
4、输入电压(范围) 6-20V 
5、数字IO脚 54 (其中16路作为PWM输出) 
6、模拟输入脚 16 
7、IO脚直流电流 40 mA 
8、3.3V脚直流电流 50 mA 
9、Flash Memory 256 KB (ATmega328,其中8 KB 用于 bootloader) 
10、SRAM 8 KB 
11、EEPROM 4 KB 
12、工作时钟 16 MHz 

三、电源部分
Arduino Mega ADK可以通过3种方式供电,而且能自动选择供电方式 
1、外部直流电源通过电源插座供电。 
2、电池连接电源连接器的GND和VIN引脚。 
3、USB接口直接供电。 

电源引脚说明 
VIN --- 当外部直流电源接入电源插座时,可以通过VIN向外部供电;也可以通过此引脚向Mega2560直接供电;VIN有电时将忽略从USB或者其他引脚接入的电源。 
5V --- 通过稳压器或USB的5V电压,为UNO上的5V芯片供电。 
3.3V --- 通过稳压器产生的3.3V电压,最大驱动电流50mA。 
GND --- 地脚。 
PS:ADK可以作为一个USB主控制器与手机相连,因此有时必须向手机提供电流。当ADK通过USB供电时,USB提供的500mA电流供ADK板和手机;当ADK通过外部直流供电时,ADK上的稳压器能提供1500mA电流,其中750mA用作ADK板和手机使用,另外750mA会分配给ADK所接的其他外设。 

四、存储器
ATmega2560包括了片上256KB Flash,其中8KB用于Bootloader。同时还有8KB SRAM和4KB EEPROM。 

五、输入输出
1、14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能 
4路串口信号:串口0---0(RX)and 1(TX);串口1---19(RX)and 18(TX);串口2---17(RX)and 16(TX);串口3---15(RX)and 14(TX)。其中串口0与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号。 
6路外部中断:2(中断0),3(中断 1),18(中断 5),19(中断 4),20(中断 3),and 21(中断 2)。触发中断引脚,可设成上升沿、下降沿或同时触发。 
14路脉冲宽度调制PWM(0--13):提供14路8位PWM输出。 
SPI(53(SS),51(MOSI),50(MISO),52(SCK)):SPI通信接口。 
LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。 

2、16路模拟输入:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能 
TWI接口(20(SDA)和21(SCL)):支持通信接口(兼容I2C总线)。 

3、AREF:模拟输入信号的参考电压。 

4、Reset:信号为低时复位单片机芯片。 

5、USB Host控制器MAX3421E:MAX3421E与Arduino通过SPI总线通信,它会使用以下数字接口 7(RST)、50(MISO)、51(MOSI)、52(SCK)。 
PS:不要使用数字7口作为输入或者输出,因为在ADK中它用于与MAX3421E通信。 Non broken out on headers: PJ3 (GP_MAX), PJ6 (INT_MAX), PH7 (SS). 

六、通信接口
1、串口:ATmega2560内置的4路UART可以与外部实现串口通信;ATmega16U2可以访问串口0实现USB上的虚拟串口。 
2、TWI(兼容I2C)接口: 
3、SPI 接口: 
4、MAX3421E USB主控制接口:能够与具有USB接口的所有设备相连,比如手机、相机、键盘以及游戏机等等。 

七、下载程序
1、Arduino Mega ADK上的ATmega2560已经预置了bootloader程序,因此可以通过Arduino软件直接下载程序到Mega2560中。 
2、可以直接通过Mega2560上ICSP header直接下载程序到ATmega2560。 
3、ATmega16U2的Firmware(固件)也可以通过DFU工具升级。 

八、注意要点
1、Arduino Mega ADK上USB口附近有一个可重置的保险丝,对电路起到保护作用。当电流超过500mA是会断开USB连接。 
2、Arduino Mega ADK提供了自动复位设计,可以通过主机复位。这样通过Arduino软件下在程序到Mega2560中软件可以自动复位,不需要在复位按钮。在印制板上丝印"RESET EN"处可以使能和禁止该功能。 
3、Arduino Mega ADK的设计与Arduino USB接口标准版的设计完全兼容,因此用于Arduino UNO和之前系列的扩展板也可以用在Arduino Mega ADK上。