arduino笔记5:Arduino专用AVR微控制器 + ATmega168/328

笔者并非专业电子信息的,只是想用硬件来实现一些功能,但是我认为在用一个东西的时候,有必要了解这个模块的组成,即使这里面的许多专有名词并不是很熟悉。

目录

Arduino专用微控制器

接下来将会介绍ATmega168/328

1)内存

2)特性

3)封装

4)端口

5)引脚电路

6)模拟比较器输入

7)模拟输入

8)串行接口

9)定时器/时钟I/O

10)外部中断

11)arduino引脚分配

12)基本电气特征


 

Arduino专用微控制器

其实,arduino开发板只是一个AVR芯片的载体,所以arduino的电气特性多半指处理器的电气特性。芯片引脚直接连接arduino开发板边缘的针型端子或焊盘。芯片与开发板的连接点之间不存在缓冲或电平位移。

目前arduino采用的AVR设备的主要区别在于板载闪存的数量、最大时钟频率、芯片上I/O引脚的数目,以及可用的内部外围电路。

  • 以下是arduino产品使用的AVR微控制器:

 

接下来将会介绍ATmega168/328

 

 

从根本上说,ATmega168与ATmega328是一样的芯片,只是带有不同大小的板载内存。

  • 下图展示了ATmega168与ATmega328微控制器内部的框图:

 

1)内存

ATmega328中的每种内存都是ATmega168的两倍,除此之外,两者完全相同。

  • 以下是ATmega168/328板载内存:

 

 

2)特性

ATmega168/328拥有如下特性:

  • 支持片上启动程序的系统内编程(in-system programming by on-chip boot program)
  • 2个8位定时器/计数器,带有独立预分频器和比较模式
  • 1个16位定时器/计数器,带有独立预分频器、比较模式和捕获模式
  • 实时计数器,配有独立振荡器
  • 6个PWM通道
  • 6个或8个通道的10位ADC(取决于封装类型)
  • USART
  • 主从SPI串行接口
  • 双线串行接口(兼容Philips I2C)
  • 可编程看门狗定时器
  • 模拟比较器
  • 23个可编程I/O线路

 

3)封装

ATmega168与ATmega328有4种不同的封装类型可用,分别为:

  • 28-pin DIP
  • 28-pin MLF表面贴装
  • 32-pin TQFP表面贴装
  • 32-pin MLF表面贴装

其中,28-pin DIP是arduino开发板最常用的封装方式,但Uno AMD除外,它使用32-pin表面贴装方式。

这里主要介绍ATmega168的PDIP版本。

 

4)端口

ATmega168/328设计有3种类型的端口,分别为B、C、D。其中,端口B与D是8位端口,端口C有6个可用的引脚,它们可用作ADC输入。

每个端口提供双向独立的数字I/O,并带有可编程的内部上拉电阻。上拉电阻的on/off状态借由控制寄存器中特定的端口引脚位进行选择。

端口输出缓冲拥有对称的驱动特性,并带有汇和源的能力(sink and source capability)。

 

5)引脚电路

下面这张图显示了28-pin DIP封装的引脚电路:

 

 

6)模拟比较器输入

下面这张图显示使用PDIP封装的ATmega168或ATmega328的AIN0与AIN1引脚的位置。

 

 

 

注意,AIN0与OC0A定时器/计数器输出(PD6)共享一个引脚。所以,如果PD6被用作PWM输出,它就不能被用作AIN0输入,除非每次需要修改其功能时进行重新配置。

 

7)模拟输入

除了用于TWI串行通信的SCL与SDA引脚之外,模拟输入引脚也可以用作独立的数字I/O,或者用作模拟输入,不与AVR其他周边电路发生冲突。下面这张图显示ATmega168的PDIP封装的引脚,它们被用作模拟输入。

 

 

 

8)串行接口

下面显示了ATmega168(PDIP封装)的I/O引脚,串口电路会使用它们。由于没有串行电路共享端口引脚,所以3种类型都可以使用,不会发生端口冲突。

 

 

 

9)定时器/时钟I/O

ATmega168/328的内部定时器/计数器逻辑相当复杂,这反映在芯片的引脚分配上,下面这张图展示了ATmega168/328微控制器定时器/计数器引脚:

 

 

注意OCxn引脚(OC0A、OC0B、OC1A、OC1B、OC2A、OC2B)可以用作PWM输出,并且在arduino开发板上都被打上了标签。还要注意T1与OSC0B共用相同的引脚(PD5),但也可以使用其他具有PWM能力的输出,且不会与其他定时器/计数器电路发生冲突。

 

 

10)外部中断

端口D的PD2与PD3引脚特意被用作外部中断输入。

 

 

11)arduino引脚分配

ATmega168/328引脚的arduino标签:

 

 

其中,主要强调的是最常用的功能,比如独立的数字I/O、模拟输入、以及AVR控制器的PWM输出能力。

 

12)基本电气特征

 

下图展示了ATmega168/328微控制器的一些基本电气特征,重点强调的是电力消耗:

 

参考:

  1. Arduino:A Technical Reference   John M. Hughes
  2. Atmel官网:https://www.microchip.com/  因为Atmel被micropchip收购了
  3. 官方pdf文档位置:http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章