AVR复位电路的设计
- 格式:doc
- 大小:34.50 KB
- 文档页数:2
通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程熔丝位1.选择时钟源CKSEL0-3和启动时间SUT0, SUT12.掉电检测BODLEVEL,BODEN3.选择BOOT区大小BOOTRST,BOOTSZ0, BOOTSZ14.SPIEN=0,串行下载使能;JTAGEN=1,边界扫描功能禁用;OCDEN=1片上调试禁用5.EESAVE=1芯片擦出时EEPROM内容不保留6.CKOPT=1振荡器由CKSEL0-3决定如果不需要Boot Loader 功能,则整个Flash 都可以为应用代码所用。
Boot Loader 具有两套可以独立设置的Boot 锁定位。
用户可以灵活地选择不同的代码保护方式。
用户可以选择:• 保护整个Flash 区,不让MCU 进行软件升级• 不允许MCU 升级 Boot Loader Flash 区• 不允许MCU 升级应用Flash 区• 允许MCU 升级整个Flash 区ATmega16 有两个熔丝位字节。
Notes: 1. 在SPI 串行编程模式下SPIEN 熔丝位不可访问。
2. CKOPT 熔丝位功能由CKSEL 位设置决定,详见P23 “ 时钟源” 。
3. BOOTSZ1..0 默认值为最大Boot 大小,详见 P244Table 100。
4. 不论锁位与JTAGEN熔丝位设置为什么,产品出厂时不对OCDEN编程。
对OCDEN 熔丝位编程后会使能系统时钟的某些部分在所有的休眠模式下运行。
这会增加功耗。
5. 如果没有连接JTAG 接口,应尽可能取消JTAGEN 熔丝位的编程状态,以消除存在于JTAG 接口之TDO 引脚的静态电流。
熔丝位的状态不受芯片擦除命令的影响。
如果锁定位1(LB1) 被编程则熔丝位被锁定。
在编程锁定位前先编程熔丝位。
ATmega16 提供了6 个锁定位,根据其被编程(“0”) 还是没有被编程(“1”) 的情况可以获得Table 104 列出的附加性能。
实现单片机工作的最简单系统就是单片机最小系统。
一个单片机的最小系统主要包括这几个方面:电源电路、复位电路、时钟电路。
下面我们一一介绍:电源电路:单片机是一个电子器件,一个电子器件能够工作的第一个前提就是要有电源,电源是一切电子器件工作的前提,对于单片机系统也不例外。
时钟电路:时钟电路一般由晶振和电容组成。
单片机系统为什么需要时钟电路?单片机工作的时候要有一定规律的,这个规律就是:单片机必须在周期性的时钟信号的作用下工作,如果没有时钟信号的限制,那单片机的工作就乱套了。
就像我们上班一样,我们必须在规定的时间上下班,如果我们都不按照这个规定时间上下班,那整个公司就乱套了。
典型的时钟电路如下图所示:其中X1、X2要分别接到单片机的两个时钟引脚上。
两个电容是谐振电容,作用是让晶振更稳定的工作。
复位电路:就像我们看书一样,看书的时候首先我们要拿出我们要看的书,然后翻到我们想看的那一页。
在单片机正式开始工作之前要有一个准备的过程,这个过程就是复位,复位对单片机系统来说,是一个准备开始工作的过程,在复位过程里,单片机要把所有需要用到的东西准备好,这样当单片机正式工作的时候就可以正常干活了。
复位一般分为电源复位和手动复位两种,这个跟我们的计算机相似:有开机和重启两个按钮。
电源复位是单片机系统上电到开始工作这个时间段,而手动复位就像我们重启计算机一样,是强制让它从头开始工作。
AVR单片机典型的复位电路如下图所示:AVR单片机是低电平复位,也就是说当AVR单片机的复位引脚有一个持续50ns的低电平的时候,AVR单片机就会复位。
在图中单片机的复位引脚平时被连接到电源正极的电阻嵌位在高电平,当按钮按下后,复位引脚被连到电源负极,当按钮松开后,复位引脚重新变为高点平,在按钮按下和松开这个过程一般至少持续100ms,这个时间足够产生令单片机的复位脉冲了。
对于AVR单片机来说,它内部有经过校正的内部RC振荡器,所以在对时钟精度要求不高的场合,我们可以省去时钟电路。
单片机复位电路的设计
在的单片机系统中,看门狗系统对整个单片机的运行起着特殊重要的作用,由于全部的干扰源不行能全部被隔离或往除,一旦进进CPU干扰程序的正常运行,那么复位系统结合软件处理措施就成了一道有效的纠错防备的屏障了。
常用的复位系统有以下两种:
①外部复位系统。
外部“看门狗”电路可以自己设计也可以用特地的“看门狗”芯片来搭建。
然而,他们各有优缺点,大部分专用“看门狗”芯片对低频“喂狗”信号不能响应,而高频“喂狗”信号都能响应,使其在低频“喂狗”信号下产生复位动作而在高频的“喂狗”信号下不产生复位动作,这样,假如程序系统陷进一个死循环,而该循环中恰巧有着“喂狗”信号的话,那么该复位电路就无法实现它的应有的功能了。
然而,我们自己可以设计一个具有带通的“喂狗”电路和其他复位电路构成的系统就是一个很有效外部监控系统了。
②现在越来越多的单片机都带有自己的片上复位系统,这样用户就可以很便利的使用其内部的复位定时器了,但是,有一些型号的单片机它的复位指令太过于简洁,这样也会存在象上述死循环那样的“喂狗”指令,使其失往监控作用。
有一些单片机的片上复位指令就做的比较好,一般他们把“喂狗”信号做成固定格式的多条指令依挨次来执行,假如有肯定错误则该“喂狗”操纵无效,这样就大大进步了复位电路的牢靠性。
电源芯片的复位电路设计原理
电源芯片的复位电路设计主要是为了确保芯片在上电或复位时能够正常启动和工作。
复位电路一般由复位控制器和复位电路组成。
复位控制器是一个逻辑电路,它检测电源的状态并产生复位信号。
当电源上电或复位时,复位控制器会生成一个低电平的复位信号。
复位信号会在芯片复位时保持低电平,直到芯片完成初始化并进入正常工作状态。
复位电路是根据芯片的特性和工作需求进行设计的。
一般来说,复位电路需要满足以下几个设计原理:
1. 稳定性:复位电路应该具有良好的稳定性,以确保复位信号在电源上电或复位时能够可靠地产生和保持。
2. 延时:复位电路通常需要引入适当的延时,以确保芯片在复位信号稳定之后完成初始化,并进入正常工作状态。
延时的设计要考虑芯片的初始化时间和复位信号的保持时间。
3. 电源噪声滤波:复位电路应该具有良好的抗干扰能力,以过滤掉电源的噪声干扰,确保产生的复位信号干净准确。
4. 复位电平:复位电路需要产生适当的复位电平,以确保芯片能够正确地进行
复位操作。
一般来说,电源芯片的复位电平是低电平,但具体要根据芯片的要求进行设计。
需要注意的是,不同的电源芯片可能具有不同的复位电路设计原理,具体的设计原理还需要根据芯片厂商的文档和要求进行设计。
AVR基本硬件线路设计与分析(ATmega16功能小板)基本的AVR硬件线路,包括以下几部分:1。
复位线路2。
晶振线路3。
AD转换滤波线路4。
ISP下载接口5。
JTAG仿真接口6。
电源下面以本网站推荐的AVR入门芯片 ATmega16L-8AI 分析上述基本线路。
(-8AI表示8M频率的TQFP贴片封装,工业级,更详细的型号含义资料,请参考:AVR芯片入门知识)复位线路的设计Mega16已经内置了上电复位设计。
并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。
为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。
D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。
当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。
重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。
即这部分不需要任何的外围零件。
晶振电路的设计Mega16已经内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。
不过,内置的毕竟是RC振荡,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路。
早期的90S系列,晶振两端均需要接22pF左右的电容。
Mega系列实际使用时,这两只小电容不接也能正常工作。
不过为了线路的规范化,我们仍建议接上。
重要说明:实际应用时,如果你不需要太高精度的频率,可以使用内部RC振荡。
即这部分不需要任何的外围零件。
AD转换滤波线路的设计为减小AD转换的电源干扰,Mega16芯片有独立的AD电源供电。
官方文档推荐在VCC串上一只10uH 的电感(L1),然后接一只0.1uF的电容到地(C3)。
AVR单片机特点每种MCU都有自身的优点与缺点,与其它8-bit MCU相比,AVR 8-bit MCU最大的特点是:● 哈佛结构,具备1MIPS / MHz的高速运行处理能力;● 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC 进行处理造成的瓶颈现象;● 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发;● 作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力;● 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;● 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;● 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。
● 性价比高。
开发AVR单片机,需要哪些编译器、调试器?软件名称类型简介官方网址AVR Studio IDE、汇编编译器ATMEL AVR Studio集成开发环境(IDE),可使用汇编语言进行开发(使用其它语言需第三方软件协助),集软硬件仿真、调试、下载编程于一体。
ATMEL官方及市面上通用的AVR开发工具都支持AVRStudio。
GCCAVR (WinAVR) C编译器GCC是Linux的唯一开发语言。
GCC的编译器优化程度可以说是目前世界上民用软件中做的最好的,另外,它有一个非常大优点是,免费!在国外,使用它的人几乎是最多的。
但,相对而言,它的缺点是,使用操作较为麻烦。
ICC AVRC编译器(集烧写程序功能)市面上(大陆)的教科书使用它作为例程的较多,集成代码生成向导,虽然它的各方面性能均不是特别突出,但使用较为方便。
AVR单片机ATmega16最小系统电路图
编辑:D z3w.C o m文章来源:网络我们无意侵犯您的权益,如有侵犯
请[联系我们]
下面以本网站推荐的A V R入门芯片A T m e g a16L-8A I分析A V R单片机最小系统基本电路。
(-8A I表示8M频率的T Q F P贴片封装,工业级)
1.复位线路
2.晶振线路
3.A D转换滤波线路
4.I S P下载接口
5.J T A G仿真接口
6.电源
点击查看各部分原理分析
提示:点击图片看原图
M e g a16开发板外观图
我们将此设计图,制作成了以下的M e g a16功能小板。
以后我们网站的所有新手入门范例,及应用范例,大部分会以这块小板作为实验板。
正面图:晶振可以使用螺丝固定的方法更换,方便做实验,并达到一定
的可靠性。
V C C,G N D均有一测试针。
底部图:为了方便实验,我们将这块小板的输出脚,按直插A T m e g a16的管脚排列定义。
为防止不小心掉到地上导致插针折断,加装了一只40脚的圆孔I C座做保护。
如果不小心折断,可以方便地更换圆孔I C座。
AVR单片机的复位概述复位电路的基本功能:系统上电时提供复位信号直至系统电源稳定后撤销复位信号,为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位复位简单的说就是将芯片内的PC计数器清零,工作寄存器恢复为初始值,程序从复位向量处开始执行.A.复位向量由复位FUSE来设置BOOTRST 复位地址1 复位向量= 应用区复位( 地址0x0000)0 复位向量=Boot Loader 复位B. IO寄存器包括通用IO寄存器(R0~R31)),特殊功能寄存器C.PC计数器相当于程序指针,里面的数据就是程序的绝对地址,一般它的位数决定芯片的程序的容量如: PC为8bit,则最大的程序容量为28=256条指令(空间大小根据改芯片的指令结构,单字节指令,双字节指令…指令=操作码+操作数).PC为16bit则最大的程序容量为216=64K条指令,由于A VR是双字节指令结构,所以flash的容量要求为128K,所以mega128是最大的MCU在复位向量处的指令,Mega168是绝对跳转JMP,Mega48/88是相对跳转RJMP.复位源有效时I/O 端口立即复位为初始值。
此时不要求任何时钟处于正常运行状态。
所有的复位信号消失之后,芯片内部的一个延迟计数器被激活,将内部复位的时间延长。
这种处理方式使得在MCU 正常工作之前有一定的时间让电源达到稳定的电平。
延迟计数器的溢出时间通过熔丝位SUT 与CKSEL 设定。
SUT1,SUT0决定启动时间,CKSEL3..0选择时钟源熔丝位的状态不受芯片擦除命令的影响。
如果锁定位1(LB1/LB2) 被编程则熔丝位被锁定。
在编程锁定位前先编程熔丝位。
A VR复位源上电复位。
当电源电压低于上电复位门限 VPOT 时, MCU 复位。
•• 外部复位。
当引脚 RESET 的低电平持续时间大于最小脉冲宽度时MCU 复位。
• 看门狗复位。
AVR单片机看门狗范例GCCAVR WDR 复位检测和控制看门狗内容来源:OURAVR发布时间:[2010-10-28]查看次数:805/*************************************************** AVR 复位检测和控制看门狗的范例******* ******* 作者:HJJourAVR ******* 编译器:WINAVR20050214 ******* ******* 2005.9.28 **************************************************//*本程序简单的示范了AVRATMEGA16的复位检测和控制看门狗系统控制和复位复位来源的检测JTAG复位指示看门狗复位指示BOD复位指示RESET引脚复位指示上电复位指示看门狗的控制出于简化程序考虑,各种数据没有对外输出,学习时建议使用JTAG ICE硬件仿真器。
熔丝位设置1 使能BOD功能BODEN=02 选择BOD电平BODLEVEL=1 2.7V(VCC=3V) (可选)BODLEVEL=0 4.0V(VCC=5V) (可选)*/#include <avr/io.h>#include <avr/delay.h>//时钟定为内部RC 1MHz,F_CPU=1000000 也可以采用其他时钟#include <avr/wdt.h>/*wdt.h里面看门狗溢出时间常量定义#define WDTO_15MS 0#define WDTO_30MS 1#define WDTO_60MS 2#define WDTO_120MS 3#define WDTO_250MS 4#define WDTO_500MS 5#define WDTO_1S 6#define WDTO_2S 7下面的4S/8S定义只能用于 ATtiny2313, ATmega48, ATmega88 and the ATmega168.#define WDTO_4S 8#define WDTO_8S 9看门狗操作函数wdt_disable()关闭看门狗wdt_enable(timeout)使能看门狗及溢出时间设定wdt_reset()复位看门狗(喂狗)*///管脚定义#define WDT_EN 7 //PA7 看门狗的喂狗控制引脚// 高电平,不喂狗// 低电平,喂狗#define LED_JT 4 //PA4 JTAG复位指示#define LED_WD 3 //PA3 看门狗复位指示#define LED_BO 2 //PA2 BOD复位指示#define LED_EXT 1 //PA1 RESET引脚复位指示#define LED_PO 0 //PA0 上电复位指示//以上信号皆为低电平有效int main(void){unsigned char CPU_STATUS;unsigned char i;//上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻PORTB=0xFF;//不用的管脚使能内部上拉电阻。
AVR复位电路的设计
与传统的51单片机相比,AVR单片机内置复位电路,并且在熔丝位里,可以控制复位时间,所以,AVR单片机可以不设外部上电复位电路,依然可以正常复位,稳定工作。
若是系统需要设置按键复位电路,那么注意,AVR单片机是低电平复位,如下图,设计按键复位电路:
复位线路的设计
Mega16已经内置了上电复位设计。
并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。
为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。
D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。
当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。
重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。
即这部分不需要任何的外围零件。