AVR 熔丝位设置1

更新时间:2023-11-10 10:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AVR单片机烧录和熔丝位的操作初步

熔丝是一个保护知识产权的设计。

简单的说,你在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。 一般成品出售时都这样做。专用的写片机支持这个功能。 自己也可以根据芯片的官方文档来操作。

熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。0和1分别用来表示未熔断和已熔断。

mega8熔丝位:1:未编程(不选中)0:编程(选中) ******************************** 熔丝位 说明 缺省设臵 ********************************

RSTDISBL: 复位或I/O功能选择 1 1:复位功能;0:I/O功能(PC6)

WDTON: 看门狗开关 1 1:看门狗打开(通过WDTCR允许);0:看门狗禁止

SPIEN: SPI下载允许 0 1:SPI下载禁止;0:SPI下载允许(注:当使用SPI编程时,该项不可用)

EEAVE: 烧录时EEPROM数据保留 1 1:不保留;0:保留 BODEN: BOD功能控制 1 1:BOD功能禁止;0:BOD功能允许 BODLEVEL: BOD电平选择 1 1:2.7V电平;0:4.0V电平

BOOTRST: 复位入口选择 1 1:程序从0x0000地址开始执行;0:程序从引导区确定的入口地址开始执行 ********************************

BOOTSZ1/0: 引导区程序大小及入口 00 00:1024Word/0xc00; 01:512Word/0xe00; 10:256Word/0xf00; 11:128Word/0xf80

******************************** BLB02/01: 程序区指令位选择 11 11:SPM和LPM指令都允许执行 10:SPM指令禁止写程序区

01:引导区LPM指令禁止读取程序区内容;如果中断向量定义在引导区,则禁止该中断在程序区执行。

00:SPM指令禁止写程序区;引导区LPM指令禁止读取程序区内容;如果中断向量定义在引导区,则禁止该中断在程序区执行。 ******************************** BLB12/11: 引导区指令位选择 11 11:SPM和LPM指令都允许执行 10:SPM指令禁止写引导区

01:程序区LPM指令禁止读取引导区内容;如果中断向量定义在程序区,则禁止该中断在引导区执行。

00:SPM指令禁止写引导区;程序区LPM指令禁止读取引导区内容;如果中断向量定义在程序区,则禁止该中断在引导区执行。

********************************

LB2/1: 程序区加密位选择 11 11:未加密

10:程序和EEPROM编程功能禁止,熔丝位锁定 00:程序和EEPROM编程及校验功能禁止,熔丝位锁定 (注:先编程其他熔丝位,再编程加密位) ******************************** CKSEL3/0: 时钟源选择 0001 CKOPT: 晶振选择 1 SUT1/0: 复位启动时间选择 10 ********************************

CKSEL3/0=0000:外部时钟,CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;CKOPT=1:禁止该电容 ----------------

CKSEL3/0=0001-0100:已经校准的内部RC振荡,CKOPT总为1 0001:1.0M 0010:2.0M 0011:4.0M 0100:8.0M ----------------

CKSEL3/0=0101-1000:外部RC振荡,CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;CKOPT=1:禁止该电容 0101:<0.9M 0110:0.9-3.0M 0111:3.0-8.0M 1000:8.0-12.0M ----------------

CKSEL3/0=1001:外部低频晶振,CKOPT=0:允许芯片内部XTAL1/XTAL2管脚对GND各接一个36PF电容;CKOPT=1:禁止该电容 ----------------

CKSEL3/0=1010-1111:外部晶振,陶瓷振荡子,CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出 101X:0.4-0.9M 110X:0.9-3.0M 111X:3.0-8.0M

******************************** SUT1/0: 复位启动时间选择 当选择不同晶振时,SUT有所不同。

AVR单片机由于接口丰富,功能齐全,性价比好,运用越来越广。一些朋友利用网上下载的程序烧录芯片时,由于对熔丝位的意义没搞清楚,而任意改动其设臵,结果造成芯片被锁定,即不能用下载线对其读写了。(甚至会误认为芯片已坏)下面将以ATmega8(M8)为例,简单的介绍AVR单片机烧录相关知识和熔丝位的操作方法。一。内部RC振荡器

bs.yleee.net9 ^# H/ p4 w- \\( N. ^, Z

玩51单片机的朋友知道,晶振为CPU提供时钟源,单片机没有时钟源是不可能运行的。但AVR则不同,没有晶振单片机照样运行。原因是其内部有1M,2M,4Mt和8M四种频率的RC振荡器。新购入的芯片内部RC振荡器出厂默认值为1MHz。也就是只要将程序烧录到M8中,程序即可运行。当然此时单片机时钟源由内部1MHzRC振荡器提供。

bs.yleee.net6 x' ~0 M4 Q. S( o

