加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ATmega16单片机(AVR)主要特点总结

发布时间:2020-12-15 17:21:27 所属栏目:百科 来源:网络整理
导读:这款AVR单片机现在变得好贵啊!? 本不打算学习AVR的,因为早先贪多,买了本马潮老师的书(真心不错的一本书),现在不看浪费,看了不做也浪费,所以买了几块芯片做着学,反正各种处理器也没啥大的区别! 总归没有坏处. 在加上硬件基础知识真心烂啊! 希望亲自画/搭电路

这款AVR单片机现在变得好贵啊!?

本不打算学习AVR的,因为早先贪多,买了本马潮老师的书(真心不错的一本书),现在不看浪费,看了不做也浪费,所以买了几块芯片做着学,反正各种处理器也没啥大的区别! 总归没有坏处.

在加上硬件基础知识真心烂啊! 希望亲自画/搭电路好好补补,对以后学习 RISC 体系的 ARM 处理器应该也有益处. ?^_^

这篇博客内容,其实多数都是手册上或者马老师书上的(<AVR 单片机嵌入式系统原理与应用实践.2版>),之所以写博客上为了做做笔记,加深记忆. ?好了,吐槽完毕,舒畅多了,开干!!!

芯片手册有中/英文版,?可以到Atmel官网或者网络搜索下载. ?不多说.

下面就总结一下AVR单片机ATmega16的主要特点:

(注: 括号内有红色 *x*?符号的表示文章下方会有解释/扩展)?

1) ?采用 RISC 结构的AVR内核单片机.

  • 131 条机器指令,大多数指令为单个系统时钟周期执行的指令;
  • 32 个 8 位通用工作寄存器;
  • 全静态工作方式(Fully Static Operation). ? ??(*A*)
  • 工作在 16 MHz 时具有 16 MIPS 的性能.(注:?ATmega16L 系列最大工作频率为 8 MHz);
  • 内部配备有 2 个时钟周期的硬件乘法器.
2)片内自带大容量,非易失的程序和数据存储器 ? ??(*B*)
  • 16KB 在线可编程(ISP,?In-System Programming)Flash 程序存储器(擦写次数>10 000),采用 Boot load 技术支持IAP(In-Application Programming)功能.
  • 1KB片内 SRAM 数据存储器,可以实现 3 级锁定的程序加密; ? ?
  • 512 字节片内 ISP 的EEPROM 数据存储器(擦鞋次数>100 000);
3) 片内含JTAG接口
  • 支持符合 JTAG 标准(与IEEE 1149.1 标准兼容)的边界扫描功能,用于芯片检测;
  • 支持扩展的片内在线调试功能;
  • 可通过 JTAG 接口对片内 Flash,EEPROM,熔丝位和加密锁定位实现下载编程; ???(*C*)
4) 外围接口
  • 2 个带有分别独立和可设置预分频的 8 位定时/计数器;
  • 1 个带有可设置预分频器,具有比较,捕捉功能的 16 位定时/计数器;
  • 片内含独立振荡器的实时时钟 RTC;
  • 4 路 PWM 通道;
  • 8 路 10 位 ADC;
  • 面向字节的两线接口 TWI(Two—Wire Serial Interface,完全兼容 IIC 总线硬件接口);
  • 1 个可编程,增强型全双工,支持同步/异步通信的串行接口 USART;
  • 1 个可工作于主机/从机模式的 SPI (Serial Peripheral Interface Bus)串行接口(支持 ISP 程序下载);
  • 片内集成模拟比较器; ??(*D*)
  • 片内含有可编程的具有独立片内震荡期的看门狗定时器 WDT;
5)?其他特点
  • 内含上电复位电路以及可编程的掉电检测复位电路 BOD(Brown-out Detection);
  • 片内含有 1/2/4/8 MHz 经过标定的,可校正的 RC 震荡器,可作为系统时钟使用;
  • 21 种内外部中断源; ? ?(*E*)
  • 6 种休眠模式(空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及
    扩展的Standby 模式),支持节电方式工作;
  • 32 个可编程 I/O 口. 封装方式有:?40脚 PDIP 封装,44 脚 TQFP 封装,与44 脚的 MLF 封装;??(*F*)
  • 工作电压: ATmega16L 为 2.7~5.5V,ATmega16 为 4.5~5.5V;
  • 运行速度: ATmega16L为 0~8MHz,ATmega16为0~16MHz;
  • 功耗指标: ATmega16L 工作在 1MHz,3V,25摄氏度时:?典型功耗为 1.1mA,?空闲模式为 0.35mA,?掉电模式为 < 1uA;

注释A:?

全静态工作方式就是时钟停止振荡(而且手册中也说了工作频率是 0~8/16MHz),?但是寄存器和数据存储器(ATmega16采用的是 SRAM 存储器,所以不必进行定时刷新)的数据不会丢失. 前提是你电源得存在,不然就关机了不是?

注释B:

Atmega16 单片机的 Flash 程序存储器空间可以分为两段: 引导程序段(Boot Program Section)和应用程序段(Application Program section). 两段的读/写保护可以分别通过设置对应的锁定位(Lock Bits)来实现. 在引导程序段内驻留的引导程序中,可以使用 SPM 指令实现对应用程序段的写操作(即实现 IAP 功能,使系统能自懂更新系统程序). 在 AVR 中,所有的存储空间都是线型的. ?SRAM 可以通过 6 种不同的寻址方式进行访问.(分别是: 数据存储器空间直接/间接寻址,带后增/预减量的数据存储器空间的寄存器间接寻址,带位移的数据存储器空间的寄存器间接寻址,数据存储器空间堆栈寄存器 SP 间接寻址).

注释C:

熔丝是一个保护知识产权的设计。就是在特定的引脚上加上电压,足够的电流,就可以烧断里边的这根熔丝(AVR的熔丝可以多次编程,并不是 OTP 熔丝),烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行. 通过设定和配置 AVR 单片机的熔丝位,我们就可以使 AVR 具有不同特性的功能组合,更加适合实际的使用和学习. 出厂时不同熔丝位的设定值是不同的,一定要注意区分,熔丝位的配置在 AVR 单片机中非常重要,配置不好可能会锁死单片机或者不能正常工作; ?配置之前一定要对照datasheet 手册仔细核对准; 一定要发篇博客总结学习下.

注释D:

比较器是通过比较两个输入端的电流或电压的大小,在输出端输出不同电压结果的电子元件。比较器常被用于模数转换电路中。 使用 AVR 的模拟比较器就可以构成 ADC 转换器;?AVR 单片机在复位后,模拟比较器是处于允许工作状态的. 如果不使用它,就把寄存器 ACSR 的 ACD 位设置为 1,以关闭模拟比较器减少电源消耗; 与其相关的寄存器是 SFIOR 和 ACSR. AVR 的模拟比较器是 AVR 的中断源之一;

注释E:

这 21 个内外部中断源是(按优先级排序):?

? ? AVR单片机中断向量区
向量号 Flash空间地址 中断源

中断定义说明

? ??1 ? ??$000 RESET 外部引脚电平引发的复位,上电复位,掉电检测复位,
看门狗复位,JTAG AVR 复位
? ? 2 ? ??$002 INT0 外部中断 0
? ? 3 ? ??$004 INT1 外部中断 1
? ? 4 ? ??$006 TIMER 2 COMP 定时/计数器 2 比较匹配
? ? 5 ? ? $008 TIMER 2 OVF 定时/计数器 2 溢出
? ? 6 ? ??$00A TIMER 1 CAPT 定时/计数器 1 事件捕捉
? ? 7 ? ??$00C TIMER 1 COMPA 定时/计数器 1 比较匹配 A
? ? 8 ? ??$00E TIMER 1 COMPB 定时/计数器 1 比较匹配 B
? ? 9 ? ??$010 TIMER 1 OVF 定时/计数器 1 溢出
? ?10 ? ??$012 TIMER 0 OVF 定时/计数器 0 溢出
? ?11 ? ??$014 SPI STC SPI 串行传输结束
? ?12 ? ??$016 USART RXC USART,接收结束
? ?13 ? ??$018 USART UXRE USART,数据寄存器空
? ?14 ? ??$01A USART TXC USART,发送结束
? ?15 ? ??$01C ADC A/C 转换结束
? ?16 ? ??$01E EE_RDY EEPROM 就绪
? ?17 ? ??$020 ANA_COMP 模拟比较器
? ?18 ? ??$022 TWI 两线串行接口
? ?19 ? ??$024 INT2 外部中断请求 2
? ?20 ? ??$026 TIMER 0 COMP 定时/计数器 0 比较匹配
? ?21 ? ??$028 SPM_RDY 保存程序存储器内容就绪

中断向量区大小 = 中断源个数 X 每个中断向量占据字数
其中中断还分为可屏蔽中断和不可屏蔽中断(AVR 中复位为唯一一个不可屏蔽的中断).

注释F:

AVR 单片机的 I/O 口共 32 个,分为 4 组端口,每组 8 个;?4 个端口的第一功能是通用的双向 I/O 口,每位都要通过指令设置为独立的输入/输出口. 设置为输入时内部自带有上拉电阻,这些内部上拉可以通过编程设置为有效或者无效. 当输出高电平时,可输出 20mA 的电流,而当输出低电平时,可以吸收 40mA 的电流. 因此 AVR 可以直接驱动数码管和 LED 发光二极管. 另外要注意的就是,AVR 单片在复位后,所有的 I/O 口都是默认为输入方式的,上拉电阻无效,即I/O为输入高阻的三态状态. I/O空间为连续的 64 个 I/O 寄存器空间,他们分别对应单片机各个外围功能的控制和数据寄存器地址. I/O 寄存器空间可使用 I/O 寄存器访问指令直接访问,也可将其映射为通用工作寄存器组后的数据存储器空间,使用数据存储器访问指令进行操作. I/O 寄存器空间在数据存储器空间的映射地址为 $020--&05F. ?


下图是 AVR 单片机的内部结构框图:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读