1.ATmega系列芯片
目前Arduino的主流控制芯片就是ATMEL公司的AVR单片机,AVR单片机是时下非常流行的单片机,当然它的优势也是非常明显的。
1)简便易学,费用低廉
首先,对于非专业人士来说,选择AVR单片机的最主要原因是由于进入AVR单片机开发的门槛非常低,只要会操作计算机就可以学习 AVR 单片机的开发。单片机初学者只需一条ISP下载线,把编辑、调试通过的软件程序直接在线写入AVR单片机,即可开发AVR单片机系列中的各种封装器件。AVR单片机因此在业界号称“一线打天下”。
其次,AVR 单片机便于升级,AVR 程序写入是直接在电路板上进行程序修改、烧录等操作,从而便于产品升级。
最后,AVR单片机费用低廉。学习AVR单片机可使用ISP在线下载编程方式(即把PC上编程好的程序写到单片机的程序存储器中),不需购买仿真器、编程器、擦抹器和芯片适配器等,即可进行所有 AVR 单片机的开发应用,这可节省很多开发费用。程序存储器擦写可达10000次以上,不会产生报废品。
2)高速、低耗、保密
首先,AVR单片机是高速嵌入式单片机,具有以下特点。
(1)AVR单片机具有哈佛结构,具备IMIPS/MHz的高速运行处理能力、超功能精简指令集(RISC)、快速的存取寄存器组、单周期指令系统,从而大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发。
(2)多累加器型,数据处理速度快。AVR单片机具有32个通用工作寄存器,相当于有32条立交桥,可以快速通行。
(3)中断响应速度快。AVR单片机有多个固定中断向量入口地址,可快速响应中断。
其次,AVR单片机耗能低。对于典型功耗情况,WDT关闭时为100nA,更适用于电池供电的应用设备。有的器件最低1.8V即可工作。
最后,AVR单片机保密性能好。它具有不可破解的位加密锁LockBit技术,保密位单元深藏于芯片内部,无法用电子显微镜看到。
3)I/O口功能强,具有A/D转换等电路
(1)AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。工业级产品,具有大电流(灌电流)10~40mA,可直接驱动可控硅SCR或继电器,节省了外围驱动器件。
(2)AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器,ATmega48/8/16等器件具有8路10位A/D。
(3)部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。
(4)AVR 单片机可重设启动复位,以提高单片机工作的可靠性,有看门狗定时器实行安全保护,可防止程序走乱(飞),从而提高了产品的抗干扰能力。
到目前为止 Arduino 用到的处理器有 ATmega168A-PU、ATmega328P-PU、ATmega1280-16AU、ATmega2560-16AU。表1-1列出了各型号的主要参数。
表1-1 各型号主要参数对比
2.ATmega 芯片引脚
1)ATmega168/328引脚
(1)引脚排列
(2)引脚功能
VCC:数字供电电源。
GND:地。
端口B(PB7:0):
端口B为8位双向I/O口,并具有可编程的内部上拉电阻(每个选定位)。其输出缓冲器具有对称的驱动特性,可以输出和输入大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。芯片复位时端口B为三态,即不稳定状态。
根据不同的时钟选择熔丝设置,PB6可以作为反相振荡放大器和内部时钟工作电路的输入端。
根据不同的时钟选择熔丝设置,PB7可作为振荡放大器的反向输出端,如果内部标定RC振荡器作为芯片时钟源,PB6/PB7可以作为 T/C1、T/C2比较模块的输出。
端口C(PC5:0):
端口C为8位双向I/O口,并具有可编程的内部上拉电阻(每个选定位)。其输出缓冲器具有对称的驱动特性,可以输出和输入大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。芯片复位时端口C为三态即不稳定状态。
PC6/RESET:
如果RSTDISBL位被编程,PC6作为一个I/O引脚,请注意,PC6的电气特性与端口C的其他引脚不同。
如果 RSTDISBL 熔丝位未编程,PC6作为复位输入,该引脚上的低电平持续时间大于最小脉冲长度将产生复位,即使系统时钟没有运行。
端口D(PD7:0):
端口 D为8位双向 I/O 口,并具有可编程的内部上拉电阻(每个选定位)。其输出缓冲器具有对称的驱动特性,可以输出和输入大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。芯片复位时端口D为三态即不稳定状态。
AVCC:AVCC为内部A/D转换器供电电源引脚。
AREF:AREF为内部A/D转换器模拟参考电源(基准)引脚。
(2)ATmega1280/2560引脚
ATmega1280/2560的各引脚功能和ATmega168/328基本相同,其引脚排列图如图1-1所示:
图1-1 ATmega1280/2560引脚排列图