由于芯片工艺制作上的离散性,每个芯片内部RC振荡器频率有不同的误差。因此M8在只读存储器中存储了对内部RC振荡器进行校正的字节,每个芯片校正字节的参数是不同的。

(当然在精度不高的场合,可以不作校正)

bbs.yleee.net1 X* R5 v0 Z% s; A1 u% O/ X! L

校正方法是:接好下载线,插入芯片后从烧录软件PonyPr0g2000菜单“命令”下的“读振荡器校正字节”即可中读取。如读取的字节为0xaa;我们只要在程序的初始化中加入 OSCCAL=0xaa; //校正内部RC振荡器频率,不同的芯片参数有差异

特别说明的是,使用内部RC振荡器出厂默认值为1MHz,硬件会自动将校正参数装入。只有系统在选用其它三个内部RC振荡器时,才需要将校正参数在程序中加入。

5 p/ q) z: r4 u- V 因此AVR单片机和51单片机不同的是:根据需要除可选用外部晶振作为时钟源。当然也可选用内部RC振荡器作为时钟源。

2 W W9 D* F: P( e6 |

而如何设臵是用内部时钟源还是用外部时钟源,AVR系列单片机是通过对熔丝位的操作来实现的。

( n$ n' j- A* |; s, S$ t) a

二。熔丝位的操作

AVR的芯片的烧录和熔丝位的操作,是由ISP下载线配合软件进行的,ISP下载线,十分简单,可以自制,我目前使用的冯老师制作的BBMV并口下载线,软件虽大多用PonyPr0g,但我和老冯一样还是偏爱晓奇老师的。全中文界面,操作提示,使用十分方便,祥见:http://shop.yleee.net/BBS/viewthread.php?tid=1&extra=page=1

熔丝位的操作主要为二个部分。熔丝位低字节(时钟及延时启动)和熔丝位高字节(引导),不能搞错,因为有些作品发布时不会附熔丝位设臵图,往往只告知低字节和高字节是多少。请见下图,图中熔丝位低字节是oxe1,熔丝高字节是oxd9.有了这样二个数据,你可以方便地进行熔丝位的操作了。

其实熔丝位的操作十分简单,因为绝大部分是采用的出厂默认值。下图为M8熔丝位的设臵界面。图中已用红线将其对应的功能标出。如:BODLEVEL--对应的是监测电压。你如果在BODLEVEL前的小方框内打钩,对应的功能说明区内就会有相应的说明。可以对每项都试一下,以便对熔丝位的操作功能有一定的了解。(可以不接ISP下载线只要打开软件就能试)

一乐社区9 D( r% K& _7 X8 S. q, y0 f1 c3 |3 b# t% u' X- t) g

一乐社区8 n- X! P8 U+ b: k+ ~, j$ Y' B

在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝位的状态为1(禁止);“Programmed” 表示熔丝位的状态为0(允许)。因此,配臵 熔丝位的过程实际上是“配臵熔丝位成为未编程状态1或成为已编程状态0”。 新的AVR芯片在使用前,应先查看它的熔丝位的配臵情况,建议在没有高压并行编程器的情况下,最好将各个熔丝位的状态记录备案。再根据实际需要进行熔丝位的配臵。

a56 D! f1 c C G$ m) j/ Y0 Y2 r, ^

bbs.yleee.net8 j J5 @& n. q% d0 \\7 D* ~2 |

?

对熔丝位低字节部分操作

广东yleee电子,一乐,一乐社区,yleee\ d3 B* [) ~( Q% R P: V由主要是时钟部分,启动延时二部分

广东yleee电子,一乐,一乐社区,yleee F& L4 _; x! \\5 s6 r启动延时部分可设臵一中等启动时间或采用保留黙认值。要设臵的是时钟部分 。Atmega8有4个不同时钟来源:

3 f; ]% ^. y: J

外部晶振或谐振器;外部低频率晶振;

一乐社区; i9 h6 J9 U5 {+ x. I9 l

外部RC振荡器或被校准的内部RC振荡器; 外部时钟来源。

由CKSEL0, CKSEL1, CKSEL2, CKSEL3组合决定。祥细配臵见下表,

5 P n/ b b; y1 }

$ p) f/ T) u9 a% ~ J, a

其中 外RC振荡器用的不多,如图 图中: f=1/(3RC)

w!5 K4 u2 J8 g o+ C! C8 r8 }# O2 {. R1 Q, l4 P9 f

下载 (3.78 KB) 2008-11-16 20:03

. L# T: ] g5 s0 P2 K. S5 _

对熔丝位高字节部分操作

这部分主要涉及对看门狗定时器,晶振幅度,EEPROM的操作,这不难理解,也容易设臵。没涉及这些内容时可使用黙认值。

3.AVR芯片烧录和熔丝位的操作实例 以烧录一简单的程序为例:

将AVR下载线插入目标板上,上电,打开软件,在时钟延时启动和引导部分按读键,即可了解当前芯片熔丝位的配臵状态。

W95 l. f$ B- ~ Q0 ? t) Z

如当前读出的熔丝位芯片时钟为内1MHz,现要写入芯片时钟的是内8MHz,操作如下图示。

广东yleee电子,一乐,一乐社区,yleee ]3 u: h1 L5 z

要说明的是:

如当前读出的熔丝位芯片时钟和现要写入芯片时钟一致时,可以不按《熔丝》键。直接写入。要更改芯片时钟源一定要按《熔丝》键,有的朋友在更换芯片程序写入后,发现显示出现显示闪烁等状态,不妨查一下是否更改了时钟设臵。序无法写入运行,芯片必锁无疑!

在学习熔丝位设臵操作时,建议无论是用外晶振还是内RC振荡器,还是在你的目标板或实验板上加一晶振。这也是芯片防锁的方法。

结语:在学用AVR时,曾在熔丝位设臵操作上做了些功课,以上仅供参考!更准确的还是以AVR数据手册为准。 ? ? ?

用PonyProg2000 for Windows烧写AVR MCU (zhuan)

2010-12-03 15:38 发表 系统分类:电源管理 自定义分类:avr_atmega16 标签:PonyProg2000 Windows 烧写 AVR MCU

u3/ r% I; {1 M: c8 X% t# d

在用选择外部时钟时,目标板一定要有晶振,因为你选择外部晶振,目标板上又不接晶振,程

摘要:本文主要介绍了PonyProg2000 版本2.06c beta for Windows的安装和用该程序开发AVR系列微控制器的方法,希望对于广大使用

该程序的朋友们能起到一定的帮助作用。

PonyProg2000简介:

PonyProg2000是由Claudio Lanconelli先生编制的一个可以对微控制器、电可擦写存储器进行在线串行编程的程序,PonyProg2000目前可以支持AVR微控制器、AT89S微控制器、PIC 16微控制器、PIC 12微控制器、ImBUS eeprom、SDE2506 eeprom和X2444 eeprom,PonyProg2000 V2.06c在使用中非常稳定,可以很方便的开发支持在线串行编程的微控制器。

PonyProg2000的对系统的运行环境要求不高,目前可以运行在Microsoft Windows 95/98/Me/NT/2000/XP及GNU/Linux kernel 2.4.x上,这也大大方便了跨平台的开发者。

PonyProg2000的安装:

安装前,请务必去PonyProg2000程序的主网站(http://www.LancOS.com)去下载最新的版本。

请下载PonyProg的Windows版本,下载完成后在下载的文件夹中执行解压缩操作,用鼠标点击setup.exe的图标,一切按照提示操作,就可以顺利的安装上软件。安装成功后PonyProg会在Windows的开始菜单中加入PonyProg程序项。

制作并行口烧写电缆:

下面简单的介绍一下制作并行口烧写电缆,该电缆可以用于做AVR微控制器和AT89S微控制器的在线串行编程(ISP)之用。该电缆也是本文讲述PonyProg使用的烧写电缆。

这里介绍一款最简单的烧写电缆,电路图如图1:

图1 最简单的并口编程电缆电路图

该电路的主要优点是非常简单,没有任何有源器件,适用于对3.3V至5V的器件进行编程。

对于要求比较高的朋友,这里有一款带缓冲器的下载电路,适用于对3.3V至5V的器件进行编程,该电路的优点是在编程结束后,下载电缆与用户电路的信号线都会变成高阻态,从而对用户电路的影响尽可能的小,有一定基础的朋友可以试试。电路图如图2:

图2 带缓冲的并口编程电缆电路图

PonyProg2000的设置:

PonyProg安装成功后必须进行必要的配置,例如执行烧写电缆的设置,执行系统时序校正等等,下面进行介绍: 点击开始菜单,程序,PonyProg程序组,整个过程如图3所示:

图3 在“开始”菜单中选择PonyProg程序

单击鼠标右键,出现PonyProg2000的启动画面,如图4:

图4 PonyProg启动时的欢迎界面

单击OK按钮取消,出现图5界面:

图5 PonyProg程序的主窗口

在程序的菜单中点击Setup,Interface Setup?,如图6:

图6 在PonyProg中选择端口设置选项

出现端口设置窗口,如图7:

图7 PonyProg端口设置对话框

如果你使用的是Windows 95/98/ME,在出现的“I/O port setup”窗口中单击Parallel,选择Avr ISP API,并选择LPT1,如图8的设置:

本文来源:https://www.bwwdw.com/article/9dzv.html

Top