AVR硬件设计(内含系统电路图)

出处:电子产品世界 发布于:2018-11-10 14:00:09

  系统

  采用了在ATmega16引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回路,并配合片内的OSC(Oscillator)振荡电路构成的振荡源作为系统时钟源的。更简单的电路是直接使用片内的4M的RC振荡源,这样就可以将C1、C2、R2和4M晶体省掉,引脚XTAL1和XTAL2悬空,当然此时系统时钟频率精准度不如采用外部晶体的方式,而且也易受到温度变化的影响。

  AVR的复位源和复位方式:

  复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其它内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。

  AVR单片机的复位操作,其主要功能是把程序计数器PC初始化为$0000(指非BOOT LOAD方式启动),使单片机从$0000单元开始执行程序。同时决大部分的寄存器(通用寄存器和I/O寄存器)也被复位操作清零。

  ATmega16单片机共有5个复位源,它们是:

  1、上电复位。当系统电源电压低于上电复位门限Vpot时,MCU复位。

  2、外部复位。当外部引脚RESET为低电平,且低电平持续时间大于1.5us时,MCU复位。

  3、掉电检测(BOD)复位。BOD使能时,且电源电压低于掉电检测复位门限(4.0v或2.7v)时,MCU复位。

  4、看门狗复位。WDT使能时,并且WDT超时溢出时,MCU复位。

  5、JTAG AVR复位。当使用JTAG接口时,可由JTAG口控制MCU复位。

  AVR复位启动后,由于程序计数器PC置为$0000,因此CPU取出的条指令就是在Flash空间的$0000处,即复位后系统程序从地址$0000处开始执行(指非BOOT LOAD方式启动)。通常在$0000地址中放置的指令为一条相对转移指令RJMP或JMP指令,跳到主程序的开始。这样,系统复位启动后,首先执行$0000处的跳转指令,然后转到执行主程序的指令。

  AVR内部的MCU控制和状态寄存器MCUCSR还将引起复位的复位源进行了记录,用户程序启动后,可以读取MCUCSR中的标记,查看复位是由于何种情况造成的,是正常复位还是异常复位,从而根据实际情况执行不同的程序,实现不同的处理。

  对AVR的编程:串行编程方式(ISP)。

  mega16的熔丝位:

  ATmega16单片机在售出时,片内的Flash 存储器和EEPROM 存储器阵列是处在擦除的状态(即内容 = $FF),且可被编程。同时其器件配置熔丝位的缺省值为使用内部1M的RC振荡源作为系统时钟!

  1.存储器加密锁定位

  ATmage16有2个加密锁定位LB1和LB2,用于设定对片内存储器的加密方式,用户可在编程方式下,对LB1、LB2不编程(1),或编程(0),从而获得对片内存储器不同的加密保护方式,见表2.3。

  需要进一步说明是:

  在AVR的器件手册中,使用已编程(Programmed)和未编程(Unprogrammed)定义加密位和熔丝位的状态。“Unprogrammed”表示熔丝状态为“1”(禁止),“Programmed”表示熔丝状态为“0”(允许),即

  1:未编程

  0:编程

  AVR的加密位和熔丝位可多次编程,不是OPT熔丝。

  AVR芯片加密锁定后(LB2/LB1 = 1/0,0/0),在外部不能通过任何方式读取芯片内部Flash和EEPROM中的数据,但熔丝位的状态仍然可以读取,不能修改配置。

  需要重新程序时,或芯片被加密锁定后,或发现熔丝位配置不对,都必须先在编程状态使用芯片擦除命令,清除芯片内部存储器中的数据,同时解除加密锁定。然后重新运行代码和数据,修改和配置相关的熔丝位,再次配置芯片的加密锁定位。

  编程状态的芯片擦除命令是将Flash和EEPROM中的数据清除,并同时将两位锁定位状态配置成无锁定状态(LB2/LB1 = 1/1)。但芯片擦除命令并不改变其它熔丝位的状态。

  编程的正确的操作程序是:在芯片无锁定状态下,运行代码和数据,配置相关的熔丝位,配置芯片的加密锁定位。

  2.系统时钟类型的配置

  ATmega16可以使用多种类型的系统时钟源,常用的为2种:使用内部的RC振荡源(1M/2M/4M/8M)和外接晶体(晶体可在0-16MHz之间选择)配合内部振荡放大器构成的振荡源。具体系统时钟类型的配置由CKOPT和CKSEL[3-0]共5个熔丝设定,表2.4、表2.5给出了具体的配置值。用户在使用中,首先要根据实际使用情况进行正确的设置,而且千万注意不要对这些熔丝位误操作!

  在表2.5中,当CKOPT = 0时,振荡器的输出振幅较大,容易起振,适合在干扰大的场合以及使用的晶体超过8M时的情况下使用。而CKOPT = 1时,振荡器的输出振幅较小,这样可以减小对电源的消耗,对外的电磁幅射也较小。

  尤其需要说明的是,一旦RESET脚的电平被外部拉低,当满足某些特殊条件后,芯片将进入编程状态。例如,如果芯片带有SPI接口,支持SPI串行编程,则通过以下方式将使芯片进入SPI编程状态:

  外部将SPI口的SCK引脚拉低,然后外部在RESET引脚上施加一个至少为2个系统周期以上低电平脉冲;

  延时等待20ms后,由外部通过AVR的SPI口向芯片下发允许SPI编程的指令;

  如果外围连接在上电情况时表现为强上拉或强下拉(极端情况为接高电平或GND),那么为了保证AVR的SPI功能的正常工作,应该如图2-20中所示,串入3个隔离电阻,阻值在2K左右。

  AVR熔丝位的配置:

  对于刚开始学习使用AVR的读者,建议改变的熔丝位有:

  系统时钟采用内部4M的RC振荡源。其优点是速度适中,且应用于RS-232通信时,分频产生的9600bps速率与标准值的误差(0.2%)。

  禁止片内的JTAG口功能。不使用JTAG在线仿真,将4个引脚PC2-PC5释放,作为普通的I/O使用。

  启用低电压检测复位功能。检测电平设置为4.0V。

关键词:电路

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!