AVR单片机功能模块使用.docVIP

  • 16
  • 0
  • 约1.09万字
  • 约 24页
  • 2016-12-29 发布于重庆
  • 举报
一、熔丝位配置: AVR单片机由于接口丰富,功能齐全,性价比好,运用越来越广。一些朋友利用网上下载的程序烧录芯片时,由于对熔丝位的意义没搞清楚,而任意改动其设置,结果造成芯片被锁定,即不能用下载线对其读写了。(甚至会误认为芯片已坏)下面将以ATmega8(M8)为例,简单的介绍AVR单片机烧录相关知识和熔丝位的操作方法。 一。内部RC振荡器 玩51单片机的朋友知道,晶振为CPU提供时钟源,单片机没有时钟源是不可能运行的。但AVR则不同,没有晶振单片机照样运行。原因是其内部有1M,2M,4Mt和8M四种频率的RC振荡器。新购入的芯片内部RC振荡器出厂默认值为1MHz。也就是只要将程序烧录到M8中,程序即可运行。当然此时单片机时钟源由内部1MHzRC振荡器提供。 由于芯片工艺制作上的离散性,每个芯片内部RC振荡器频率有不同的误差。因此M8在只读存储器中存储了对内部RC振荡器进行校正的字节,每个芯片校正字节的参数是不同的。(当然在精度不高的场合,可以不作校正) 校正方法是:接好下载线,插入芯片后从烧录软件PonyPr0g2000菜单“命令”下的“读振荡器校正字节”即可中读取。如读取的字节为0xaa;我们只要在程序的初始化中加入 ?? OSCCAL=0xaa; //校正内部RC振荡器频率,不同的芯片参数有差异 特别说明的是,使用内部RC振荡器出厂默认值为1MHz,硬件会自动将校正参数装入。只有系统在选用其它三个内部RC振荡器时,才需要将校正参数在程序中加入。 因此AVR单片机和51单片机不同的是:根据需要除可选用外部晶振作为时钟源。当然也可选用内部RC振荡器作为时钟源。 而如何设置是用内部时钟源还是用外部时钟源,AVR系列单片机是通过对熔丝位的操作来实现的。 二。熔丝位的操作?? ?? AVR的芯片的烧录和熔丝位的操作,是由ISP下载线配合软件进行的,ISP下载线,十分简单,可以自制,我目前使用的冯老师制作的BBMV并口下载线,软件虽大多用PonyPr0g,但我和老冯一样还是偏爱晓奇老师的。全中文界面,操作提示,使用十分方便,祥见: /BBS/viewthread.php?tid=1extra=page%3D1 熔丝位的操作主要为二个部分。熔丝位低字节(时钟及延时启动)和熔丝位高字节(引导),不能搞错,因为有些作品发布时不会附熔丝位设置图,往往只告知低字节和高字节是多少。请见下图,图中熔丝位低字节是oxe1,熔丝高字节是oxd9.有了这样二个数据,你可以方便地进行熔丝位的操作了。 其实熔丝位的操作十分简单,因为绝大部分是采用的出厂默认值。下图为M8熔丝位的设置界面。图中已用红线将其对应的功能标出。如:BODLEVEL--对应的是监测电压。你如果在BODLEVEL前的小方框内打钩,对应的功能说明区内就会有相应的说明。可以对每项都试一下,以便对熔丝位的操作功能有一定的了解。(可以不接ISP下载线只要打开软件就能试) 熔丝位.JPG (62.76 KB) 2008-11-16 09:56 在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝位的状态为1(禁止);“Programmed” 表示熔丝位的状态为0(允许)。因此,配置 熔丝位的过程实际上是“配置熔丝位成为未编程状态1或成为已编程状态0”。?? 新的AVR芯片在使用前,应先查看它的熔丝位的配置情况,建议在没有高压并行编程器的情况下,最好将各个熔丝位的状态记录备案。再根据实际需要进行熔丝位的配置。 对熔丝位低字节部分操作 由主要是时钟部分,启动延时二部分 启动延时部分可设置一中等启动时间或采用保留 。 Atmega8有4个不同时钟来源: 外部晶振或谐振器; 外部低频率晶振; 外部RC振荡器或被校准的内部RC振荡器; 外部时钟来源。 由CKSEL0, CKSEL1, CKSEL2, CKSEL3组合决定。祥细配置见下表, 其中 外RC振荡器用的不多,如图 图中: f=1/(3RC) image013.jpg (3.78 KB)2008-11-16 20:03 对熔丝位高字节部分操作 这部分主要涉及对看门狗定时器,晶振幅度,EEPROM的操作,这不难理解,也容易设置。没涉及这些内容时可使用 3.AVR芯片烧录和熔丝位的操作实例 以烧录一简单的程序为例: 将AVR下载线插入目标板上,上电,打开软件,在时钟延时启动和引导部分按读键,即可了解当前芯片熔丝位的配置状态。 如当前读出的熔丝位芯片时钟为内1MHz,现要写入芯片时钟的是内8MHz,操作如下图示。 熔丝2.JPG (114.59 KB) 2008-11-16 20:06 要说明的是: 如当前读出的熔丝位芯片时钟

文档评论(0)

1亿VIP精品文档

相关文档