AVR单片机ISP(在系统编程)及熔丝补救方法(DebugWIRE)

发布者:代码漫游者最新更新时间:2016-10-24 来源: eefocus关键字:AVR单片机  ISP  系统编程  熔丝 手机看文章 扫描二维码
随时随地手机看文章
并行编程,最早的编程方法,功能最强大,但需要连接较多的引脚,通常需要12V~24V的高

压,以示区别,下面称为高压并行编程。 
ISP(In System Programmability) 在系统编程,简称为串行下载。
IAP(In Application Programing) 在应用编程,BootLoader也是类似的意思 。


1 ISP虽然利用了SPI接口(例外:M64/M128为UASRT0接口,Tiny13等没有SPI接口)的引脚,但只
在复位时起作用,而且下载完成后合格的下载器会自动断开端口的连接,对正常工作时没有影响的( 
在产品应用中,下载器一定是不会一直粘在上面的)。 
2 虽然高压并行下载能修复任何熔丝位,但对于贴片封装来说是很不现实的,所以ISP接口
是最常用的下载方式了 
3 虽然IAP是一种新的升级方法,但IAP程序本身也是要先用高压并行下载或ISP来烧进芯片
里面才行 
4 Tiny13等少管脚AVR芯片因为管脚实在太少了,有ISP,但没有[高压并行编程]而特制了[高
压串行编程] 
所以,产品上一般都留有ISP接口插座,或更省位置的----留6个焊盘就行了 

ISP的工作前提:
1 芯片没有物理损坏 
2 芯片的SPIEN熔丝位=0 使能ISP功能 
3 芯片的RSTDISBL熔丝位=1 RESET引脚有效 (假如芯片有这个熔丝位) 
4 线路正常---------接错线? 短路? 
5 下载器正常-------特别要考虑 连线的接触不良问题 
6 电源

运行时钟 ISP时钟(必须低于运行时钟的1/4) 
4096Hz <1024Hz //很变态的用法,外接32.768KHz晶体+CKDIV8 ,不过AVRISP还是提供了603Hz这个速度了 
//另一简易解决办法是 
下载时在32.768KHz晶体并联一个1MHz晶体,双龙的下载线就配有一个8MHz的石英晶体 
32768Hz <8192Hz 
128KHz < 32KHz //内部RC128KHz 
1.0MHz <250KHz 
//默认值(包括8MHz+CKDIV8),所以AVRISP的ISP速度多为230KHz
8.0MHz <2000KHz 
16.0MHz <4000KHz 
运行时钟不等于震荡器的频率,因为部分AVR芯片有系统时钟预分频器,可以对震荡器进行
1~256分频 
CKDIV8熔丝位决定CLKPS位的初始值。 
若CKDIV8未编程,CLKPS位复位为“0000”;若CKDIV8 已编程,CLKPS 位复位为“0011”,
给出启动时分频因子为8
AVRISP可提供的ISP时钟 921.6KHz,230.4KHz, 57.6KHz,28.8KHz,4.0KHz, 603Hz 
STK500可提供的ISP时钟 1.845MHz,460.8KHz,115.2KHz,57.6KHz,4.0KHz,1206Hz
时钟设定 ISP方案 
内部RC 选择合适的ISP速度 
外部RC 接上合适的电阻和电容,选择合适的ISP速度。------补救: 外部时钟源
接到XTAL1 
外部RC 
根本就没有什么意义,频率精度/稳定度不高,成本也没有降低,所以新的AVR芯片已经没有
这个选项了。 
各位网友要注意的是错误设定后补救方法 
外部晶体 接上合适的晶体,选择合适的ISP速度。 ------补救: 外部时钟源
接到XTAL1 
外部时钟 接上合适的时钟源,选择合适的ISP速度。 ------补救: 外部时钟源
接到XTAL1 
外部时钟源可以是 外部(4MHz)有源晶体输出,其他MCU的XTAL2脚,各种方波振荡电路
(NE555)输出等

大部分AVR芯片的ISP端口是 SCK,MOSI,MISO,RESET 
而M64/M128的ISP端口是 SCK, PDI, PDO,RESET 
而且M64/M128出厂默认兼容M103----熔丝位M103C=0,很多新特性不能使用,程序也可
能不能正常运行 
----因为C编译器通常默认自动把SP指向SRAM的末端,M103=0x0FFFH, 
M64/M128=0x10FFH,必然出错!

AVR的所有熔丝位均是: 
1 未编程,多为不起作用的意思。 
0 编程,多为 起作用的意思。 
基于可编程工艺的都是这样: 
PROM/EEPROM/FLASH都是出厂时和擦除后变为全1(0xFF)的,要编程才能变成0。 
反过来就是了,跟CE/OE/INT都是[低电平有效]一样,都是很常见。

在ISP模式下永远不能访问(修改)SPIEN位,这是AVR芯片的硬件保护 
有独立RESET脚的M16/M32/M64/M128等,在ISP模式下根本就就不会令ISP无效,无论如何修
改熔丝位,都能恢复正常。 
M8/M48/M88/M168/Tiny系列有RSTDISBL熔丝位可以令导致RESET失效而令ISP无法工作外,其
他情况都能恢复正常。
一般来说,只要满足ISP的工作前提,再把XTAL1接到一个4MHz有源晶体的输出,基本是万试
万灵的。
不要忘记,并行高压编程的时钟信号也是从XTAL1导入方波信号的。 
如果有源晶振的方法不行(除了ISPEN=0,RSTDISBL=0情况外),恐怕高压编程也未必能奏效。

JTAG的影响(M16,M32,M128等): 
JTAG能访问 SPIEN 和 
JTAGEN,要是不小心同时改成SPIEN=1,JTAGEN=1,将会导致MCU锁死,需要高压并行编程才
能恢复。

