历史上的今天
返回首页

历史上的今天

今天是:2025年02月08日(星期六)

正在发生

2020年02月08日 | AVR单片机熔丝位的配置

2020-02-08 来源:eefocus

(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是 “配置熔丝位成为未编程状态“1”或成为已编程状态“0””。


(2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。


(3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用 “all”选项,应先使用“read->fuse bits”读取芯片中熔丝位实际状态后,再使用“all” 选项。


(4)新的AVR芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个熔丝位的状态记录备案。


(5) AVR芯片加密以后仅仅是不能读取芯片内部Flash和E2PROM中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯片擦除命令是将Flash和 E2PROM中的数据清除,并同时将两位锁定位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。


(6)正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。


(7)使用ISP串行方式下载编程时,应配置SPIEN熔丝位为“0”。芯片出厂时SPIEN位的状态默认为“0”,表示允许ISP串行方式下载数据。只有该位处于编程状态“0”,才可以通过AVR的SPI口进行ISP下载,如果该位被配置为未编程“1”后,ISP串行方式下载数据立即被禁止,此时只能通过并行方式或JTAG编程方式才能将SPIEN的状态重新设置为“0”,开放ISP。通常情况下,应保持SPIEN的状态为“0”,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电路设计时,注意ISP接口与其并接的器件进行必要的隔离,如使用串接电阻或断路跳线等。


(8)当你的系统中,不使用JTAG接口下载编程或实时在线仿真调试,且JTAG接口的引脚需要作为I/O口使用时,必须设置熔丝位JTAGEN的状态为“1”。芯片出厂时JTAGEN的状态默认为 “0”,表示允许JTAG接口,JTAG的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“1”后,JTAG接口立即被禁止,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“0”,开放JTAG。


(9)一般情况下不要设置熔丝位把RESET引脚定义成I/O使用(如设置ATmega8熔丝位RSTDISBL的状态为“0”),这样会造成ISP的下载编程无法进行,因为在进入ISP方式编程时前,需要将RESET引脚拉低,使芯片先进入复位状态。


(10)使用内部有RC振荡器的AVR芯片时,要特别注意熔丝位CKSEL的配置。一般情况下,芯片出厂时CKSEL位的状态默认为使用内部1MHz的RC振荡器作为系统的时钟源。如果你使用了外部振荡器作为系统的时钟源时,不要忘记首先正确配置CKSEL熔丝位,否则你整个系统的定时都会出现问题。而当在你的设计中没有使用外部振荡器(或某钟特定的振荡源)作为系统的时钟源时,千万不要误操作或错误的把CKSEL熔丝位配置成使用外部振荡器(或其它不同类型的振荡源)。一旦这种情况产生,使用ISP编程方式则无法对芯片操作了(因为ISP方式需要芯片的系统时钟工作并产生定时控制信号),芯片看上去“坏了”。此时只有使用取下芯片使用并行编程方式,或使用JTAG方式(如果JTAG为允许时且目标板上留有JTAG接口)来解救了。另一种解救的方式是:尝试在芯片的晶体引脚上临时人为的叠加上不同类型的振荡时钟信号,一旦ISP可以对芯片操作,立即将CKSEL配置成使用内部1MHz的RC振荡器作为系统的时钟源,然后再根据实际情况重新正确配置 CKSEL。


(11)使用支持IAP的AVR芯片时,如果你不使用BOOTLOADER功能,注意不要把熔丝位BOOTRST设置为 “0”状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“1”。关于BOOTRST的配置以及BOOTLOADER程序的设计与IAP的应用请参考本章相关内容。


二、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有所不同。


三、时钟选择一览表


时钟源                     启动延时            熔丝 
外部时钟                   6 CK + 0 ms         CKSEL=0000 SUT=00 
外部时钟                   6 CK + 4.1 ms       CKSEL=0000 SUT=01 
外部时钟                   6 CK + 65 ms        CKSEL=0000 SUT=10 
内部RC振荡1MHZ             6 CK + 0 ms         CKSEL=0001 SUT=00 
内部RC振荡1MHZ             6 CK + 4.1 ms       CKSEL=0001 SUT=01 
内部RC振荡1MHZ             6 CK + 65 ms        CKSEL=0001 SUT=10 
内部RC振荡2MHZ             6 CK + 0 ms         CKSEL=0010 SUT=00 
内部RC振荡2MHZ             6 CK + 4.1 ms       CKSEL=0010 SUT=01 
内部RC振荡2MHZ             6 CK + 65 ms        CKSEL=0010 SUT=10 
内部RC振荡4MHZ             6 CK + 0 ms         CKSEL=0011 SUT=00 
内部RC振荡4MHZ             6 CK + 4.1 ms       CKSEL=0011 SUT=01 
内部RC振荡4MHZ             6 CK + 65 ms        CKSEL=0011 SUT=10 
内部RC振荡8MHZ             6 CK + 0 ms         CKSEL=0100 SUT=00 
内部RC振荡8MHZ             6 CK + 4.1 ms       CKSEL=0100 SUT=01 
内部RC振荡8MHZ             6 CK + 65 ms        CKSEL=0100 SUT=10 
外部RC振荡≤0.9MHZ        18 CK + 0 ms         CKSEL=0101 SUT=00 
外部RC振荡≤0.9MHZ        18 CK + 4.1 ms       CKSEL=0101 SUT=01 
外部RC振荡≤0.9MHZ        18 CK + 65 ms        CKSEL=0101 SUT=10 
外部RC振荡≤0.9MHZ         6 CK + 4.1 ms       CKSEL=0101 SUT=11 
外部RC振荡0.9-3.0MHZ      18 CK + 0 ms         CKSEL=0110 SUT=00 
外部RC振荡0.9-3.0MHZ      18 CK + 4.1 ms       CKSEL=0110 SUT=01 
外部RC振荡0.9-3.0MHZ      18 CK + 65 ms        CKSEL=0110 SUT=10 
外部RC振荡0.9-3.0MHZ       6 CK + 4.1 ms       CKSEL=0110 SUT=11 
外部RC振荡3.0-8.0MHZ      18 CK + 0 ms         CKSEL=0111 SUT=00 
外部RC振荡3.0-8.0MHZ      18 CK + 4.1 ms       CKSEL=0111 SUT=01 
外部RC振荡3.0-8.0MHZ      18 CK + 65 ms        CKSEL=0111 SUT=10 
外部RC振荡3.0-8.0MHZ       6 CK + 4.1 ms       CKSEL=0111 SUT=11 
外部RC振荡8.0-12.0MHZ     18 CK + 0 ms         CKSEL=1000 SUT=00 
外部RC振荡8.0-12.0MHZ     18 CK + 4.1 ms       CKSEL=1000 SUT=01 
外部RC振荡8.0-12.0MHZ     18 CK + 65 ms        CKSEL=1000 SUT=10 
外部RC振荡8.0-12.0MHZ      6 CK + 4.1 ms       CKSEL=1000 SUT=11 
低频晶振(32.768KHZ)       1K CK + 4.1 ms       CKSEL=1001 SUT=00 
低频晶振(32.768KHZ)       1K CK + 65 ms        CKSEL=1001 SUT=01 
低频晶振(32.768KHZ)      32K CK + 65 ms        CKSEL=1001 SUT=10 
低频石英/陶瓷振荡器(0.4-0.9M) 258 CK + 4.1 ms    CKSEL=1010 SUT=00 
低石英/陶瓷振荡器(0.4-0.9M)   258 CK + 65 ms     CKSEL=1010 SUT=01 
低石英/陶瓷振荡器(0.4-0.9M)    1K CK + 0 ms      CKSEL=1010 SUT=10 
低石英/陶瓷振荡器(0.4-0.9M)    1K CK + 4.1 ms    CKSEL=1010 SUT=11 
低石英/陶瓷振荡器(0.4-0.9M)    1K CK + 65 ms     CKSEL=1011 SUT=00 
低石英/陶瓷振荡器(0.4-0.9M)   16K CK + 0 ms      CKSEL=1011 SUT=01 
低石英/陶瓷振荡器(0.4-0.9M)   16K CK + 4.1ms     CKSEL=1011 SUT=10 
低石英/陶瓷振荡器(0.4-0.9M)   16K CK + 65ms      CKSEL=1011 SUT=11 
中石英/陶瓷振荡器(0.9-3.0M)   258 CK + 4.1 ms    CKSEL=1100 SUT=00 
中石英/陶瓷振荡器(0.9-3.0M)   258 CK + 65 ms     CKSEL=1100 SUT=01 
中石英/陶瓷振荡器(0.9-3.0M)   1K CK + 0 ms       CKSEL=1100 SUT=10 
中石英/陶瓷振荡器(0.9-3.0M)   1K CK + 4.1 ms     CKSEL=1100 SUT=11 
中石英/陶瓷振荡器(0.9-3.0M)   1K CK + 65 ms      CKSEL=1101 SUT=00 
中石英/陶瓷振荡器(0.9-3.0M)  16K CK + 0 ms       CKSEL=1101 SUT=01 
中石英/陶瓷振荡器(0.9-3.0M)  16K CK + 4.1ms      CKSEL=1101 SUT=10 
中石英/陶瓷振荡器(0.9-3.0M)  16K CK + 65ms       CKSEL=1101 SUT=11 
高石英/陶瓷振荡器(3.0-8.0M)    258 CK + 4.1 ms   CKSEL=1110 SUT=00 
高石英/陶瓷振荡器(3.0-8.0M)    258 CK + 65 ms    CKSEL=1110 SUT=01 
高石英/陶瓷振荡器(3.0-8.0M)    1K CK + 0 ms      CKSEL=1110 SUT=10 
高石英/陶瓷振荡器(3.0-8.0M)    1K CK + 4.1 ms    CKSEL=1110 SUT=11 
高石英/陶瓷振荡器(3.0-8.0M)    1K CK + 65 ms     CKSEL=1111 SUT=00 
高石英/陶瓷振荡器(3.0-8.0M)    16K CK + 0 ms     CKSEL=1111 SUT=01 
高石英/陶瓷振荡器(3.0-8.0M)    16K CK + 4.1ms    CKSEL=1111 SUT=10 
高石英/陶瓷振荡器(3.0-8.0M)    16K CK + 65ms     CKSEL=1111 SUT=11

注:1、出厂默认设置

推荐阅读

史海拾趣

GTM公司的发展小趣事

关于电源反馈控制电路,网友们可能会提出多种问题,这些问题涵盖了其工作原理、设计、应用、故障排查及优化等方面。以下是一些常见问题及其简要回答:

  1. 问题:什么是电源反馈控制电路,它的主要作用是什么?
    回答:电源反馈控制电路是一种通过监测电源输出电压或电流,并将其与设定值进行比较,然后调整电源输出以维持设定值的电路。它的主要作用是确保电源输出的稳定性和准确性,无论负载如何变化,都能保持输出电压或电流在预定范围内。

  2. 问题:电源反馈控制电路有哪些常见的拓扑结构?
    回答:常见的电源反馈控制电路拓扑包括电压模式控制(Voltage Mode Control, VMC)和电流模式控制(Current Mode Control, CMC)。电压模式控制主要关注输出电压的稳定性,而电流模式控制则在电压控制的基础上增加了对输出电流的直接控制,以提高瞬态响应和稳定性。

  3. 问题:如何设计有效的电源反馈控制电路?
    回答:设计有效的电源反馈控制电路需要考虑多个因素,包括选择合适的反馈元件(如电阻、电容、电感)、放大器类型(运算放大器、比较器等)、补偿网络设计(以改善稳定性和响应速度)、以及选择合适的控制策略(如PID控制)。此外,还需要进行仿真和实验验证,以确保设计的电路能够满足性能指标。

  4. 问题:电源反馈控制电路中遇到稳定性问题时应该如何解决?
    回答:遇到稳定性问题时,首先需要检查反馈回路中的元件是否匹配良好,特别是补偿网络的设计是否合理。可以通过调整补偿网络的参数(如增加相位裕度)来改善稳定性。此外,检查控制策略是否适合当前的应用场景,必要时可以更换控制策略或调整控制参数。

  5. 问题:电源反馈控制电路中的噪声问题如何解决?
    回答:噪声问题通常来源于电源本身、外部环境或电路内部元件。解决噪声问题的方法包括使用低噪声的电源元件、增加滤波电路(如LC滤波器)、优化PCB布局以减少电磁干扰、以及采用差分放大器等噪声抑制技术。

  6. 问题:电源反馈控制电路在哪些领域有广泛应用?
    回答:电源反馈控制电路在电子设备的各个领域都有广泛应用,包括但不限于计算机电源、通信设备、工业控制、汽车电子、医疗设备、LED照明等。这些领域对电源的稳定性和效率要求很高,因此电源反馈控制电路成为不可或缺的一部分。

Electro-Films Inc Semi-Films Div公司的发展小趣事

进入21世纪后,随着全球电子产业的蓬勃发展,Semi-Films Division 开始积极拓展国际市场。公司参加了多个国际性的电子产品展览会,与全球各地的客户建立了联系。同时,公司还加大了对海外市场的投入,设立了多个海外办事处和代理商,为客户提供更加便捷的服务。这些举措使得 Semi-Films 的产品逐渐走向世界,成为国际知名的薄膜材料供应商。

长园维安(CYGWAYON)公司的发展小趣事

长园维安始终关注环保和可持续发展。公司积极推行绿色制造和循环经济模式,降低生产过程中的能耗和排放。同时,长园维安还注重产品环保性能的研发和改进,为客户提供更加环保、节能的产品。这些努力使长园维安在电子行业中树立了绿色发展的典范。

Frolyt Condensers & Elements GmbH公司的发展小趣事

在电子元件领域,Frolyt Condensers & Elements GmbH起初是一家专注于电容器研发的小型制造商。2005年,公司研发团队成功开发出一种新型高性能铝电解电容器,该电容器在耐高温、长寿命和低阻抗方面表现出色,迅速吸引了市场的关注。通过持续的技术创新和严格的品质控制,Frolyt的电容器产品在汽车电子、通信设备等多个领域得到广泛应用,公司因此实现了市场份额的快速增长。

意华(CZT)公司的发展小趣事

为了实现公司的长远发展,意华于2010年开始筹备上市工作。经过多年的准备和努力,意华成功在资本市场上市,为公司的发展注入了新的活力。上市后,意华通过资本市场融资和资本运作,加速了公司的扩张和技术创新步伐。同时,公司也更加注重规范运作和透明度提升,赢得了投资者的信任和支持。

芯朋微电子(chipown)公司的发展小趣事

芯朋微电子成立于2005年,初期由一群来自中国华晶电子集团的专家组成。公司创立之初,就专注于电源管理芯片的研发。经过数年的技术积累,2008年,芯朋微电子成功研发出“700V单片MOS集成AC-DC电源芯片”系列,这一突破打破了进口芯片的垄断,赢得了国内家电品牌厂商的认可,为公司在家电领域的快速发展奠定了基础。

问答坊 | AI 解惑

DSP编程的几个关键问题!!!(经典!!!)

找到一份好资料,跟大家分享一下,顺便挣点钱!!o(∩_∩)o...…

查看全部问答>

转载:多种传感器书籍大集锦

刚在网上看到的,迫不及待的与大家分享,转自OURAVR [ 本帖最后由 绿茶 于 2009-4-9 13:21 编辑 ]…

查看全部问答>

有没有纯数字的精确测量信号时间间隔的方法?

十个ns左右的误差范围啊,疯了都,目前我想到两个方法,一个是精确扩展计数时间,一个是多测几次,牺牲测量速度,不好弄…

查看全部问答>

HI-TECH C V9.70 和谐文件

HI-TECH C Compiler for PIC10-12-16 MCUs V9.70 已经测试过,破解成功! 1,先安装HI-TECH C Compiler for PIC10-12-16 MCUs V9.70  安装路径为默认路径 \"C 盘下\" 激活PICC 45天试用版! 2,破解,先写入注册文件,运行破解文件, ...…

查看全部问答>

DDRAW程序问题,在全屏方式下,用创建程序的方式打开一个程序后,程序的界面显示不出来,LCD上显示的还是DDRAW的画面

请问如何解决这个问题 // // Copyright (c) Microsoft Corporation.  All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you l ...…

查看全部问答>

wince usb 驱动问题

我在看wince5.0 usb从驱动源代码具体位置是:/%wince500boot%/public/common/oak/usbfn 这个文件下有3个文件夹: 1.CLASS文件: RNDIS,SERIAL, STORAGE三个文件夹 2.CONTROLLER文件: MDD,NET2280 3.UFNCLIENLIB文件 请问这三个文件都有什 ...…

查看全部问答>

usb拔掉了,如何判断呢

在usb中断中有这个类别的处理吗? (没有多余管脚来判断Vusb)…

查看全部问答>

国产FPGA助学计划

国产FPGA助学计划          自打去年12月中旬开始接触AgateLogic这家本土FPGA器件制造商,不到四个月的时间,虽然手头上总是多个项目齐头并进,真正花在研究琢磨这个国产FPGA项目上的时间或许不会超过 ...…

查看全部问答>

有木有CH4浓度传感器啊,急求资料,帮忙呀

最还好有单片机程序代码,电路图等等,越全越好.谢谢啊 …

查看全部问答>

4-20ma转换成0-5V

各位高手,本人摸电只是懂点基本的.想请教大家个问题.传感器输出的4-20ma如何转换成0-5V.我以前一直就是用250欧电阻将4-20ma转换成1-5V,再进行A/D转换,感觉这样处理没有0-5V方便.比如4-20ma表示0-50度的温度,0V的时候就表示温度是0度,5V的时候就表示 ...…

查看全部问答>