DebugWIRE的影响:(M48,M88,M168,T2313等,数据手册里面的资料不是很详细) 
由于DebugWIRE使用RESET脚来通讯,所以跟ISP有所冲突 
可以通过ISP或并行高压编程来使能DebugWIRE功能[即DWEN=0],使能DebugWIRE功能
后,ISP功能失效。 

可以通过DebugWIRE来关闭DebugWIRE功能[即DWEN=1],关闭DebugWIRE功能后,如果
RSTDISBL=1,SPIEN=0,ISP功能有效。

比较特殊的是 DebugWIRE调试中,断点的使用会降低Flash 数据记忆时间 DebugWIRE调
试用的器件不能发给最终客户。

JTAG MKII同时具备JTAG/DeubgWIRE/ISP三种功能,可以轻松实现DebugWIRE/ISP的切换。 
(软件需要升级到1.09版以后 即对应AVRstudio 4.12以后版本) 
最新版本 JTAG MK2使用说明中文pdf(20051125) 
设计使用debugWIRE 的系统时,必须进行下面的检查: 
-dW/(RESET) 的上拉电阻不得小于10kΩ。debugWIRE 并不需要上拉电阻 
-将 RESET 引脚与 VCC 直接连接将无法工作 
-使用debugWIRE 时必须断开与RESET 引脚连接的电容 
-必须断开所有的外部复位源

关键字:AVR单片机  ISP  系统编程  熔丝 引用地址:AVR单片机ISP(在系统编程)及熔丝补救方法(DebugWIRE)

上一篇:Atmega 16的按键使用
下一篇:AVR单片机之Bootloader技术详解

推荐阅读最新更新时间:2024-03-16 15:17

AVR单片机PWM试验程序
//本试验输出口为PD5 ,输出电压可以调节0---5V。 此图电压输出位0.6V 以下是程序源码可从 http://www.51hei.com/f/avrpwmcx.rar 下载源文件. // ATMEGA16 晶振8MHZ #include iom16.h #define uchar unsigned char #define uint unsigned int #define xtal 8 __flash uchar seg7 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管码表 __flash uchar t
[单片机]
<font color='red'>AVR单片机</font>PWM试验程序
AVR单片机熔丝位设置
对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, Unprogrammed 表示熔丝状态为 1 (禁止); Programmed 表示熔丝状态为 0 (允许)。因此,配置熔丝位的过程实际上是 配置熔丝位成为未编程状态 1 或成为已编程状态 0 。 (2)在使用通过选择打钩 方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚 表示设置熔丝位状态为 0 还是为 1 。 (3)使用C
[单片机]
学习笔记-avr单片机C编程1
这几天在看AVR单片机的书。ASURO的项目的编程是建立在已有的成熟函数上,所以导致我对AVR单片机的运行机理(中断、定时器的使用)不甚了解。突然一个个超声波模块的程序放在眼前,才发现我连AVR单片机的了解基本上等于零。另外一个项目需要用mega128控制直流电机,还有和无线、有线遥控器的通信,电路(模块)需要自己搭起来,那么就必须知道AVR单片机的原理和编程。 和已经学过的51单片机相比,MEGA系列单片机是十分高级的单片机,功能强大,因而在构造和使用上也复杂了一些。 存储器区别,AVR分为5个部分,访问指令上有区别。 输入输出,51是准双向口,每个端口只有一个寄存器。而AVR的I/O口是标准双向口,
[单片机]
avr单片机eeprom初始化配置说明
ATmega16 包含 512 字节的 EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。 EEPROM 的寿命至少为 100,000 次擦除周期。 EEPROM 的访问 由地址寄存器、数据寄存器和控制寄存器决定。 /* EEPROM 数据存储器 EEPROM 地址寄存器(EEARH 和 EEARL) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 Res: 保留
[单片机]
AVR单片机主要特性简介
AVR 单片机 是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 AVR的主要特性   高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量 单片机 性能的重要指标,也是单片机占领市场、赖以生存的必要条件。   早期 单片机 主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施
[单片机]
如何学好AVR单片机介绍
随着各IC厂商推出各种高性能的单片机,51单片机已经远远不能满足大家对高性能单片机的需求。目前很多公司和学校已经开始转向AVR单片机了,相信在未来几年,AVR将会非常兴旺,所以学习AVR单片机将会很有前途。 相比经典的51系列来说, AVR 单片机 突出的优点主要有以下几点: 一、速度快。AVR是精简指令集单片机,其速度可以达到1MIPS/秒,理论上是传统的51的12倍,实际上在10倍左右。 二、片上资源丰富。MEGA系列片上具备JTAG仿真和下载功能。片内含有看门狗电路、片内程序Flash、片内数据RAM、同步串行接口SPI、异步串口UART、内嵌AD转换器、EEPROM、模拟比较器、PWM定时计数器、TWI(IIC)
[单片机]
基于AVR单片机的终端显控设计方案
1 引言 随着信息产业的迅速发展,作为信息显示终端之一的LCD器件也得到了空前的发展。液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点。近些年来被广泛应用于单片机控制的智能仪器、仪表和低功耗电子产品中。为LCD配置驱动电路,就形成了液晶显示模块LCM(Liquid Crystal Module)。它的基本组成部件除了LCD、驱动电路外一般还有连接件、背光源等。液晶显示模块同一个系统中的其他电路一样,有简单的接口,并提供了丰富的控制显示的指令系统。为整机的开发节约了时间。AVR单片机是Atmel公司推出的具有精简指令集RISC结构的新型8位单片机。具有丰富的硬件接口。它采用低
[电源管理]
一种基于AVR单片机的工频干扰滤除快速算法
摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。 关键词:单片机 定点小数 FIR 工频干扰 分配系数法 VMLAB 工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved