ATmega16熔丝位详解
[熔丝位]AVR_ISP接口定义与熔丝位
AVR的ISP接口定义大部分AVR MCU的ISP数据端口亦为 SCK、MOSI、MISO引脚(如Attiny13/24/2313,Atmega48/88/168,Atmega16/32/162,Atmega8515/8535等),如下:MISO MISOVCC VCCSCK SCKMOSI MOSIRESET RESETGND GND少部分AVRMCU的ISP数据端口则不是使用这些接口,而是:SCK、PDI、PDO引脚(如ATmega64/128/1281等),如下:MISO PDOVCC VCCSCK SCKMOSI PDIRESET RESETGND GND以上仅例举出常用的AVR型号的连接方式,若您使用的AVR型号没有被列举到,请查看相关型号的PDF文档,里面的编程章节将有介绍使用ISP时,需连接哪些引脚。
下面是标准的接口排列:ATMEL指定的ISP_10PIN标准接口ATMEL指定的ISP_6PIN标准接口USB AVR SKII V2.0(usb avr仿真器/调试器)问:USB AVR SKII V2.0 与 V1.0 的区别?答:USB驱动IC不同,V2.0 版本采用的USB芯片FT232,V1.0版本的PL2303,在JTAG仿真调试方面兼容性、稳定性稍差。
·基于ATMEL原厂提供的方案而设计:支持AVRStudio,借鉴了ATMEL原厂生产的JTAGICE仿真器与AVRISP下载器,使用方法同它们一致,简单易用,稳定可靠。
·支持的软件:- 直接支持AVRStudio、WINAVR(GCC)、IAR- 支持IAR、ICCAVR、CVAVR等生成的调试与烧写文件·自动识别JTAG与AVRISP:- 接入目标板的JTAG接口,使用“JTAG ICE”方式进行连接,调试器识别为JTAGICE仿真器。
- 接入目标板的ISP接口,使用“STK500 or AVRISP”方式进行连接,调试器识别为AVRISP下载器。
熔丝位
AVR开发前准备—熔丝位(Fuse)快速入门使用操作界面如下:(注意:下图中,打勾的表示选中,代表0。
没有打勾的表示1)。
英文中文On-Chip Debug Enabled 片内调试使能JTAG Interface Enabled JTAG 接口使能Serial program downloading (SPI) enabled 串行编程下载(SPI) 使能(ISP下载时该位不能修改) Preserve EEPROM memory through the Chip Erase cycle; 芯片擦除时EEPROM的内容保留Boot Flash section size=xxxx words 引导(Boot)区大小为xxx个词Boot start address=$yyyy; 引导(Boot)区开始地址为$yyyyBoot Reset vector Enabled 引导(Boot)、复位向量使能Brown-out detection level at VCC=xxxx V; 掉电检测的电平为VCC=xxxx 伏Brown-out detection enabled; 掉电检测使能Start-up time: xxx CK + yy ms 启动时间xxx 个时钟周期+ yy 毫秒Ext. Clock; 外部时钟Int. RC Osc. 内部RC(阻容) 振荡器Ext. RC Osc. 外部RC(阻容) 振荡器Ext. Low-Freq. Crystal; 外部低频晶体Ext. Crystal/Resonator Low Freq 外部晶体/陶瓷振荡器低频Ext. Crystal/Resonator Medium Freq 外部晶体/陶瓷振荡器中频Ext. Crystal/Resonator High Freq 外部晶体/陶瓷振荡器高频注:以上中文是对照ATmega16的中、英文版本数据手册而翻译。
尽量按照了官方的中文术语。
ATmega16熔丝位设定.docx
ATmega16熔丝位设定特别注意,要使用外部晶体,必须设置熔丝,否则芯片会使用默认的内部晶体。
1、M16的出厂设置内部RC 振荡1MHz 6 CK + 65 ms CKSEL=0001 SUT=10 JTAGEN=1默认状况下JTAG已编程(即PC2-PC5为高电平不可以被拉低),如果PC2->PC5要用作普通10 口,需要取消JTAG编程,或者在程序开始时执行以下命令:MCUCSR |= 1 << JTD;MCUCSR |= 1 << JTD; /注意要连续操作两次。
恢复Fu^e&Lock2.1低位(时钟及启动时间设置)2.1.1、BOD(Brown-out Detection)掉电检测电路BODLEVEL(BOD电平选择):1 (2.7V 电平)0(4.0V 电平)BODEN(BOD功能控制):1 (BOD功能禁止)0(BOD功能允许)一旦VCC下降到触发电平(2.7v或4.0v)以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT延时周后重新开始工作。
2.1.2、复位启动时间选择SUT 1/0:当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
2.1.3、CKSEL3/0:时钟源选择时钟源外部时钟外部时钟外部时钟内部RC振荡1MHZ 内部RC振荡1MHZ 内部RC振荡1MHZ1 启动延时熔丝6 CK + 0 ms CKSEL=0000 SUT=006 CK + 4.1 ms CKSEL=0000 SUT=016 CK + 65 ms CKSEL=0000 SUT=106 CK + 0 ms CKSEL=0001 SUT=006 CK + 4.1 ms CKSEL=0001 SUT=016 CK + 65 ms CKSEL=0001 SUT=10JTAG功能也要连续两次操作。
熔丝低位0NCNCNCMCE l NC1MG'NC Q] NC 加密位1.0 MHz2.0 MH24.0 MHz3.0 MHz读岀低位值El 旨立值阳扩展f立值0读出訪A 写入加瓷値FF 读出写入BODLEVEL BCOEN5UT1 SUTOCK5ELJ CK5ELZ CKStLl CISELO O 匚DENTT嶠EN5PIEHCKOPT020DQTS?1BOOTSZBL012BLB1LBL0OLLB2BLEOSLBtZ :D7^S~位酉战方式向导方武2、熔丝位配置说明10=丄ns L0H=n3S>19 sill o +>19 >191 00=丄ns 10 L L=n3S>19 sill 99 + >19 >11 H=丄ns00l4=ims>10 sill + >i9>iL 0 匸丄ns 00 L L=n3S>19 sill o + >19 >11 10=丄nSOOHCSMO sill 99 + >19 892 00=丄ns00l4=ims>10 sill + >19 892 H=丄ns H0L=n3S>19 SW9901=丄ns l40L=imS>10 sill L t+ >10 >19 L10=丄ns H0L=n3S>19 sill o +>19 >191 00=丄ns L LO sill99+ >19 >11H=丄nSOLOL=imS>10 sill + >i9>iL 0 匸丄ns 010 L=n3S>19 sill o + >19 >11 10=丄nSOLOL=imS>10 sill 99 + >1989200=丄nSOLOL=imS>10 sill + >19 892 (ZHIAIO C-6 0)兽鑒艸聂圖/篦耳解出 (ZHIAIO C-6 0)兽鑒艸聂圖/篦耳解出(ZHIAI0 C-6 0)兽鑒艸聂圖/篦耳解出 (ZHIAI0 C-6 0)兽鑒艸聂圖/篦耳解出 (ZHIAI0 C-6 0)兽鑒艸聂圖/篦耳解出 (ZHIAI0 C-6 0)兽鑒艸聂圖/篦耳解出 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲 (ZHIAI6 0-k0)兽鑒艸聂圖/篦耳解劲0 L=』nS LOO L=n3S>19 sin 99 + >19>12£ 10=丄ns 100 匸imSMO sill 99 + >o 川 00=丄ns LOOL=ims>io sin Lt + >K )>uH=丄nSOOOL=imS>iO sill Lt + MO 9 ZHIAIO SkO'8 鑒艸03 混场 0 匸丄ns 000 L=n3S>19 sill 99 + >19 81 ZHI/\IOSkO'8 鑒艸810=丄ns 000L=n3S>19 sill L> + >19 8L ZHI/\IOSkO'8 鑒艸8 腮 00=丄 ns oooL=n3S>i9 SHI 0+>19 81 ZHI/\IOSkO'8 鑒艸8 腮 I4=_ms Ll40=ims>0 SHI "ZHIAIO'8-Oe 鑒艸8 腮 oi=丄 ns 14 心 ims>o SHI 99 + >19 81ZHIAIO'8-Oe 鑒艸8 腮 10=丄nssill + >1981 ZHIAIO'8-Oe 鑒艸8 腮 oo=ins L L 心imSMOSHI 0 +>19 81 ZHIAIO'8-Oe 鑒艸8 腮 H =丄 nsoi40=ims>osin " + >09ZHI/\IOe-6O 鑒艸8 腮 oi=丄 nsoi40=ims>o sin 99 + >19 81ZHI/\IOe-6O 鑒艸8 腮 10=丄ns0!40=ims>10 sill + >1981 ZHI/\IOe-6O 鑒艸8 腮 00=丄 nsoi40=ims>osin 0 +>19 81 ZHI/\IOe-6O 鑒艸8 腮 H =丄ns LO 心ims>osin "ZHI/\I6O> 鑒艸8 腮 oi=丄ns m 心ims>o sin 99 + >19 81 ZHI/\I6O> 鑒艸8 腮 io=丄ns m 心ims'o sin+ >1981 ZHI/\I6O> 鑒艸8 腮 oo=_ms LO 心ims>o sin 0+>19 81 ZHI/\I6O> 鑒艸8 腮oi=丄 ns oo 心 ims>o sm 99 + >19 9 ZHIAI8 鑒艸8 滙M io=丄 ns oo 心 ims>o sin "ZHIAI8 鑒艸8 滙Moo=丄 ns oo 心 ims>osm 0 + >19 9ZHIAI8 鑒艸8 滙M 01=丄ns H00=13S>19 sm 99 + >19 9 ZHIAI17 鑒艸8 滙M 10=丄ns H00=13S>19 sm " ZHIAI17 鑒艸8 滙M oo=ins H00=13S>19 sm 0 + >19 9 ZHIAI17 鑒艸8 滙Moi=丄 ns (Hooms'osm 99 + >19 9ZHIAIS 鑒艸8 滙M(ZH>189Z Se)艸曾解劲 (ZH>189Z Se)艸曾解劲 (ZH>189Z Se)艸曾解劲io=丄ns (Hooms'o sm " ZHIAIS 鑒艸8滙M oo=insoLOO=n3S>i9 sm 0 + >19 9 ZHIAIS 鑒艸8滙M中频石英/ 陶瓷振荡器(0.9-3.0MHZ) 中频石英/ 陶瓷振荡器(0.9-3.0MHZ) 高频石英/ 陶瓷振荡器(3.0-8.0MHZ) 高频石英/ 陶瓷振荡器(3.0-8.0MHZ) 高频石英/ 陶瓷振荡器(3.0-8.0MHZ) 高频石英/ 陶瓷振荡器(3.0-8.0MHZ) 16K CK + 4.1ms CKSEL=1101 SUT=10 16K CK + 65ms CKSEL=1101 SUT=11 258 CK + 4.1 ms CKSEL=1110 SUT=00 258 CK + 65 ms CKSEL=1110 SUT=01 1K CK + 0 ms CKSEL=1110 SUT=10 1K CK + 4.1 ms CKSEL=1110 SUT=11高频石英/ 陶瓷振荡器(3.0-8.0MHZ) 1K CK + 65 ms CKSEL=1111 SUT=00高频石英/ 陶瓷振荡器(3.0- MHZ) 高频石英/ 陶瓷振荡器(3.0- MHZ) 高频石英/ 陶瓷振荡器(3.0- MHZ) 16K CK + 0 ms CKSEL=1111 SUT=01 16K CK + 4.1ms CKSEL=1111 SUT=10 16K CK + 65ms CKSEL=1111 SUT=11高于8M 选8M 的。
ATMEGA16A中文资料
ATMEGA16A中文资料高性能,低功耗AVR 8-bit微控制器•高级RISC建筑– 131条指令–绝大多数为单时钟周期执行– 32 x 8通用工作寄存器–全静态工作–高达16吞吐量在MIPS 16 MHz–片2—cycle乘数高耐久性非易失性内存段– 16K字节的程序存储器,在系统内可编程Flash– 512字节的EEPROM– 1K字节内部SRAM–写/擦除周期:10,000闪光/ 100,000的EEPROM–数据保存:在20年85°C/100年在25°C(1)–可选引导具有独立锁定Bits代码段•在系统编程的片上引导程序•真Read-While-Write操作–锁编程软件安全JTAG (IEEE std。
1149.1兼容)接口–边界扫描功能根据JTAG标准–广泛的片上调试支持–编程闪存,EEPROM,熔丝位和锁定Bits通过JTAG接口外设特点–两个8—bit定时器/计数器具有独立预分频器和比较模式–一个16-bit定时器/计数器具有独立预分频器,比较功能和捕捉模式–实时计数器具有独立振荡器–四PWM频道– 8-channel, 10-bit ADC• 8单端通道• 7在TQFP 包装差分通道只有• 2在1x, 10x,差分通道具有可编程增益或200x–面向字节的两线串行接口可编程串行USART的––主/从串行接口SPI–可编程看门狗定时器具有独立片内振荡器–片内模拟比较器单片机的特殊功能–上电复位和可编程的掉电检测–内部振荡器校准RC–外部和内部中断源– 6种睡眠模式:空闲,ADC降噪,省电,省电,待机和扩展待机I / O和封装– 32可编程I / O线– 40—pin PDIP, 44—lead TQFP,和44—pad QFN/MLF 工作电压– 2。
7为- 5。
5V ATmega16A速度等级– 0 —为16 MHz ATmega16A功耗@ 1 MHz, 3V,和25°C为ATmega16A–活动:0。
avr单片机_教程_实例_附电路图
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教程系列一(6):ATmega16 简介(一)
ATmega16 简介ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。
ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。
Atmega16熔丝位定义
Atmega16熔丝位定义一、熔丝位概述ATmega16有高、低两个熔丝位字节,通过熔丝的设定,可以对系统时钟、启动时间、BOOT 区设定、保密位设定以及某些特定功能的使能。
各熔丝位的具体定义以及出厂默认值如表1所示。
其中,1表示该位未被编程,0表示该位已经被编程。
位号 定义描述默认值熔丝位高字节7 OCDEN OCD 使能位 1(未编程,OCD 禁用) 6JTAGEN JTAG 测试使能0(编程,JTAG 使能) 5 SPIEN 使能串行程序和数据下载 0(被编程,SPI 编程使能) 4 CKOPT 振荡器选项1(未编程)3 EESAVE 执行芯片擦除时EEPROM 的内容保留 1(未被编程),EEPROM 内容不保留 2 BOOTSZ1 选择Boot 区大小 0(被编程) 1 BOOTSZ0 选择Boot 区大小 0(被编程) 0 BOOTRST 选择复位向量 1(未被编程) 熔丝位低字节7 BODLEVEL BOD 触发电平 1(未被编程)6BODEN BOD 使能 1(未被编程,BOD 禁用) 5 SUT1 选择启动时间 1(未被编程) 4 SUT0 选择启动时间 0(被编程) 3 CKSEL3 选择时钟源 0(被编程) 2 CKSEL2 选择时钟源 0(被编程) 1 CKSEL1 选择时钟源 0(被编程) 0CKSEL0选择时钟源1(未被编程)表1 ATmega16熔丝位图1 AVR_fighter 熔丝位默认值二、熔丝位详解1、JTAG和OCD使能位定义描述 1 0OCDEN 片上调试使能位OCD禁止OCD允许JTAGEN JTAG测试使能位JTAG禁止JTAG允许表2 JTAG和OCD使能OCDEN为OCD片上调试系统使能位,默认为1,必须对JTAGEN 熔丝位进行编程才能使能JTAG 测试访问端口。
此外还必须保持所有的锁定位处于非锁定状态,才能真正使片上调试系统工作。
作为片上调试系统的安全特性,在设置了LB1 或 LB2 任一个锁定位时片上调试系统被禁止。
熔丝位讲解
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。
要想使MCU 功耗最小也要了解一些位的设定在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。
力求易懂、全面。
首先记住:1:未编程(检查框不打钩)0:编程(检查框打钩)建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。
看看 M16的出厂设置。
默认设置为:内部RC振荡8MHZ 6 CK + 65 ms CKSEL=0100 SUT=10高位:时钟及启动时间设置:BODLEVEL: BOD电平选择1:2.7V电平;0:4.0V电平BODEN: BOD功能控制1:BOD功能禁止;0:BOD功能允许使用方法:BOD(Brown-out Detection) 掉电检测电路,如果BODEN使能(编程)启动掉电检测,检测电平由BODLEVEL决定一旦VCC下降到触发电平(2.7v或4.0v)以下,MUC复位,当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
注:1:因为M16L可以工作在2.7v-5.5v所以触发电平可选2.7v或4.0v。
M16工作在4.5 - 5.5V,所以 BODLEVEL=0。
BODLEVEL=1 不适用于ATmega16,SUT1/0: 复位启动时间选择当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT1/0设置电源缓慢上升。
CKSEL3/0: 时钟源选择低位:BOOT区设置JTAGEN: JTAG允许1:JTAG禁止;0:JTAG允许OCDEN:OCD功能允许1:OCD功能禁止;0:OCD功OCDEN(On-chip Debug)片上调试使能位,JTAGEN:JTAG使能JTAG 测试访问端口。
使用方法:在JTAG调试时使能OCDEN JTAGEN两位(打勾),并保持所有的锁定位处于非锁定状态,在实际使用时为降低功耗不使能OCDEN JTAGEN,大约减少2-3mA的电流。
ATmega16最小系统
目录第一章概述第二章单片机最小系统及编译、下载软件的使用2.1.1单片机最小系统2.1.2编译软件2.2.1下载软件Progisp的使用第三章熟悉ATmega16的片上资源3.1.1会看芯片数据手册的重要性3.1.2中断3.1.3定时器/计数器的基本结构及工作原理3.1.4 PWM3.2外部中断3.3 USART3.4.1 A/D转换模块3.5 EEPROM第四章ATmega16实际应用4.1 外接按键4.2 驱动数码管4.3 液晶显示屏12864的使用4.4 基于DS18B20的温度测量4.5基于PWM的直流电机调速4.6步进电机的使用4.7舵机的使用4.8超声波测距及其应用倒车雷达4.9基于JZ863的无线串口通信4.10单片机与计算机间的通信第五章第二章单片机最小系统及编译、下载软件的使用2.1.1单片机最小系统能让单片机工作的有最基本元器件构成的系统称为单片机最小系统。
单片机最小系统通常包括:电源(+5V)复位电路:启动后让单片机从初始状态执行程序振荡电路:单片机是一种时序电路,必须施加脉冲信号才能工作。
Mega16内部有RC 震荡电路但相比外部的晶体震荡电路还是不够准确,另外它也可以使用外部晶振工作,两者之间的切换通过熔丝位(以后会讲)来选择在其内部有一个时钟产生电路只要接上两个电容和一个晶振即可正常工作。
ATmega16 单片机最小系统的硬件电路图如下:如图所示为ATmega16最小系统电路图,图中标有相同代号的引脚表示连接在一起。
图中ISP 和JTAG为ATmega16的两种下载方式各自的引脚接口,ISP用于在线下载程序比较方便快捷,所用下载软件为progisp;JTAG是在线仿真接口通过仿真器连接单片机进行程序的下载和仿真,所用软件为AVR Studio ;通常我门使用ISP下载就已经足够了,并且方便快捷很稳定好用,下载器也便宜;JTAG在需要仿真的时候用,它可以看见单片机各个引脚的输出值和输入值等,但JTAG实际定使用中不稳定有时候很容易出错电脑不识别下不进去程序等问题,个人偏好使用ISP.说明:此最小系统电路图中只画出了最简单的应用电路——流水灯,和最基本的能让单片机正常工作的外围电路及下载程序所必须的ISP和JTAG接口,如果你想焊一个电路板出来自己使用,其他的外围电路可以在日后使用当中自己再往上焊。
AVR ATmega16中文说明书
ALU- 算术逻辑单元AVR ALU 与32 个通用工作寄存器(R0-R31)直接相连。
寄存器与寄存器之间、寄存器与立即数之间的ALU 运算只需要一个时钟周期。
ALU 操作分为3 类:算术、逻辑和位操作。
此外还提供了支持无/ 有符号数和分数乘法的乘法器。
具体请参见指令集。
状态寄存器状态寄存器包含了最近执行的算术指令的结果信息。
这些信息可以用来改变程序流程以实现条件操作。
如指令集所述,所有ALU 运算都将影响状态寄存器的内容。
这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。
在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。
这些工作需要软件来处理。
AVR 中断寄存器SREG 定义如下:•Bit 7 –I: 全局中断使能I 置位时使能全局中断。
单独的中断使能由其他独立的控制寄存器控制。
如果I 清零,则不论单独中断标志置位与否,都不会产生中断。
任意一个中断发生后I 清零,而执行RETI指令后I 恢复置位以使能中断。
I 也可以通过SEI 和CLI 指令来置位和清零。
•Bit 6 –T: 位拷贝存储位拷贝指令BLD 和BST 利用T 作为目的或源地址。
BST 把寄存器的某一位拷贝到T,而BLD 把T 拷贝到寄存器的某一位。
•Bit 5 –H: 半进位标志半进位标志H 表示算术操作发生了半进位。
此标志对于BCD 运算非常有用。
详见指令集的说明。
•Bit 4 –S: 符号位, S = N ⊕VS 为负数标志N 与2 的补码溢出标志V 的异或。
详见指令集的说明。
•Bit 3 –V: 2 的补码溢出标志支持2 的补码运算。
详见指令集的说明。
•Bit 2 –N: 负数标志表明算术或逻辑操作结果为负。
详见指令集的说明。
• Bit 1 – Z: 零标志表明算术或逻辑操作结果为零。
详见指令集的说明。
• Bit 0 – C: 进位标志表明算术或逻辑操作发生了进位。
详见指令集的说明使用CLI 指令来禁止中断时,中断禁止立即生效。
avr熔丝
1.什么是熔丝位熔丝是一个保护知识产权的设计。
简单的说,你在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。
一般成品出售时都这样做。
专用的写片机支持这个功能。
自己也可以根据芯片的官方文档来操作。
熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。
0和1分别用来表示未熔断和已熔断。
2.avr熔丝位介绍AVR Studio 中STK500 处理熔丝位有巨大的优势:它是以功能组合让用户配置。
这种方式与小马(PnoyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):有效避免因不熟悉熔丝位让芯片锁死(这是初学者的恶梦),笔者曾经锁死过三片Atmega16。
不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦) 动手之前:请你一定弄清楚了,你这样改会有什么后果,除非你有很多钱不在乎多锁死几个芯片。
3.使用A VRStudio设置A VR熔丝位及烧写程序A VR Studio是ATMEL指定用于开发AVR MCU的官方软件,其编程功能最为强大。
下面介绍使用AVRStudio烧写程序及熔丝快速入门。
●使用A VRISP方式烧写程序及配置熔丝位对软硬件进行初始配置,并正确设备连接,就可使用A VRISP进行联机了。
打开A VRStudio,点击主窗口中的图标前面标有Con的那个图标。
出现如下图画面:正常联机后,将弹出如下窗口:(1)程序编程面板:●Device里面选择好对应的芯片类型,后面的Erase Device可以擦除芯片。
●Programming mode编程模式:注意这里必须是ISP mod,表示用的ISP编程模式;Erase Device Before 选项:编程前先擦除芯片,建议选上,如果不选芯片内部残留的程序可能会对新的程序造成干扰。
V erity Device After Program:下载完毕后校验程序内容,建议选上。
Atmega16的解锁
ATmega16解锁刚刚把以前锁死的两块Mega16给解开锁,之前自己也解了很多次就是没解开。
在网上看了一些解锁的方法,都是说在ISP下载功能被禁止时,可以用JTAG下载来改变熔丝位ISPEN=0,让Mega16恢复ISP下载功能。
如果两种下载方式都被锁死的情况下,就只能用高压并行的方式来修改熔丝位。
还有一种很简单的方法就是在Mega16的XTAL1和XTAL2引脚接上一个振荡信号,使单片机能处在工作状态,改变其熔丝位。
Mega16的熔丝位配置错和对单片机的某些误操作很容易使单片机不能正常工作。
一种情况是在配置熔丝位时误将ISPEN或JTAGEN置为1(或没有在复选框中打钩),单片机的ISP和JTAG下载功能没有使能,使得单片机被锁死。
还有一种情况是配置的时钟源熔丝位CKSEL3/0与单片机本身工作的时钟源不相符,这也是单片机被锁死的原因。
我的两块Mega16都是由于时钟源选择错误导致被锁死,我也是今天刚注意到这个问题的。
我将一块正常运行的51的XTAL2与Mega16的XTAL1连接,将51的XTAL1与Mega16的XTAL2连接,这样被锁死的Mega16就可以正常运行了。
然后,先要在读取其熔丝位的配置,然后我把时钟源CKSEL3/0的熔丝位改成内部RC振荡8MHZ(改成自己单片机适合的熔丝位即可),将改后的配置写入单片机。
最后将与51连接的线断开,重新将下载器与电脑接上,就可以给M16下载程序了。
1.编程与状态说明(1)在avr的器件手册中,使用已编程(programmed)和未编程(unprogrammed)定义熔丝位的状态。
未编程表示熔丝位状态为“1”(禁止);已编程表示熔丝位状态为“0”(允许)。
(2)avr的熔丝位可以多次编程,不是一次性的opt熔丝。
(3)熔丝位的配置可以通过并行方式、isp串行方式和jtag串行方式实现。
(4)avr芯片加密锁定后(lb2/lb1=1/0,0/0)不能通过任何方式读取芯片内部的flash和eeprom数据,但是熔丝位的状态仍然可以读取,只是不能修改配置。
avr单片机_教程_实例_附电路图
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编译器(集烧写程序功能)市面上(大陆)的教科书使用它作为例程的较多,集成代码生成向导,虽然它的各方面性能均不是特别突出,但使用较为方便。
Almel ATmega16 ATmega16 微控制器 说明书
PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) AREF GND AVCC PC7 (TOSC2) PC6 (TOSC1) PC5 (TDI) PC4 (TDO)
声明
本数据手册的典型值来源于对器件的仿真,以及其他基于相同产生工艺的 AVR 微控制器 的标定特性。本器件经过特性化之后将给出实际的最大值和最小值。
•
•
具有 16KB 系统 内可编程 Flash 的8位 微控制器 ATmega16 ATmega16L
•
•
• • • •
本文是英文数据手册的中文 翻译,其目的是方便中国用 户的阅读。它无法自动跟随 原稿的更新,同时也可能存 在翻译上的错误。读者应该 以英文原稿为参考以获得更 准确的信息。
2466G–AVR–10/03
PA0 - PA7 VCC PC0 - PC7
PORTA DRIVERS/BUFFERS
PORTC DRIVERS/BUFFERS
GND
PORTA DIGITAL INTERFACE
PORTC DIGITAL INTERFACE
AVCC
MUX & ADC
AREF PROGRAM COUNTER
ADC INTERFACE
XTAL2 MCU CTRL. & TIMING RESET
INSTRUCTION DECODER
Y Z
CONTROL LINES
ALU
INTERRUPT UNIT
INTERNAL CALIBRATED OSCILLATOR
AVR CPU
STATUS REGISTER
EEPROM
PROGRAMMING LOGIC
AVR教程系列一(6):ATmega16 简介(一)
ATmega16 简介ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。
ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。
AVR ATmega16寄存器(修订版)
ATmega16寄存器说明修订版v1.1 本版修订了很多原版存在的错误同时使其更加清晰易懂原作者:未知修订:拉拉和瑶瑶SREG | I | T | H | S | V | N | Z | C |// 状态寄存器SREGI : 全局中断使能T : 位复制存储位H : 半进位标志位表示算术运算发生了半进位S : 符号位S为负数标志N与2的补码溢出标志V的异或V : 2的补码溢出标志位N : 负数标志位Z : 零标志位C : 进位标志位OSCCAL |CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 |//振荡器标定寄存器OSCCAL OSCAL数值最小频率,标称频率的百分比(%)最大频率,标称频率的百分比(%)0x00 50 1000x7F 75 1500xFF 100 200(编者注:一般可使用0x7F)MCUCR | SM2 | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 | //MCU控制寄存器MCUCR SM2:0 休眠模式000 空闲模式(停止CPU_clk 和FLASH_clk)001 ADC噪声抑制模式(停止IO_clk CPU_clk 和FLASH_clk)010 掉电模式(停止所有时钟,只有异步模块可以继续工作)011 省电模式100 --101 --110 Standby 模式(仅在使用外部晶振或谐振器时,Standby模式才可用)111 扩展Stabdby模式SE 休眠使能ISCx1:0 说明00 INTx为低电平产生中断请求01 INTx上的任意跳变产生中断请求10 INTx上的下降沿产生中断请求11 INTx上的上升沿产生中断请求(编者注:外部中断0,1触发模式在此设置)MCUCSR | JTD | ISC2 | -- | JTRF | WDRF | BORF | EXTRF | PORF |//MCU控制和状态寄存器MCUCSR JTD 禁止JTAG 接口ISC2 中断2触发方式控制位(0-下降沿中断1-上升沿中断)JTRF JTAG 复位标志WDRF 看门狗复位标志BORF 掉电检测复位标志EXTRF 外部复位标志PORF 上电复位标志GICR | INT1 | INT0 | INT2 | -- | -- | -- | IVSEL | IVCE |// 通用中断控制寄存器INT1 使能外部中断请求1INT0 使能外部中断请求0INT2 使能外部中断请求2IVSEL 中断向量选择IVCE 中断向量修改使能GIFR | INTF1 | INTF0 | INTF2 | -- | -- | -- | -- | -- | // 通用中断标志寄存器INTF1 外部中断标志1INTF0 外部中断标志0INTF2 外部中断标志2(编者注:GICR表明能否中断而GIFR则是是否中断)SPMCR | SPMIE | RWWSB | -- | RWWSRE | BLBSET | PGWRT | PGERS | SPMEN |//保存程序存储器控制寄存器SPMIE SPM 中断使能RWWSB RWW 区忙标志RWWSRE RWW 区读使能BLBSET Boot 锁定位设置PGWRT 页写入PWERS 页擦除SPMEN 存贮程序存储器使能OCDR | MSB/IDRD | | | | | | | LSB | // 片上调试寄存器SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ADTS[2:0] ADC自动触发源位000 连续转换模式001 模拟比较器010 外部中断请求0011 定时器/计数器0比较匹配100 定时器/ 计数器1溢出101 定时器/计数器比较匹配B110 定时器/计数器1溢出111 定时器/计数器1捕捉事件ACME 模拟比较器多路复用器使能0 AIN1 连接到比较器的负极输入端1 ADC 多路复用器为模拟比较器选择负极输入PUD 禁用上拉电阻PSR2 预分频复位T/C2PSR10 T/C1 与T/C0 预分频器复位//***********************// PORT端口相关寄存器//******************************// PORTA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 数据寄存器DDRA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 数据方向寄存器PINA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 端口输入引脚PORTB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PINB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PORTC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PINC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PORTD | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRD | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PIND | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |(编者注:DDRx为数据方向寄存器,1为输出,0为输入;PORTx为数据寄存器:作为输入时,若允许上//***********************// USART串口相关寄存器//**************************// UDR | RXB7 | RXB6 | RXB5 | RXB4 | RXB3 | RXB2 | RXB1 | RXB0 | // 接收数据缓冲寄存器| TXB7 | TXB6 | TXB5 | TXB4 | TXB3 | TXB2 | TXB1 | TXB0 |// 发送数据缓冲寄存器UCSRA| RXC | TXC | UDRE | FE | DOR | PE | U2X | MPCM | // USART 控制和状态寄存器A RXC USART 接收结束标志TXC USART 发送结束标志UDRE USART 数据寄存器空标志FE 帧错误标志DOR 数据溢出标志PE 奇偶校验错误标志U2X 倍速发送MPCM 多处理器通信模式UCSRB | RXCIE | TXCIE | UDRIE | RXEN | TXEN | UCSZ2 | RXB8 | TXB8 |//USART 控制和状态寄存器B RXCIE 接收结束中断使能TXCIE 发送结束中断使能UDRIE USART 数据寄存器空中断使能RXEN 接收使能TXEN 发送使能UCSZ2 字符长度[2]RXB8 接收数据位8TXB8 发送数据位8UCSRC | URSEL | UMSEL | UPM1 | UPM0 | USBS | UCSZ1 | UCSZ0 | UCPOL |//USART控制和状态寄存器CURSEL 寄存器选择0 UBRRH1 UCSRCUMSEL USART 模式选择0 异步模式1 同步模式UPM1 UPM00 0 禁止0 1 保留1 0 偶校验1 1 奇校验USBS 停止位选择0 停止位数为11 停止位数为2UCSZ2 UCSZ1 UCSZ0 字符长度0 0 1 60 1 0 70 1 1 81 0 0 保留1 0 1 保留1 1 0 保留1 1 1 9//UCPOL为时钟极性选择:UCPOL 发送数据的改变(TxD 引脚的输出) 接收数据的采样(RxD 引脚的输入)0 XCK上升沿XCK下降沿1 XCK下降沿XCK上升沿(编者注:一般如果使用的是查询发,中断收,应打开RXCIE,RXEN,TXEN)UBBRH | U2X | ——| ——| ——| Bit11 | Bit10 | Bit9 | Bit8 | //波特率寄存器高4位UBBRL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | //波特率寄存器第8位使用模式波特率计算公式UBBR值计算公式异步正常模式(U2X=0)Baud = F(osc)/16(UBBR+1) UBBR = F(osc)/16Baud - 1异步倍速模式(U2X=1)Baud = F(osc)/8(UBBR+1) UBBR = F(osc)/8Baud - 1同步主机模式Baud = F(osc)/2(UBBR+1) UBBR = F(osc)/2Baud – 1//***********************// SPI相关寄存器 //******************************//SPCR | SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 | SPR0 | //SPI控制寄存器SPIE 使能SPI中断位SPE 使能SPI位DORD 数据次序0 数据的MSB首先发送1 数据的LSB首先发送MSTR 主从选择0 从机模式1 主机模式CPOL 时钟极性CPOL 起始沿结束沿空闲时的SCK0 上升沿下降沿低电平1 下降沿上升沿高电平CPHA 时钟相位CPHA 起始沿结束沿0 采样设置1 设置采样SPR[1:0] SPI时钟速率选择位SPR2x SPR1 SPR0 SCK频率0 0 0 focs/40 0 1 fosc/160 1 0 fosc/640 1 1 fosc/1281 0 0 fosc/21 1 0 fosc/321 1 1 fosc/64SPSR | SPIF | WCOL | -- | -- | -- | -- | -- | SPI2X | // SPI状态寄存器SPIF SPI中断标志WCOL 写碰撞标志SPI2X SPI倍速位(若为主机SCK可达fosc/2 若为从机则只能保证fosc/4)SPDR | MSB | -- | -- | -- | -- | -- | -- | LSB | //SPI数据寄存器写寄存器将启动数据传输,读寄存器将读取寄存器的接收缓存器//***********************// ADC串口相关寄存器//**************************// ADMUX | REFS1 | REFS0 | ADLAR | MUX4 | MUX3 | MUX2 | MUX1 | MUX0 | //ADC 多工选择寄存器REFS1 REFS0 参考电压选择0 0 AREF 、内部Vref关闭0 1 A Vcc AREF 引脚外加滤波电容1 0 保留1 1 2.56V 片内基准电压源,AREF引脚外加滤波电容ADLAR ADC转换结果左对齐0 转换结果右对齐1 转换结果左对齐(编者注:当对精度要求低时可以采取右对齐,只读低8位即可;否则采取左对齐,通过将数据左移2位+低八位&&0x03即可)MUX[4:0] 单端输入正差分输入负差分输入增益00000 ADC000001 ADC100010 ADC200011 ADC300100 ADC400101 ADC500110 ADC600111 ADC701000 ADC0 ADC0 10x01001 ADC1 ADC0 10x01010 ADC0 ADC0 200x01011 ADC1 ADC0 200x01100 ADC2 ADC2 10x01101 ADC3 ADC2 10x01110 ADC2 ADC2 200x01111 ADC3 ADC2 200x10000 ADC0 ADC1 1x10001 ADC1 ADC1 1x10010 ADC2 ADC1 1x10011 ADC3 ADC1 1x10100 ADC4 ADC1 1x10101 ADC5 ADC1 1x10110 ADC6 ADC1 1x10111 ADC7 ADC1 1x11000 ADC0 ADC2 1x11001 ADC1 ADC2 1x11010 ADC2 ADC2 1x11011 ADC3 ADC2 1x11100 ADC4 ADC2 1x11101 ADC5 ADC2 1x11110 1.22V(VBG)11111 0V(GND)ADCSRA | ADEN | ADSC | ADATE | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 | //ADC控制和状态寄存器A ADEN ADC使能位ADSC ADC开始转换位ADATE ADC自动触发使能位ADIF ADC中断标志位ADIE ADC中断使能位ADPS[2:0] 为ADC预分频选择位ADPS[2:0] 分频因子000 2001 2010 4011 8100 16101 32110 64111 128ADCH | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // ADC数据寄存器高位ADCL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // ADC数据寄存器低位SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ADTS[2:0] 为ADC自动触发源位ADTS[2:0] 触发源000 连续转换模式001 模拟比较器010 外部中断请求0011 定时器/计数器0比较匹配100 定时器/ 计数器1溢出101 定时器/计数器比较匹配B110 定时器/计数器1溢出111 定时器/计数器1捕捉事件//***********************// 模拟比较器相关寄存器//**********************// SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ACME 模拟比较器多路复用器使能0 AIN1 连接到比较器的负极输入端1 ADC 多路复用器为模拟比较器选择负极输入ACSR | ACD | ACBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | // 模拟比较器控制和状态寄存器ACD 模拟比较器禁用ACD 置位时,模拟比较器的电源被切断ACBG 选择模拟比较器的能隙基准源ACBG 置位后,模拟比较器的正极输入由能隙基准源所取代ACO 模拟比较器输出ACI 模拟比较器中断标志ACIE 模拟比较器中断使能ACIC 模拟比较器输入捕捉使能ACIS[1:0] 模拟比较器中断模式选择ACIS1 ACIS0 中断模式0 0 比较器输出变化即可触发中断0 1 保留1 0 比较器输出的下降沿产生中断1 1 比较器输出的上升沿产生中断模拟比较器复用输入ACME ADEN MUX[2:0] 模拟比较器负极输入0 x xxx AIN11 1 xxx AIN11 0 000 ADC01 0 001 ADC11 0 010 ADC21 0 011 ADC31 0 100 ADC41 0 101 ADC51 0 110 ADC61 0 111 ADC7//***********************// 外部中断相关寄存器//**************************// MCUCR | SM2 | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 | // MCU控制寄存器ISx1 ISx0 说明0 0 INTx为低电平产生中断请求0 1 INTx上的任意跳变产生中断请求1 0 INTx上的下降沿产生中断请求1 1 INTx上的上升沿产生中断请求MCUCSR | JTD | ISC2 | -- | JTRF | WDRF | BORF | EXTRF | PORF | // MCU控制和状态寄存器ISC2 中断2触发方式控制位0 下降沿触发中断1 上升沿触发中断GICR | INT1 | INT0 | INT2 | -- | -- | -- | IVSEL | IVCE | // 通用中断控制寄存器INT1 使能外部中断请求1INT0 使能外部中断请求0INT2 使能外部中断请求2GIFR | INTF1 | INTF0 | INTF2 | -- | -- | -- | -- | -- | // 通用中断标志寄存器INTF1 外部中断标志1INTF0 外部中断标志0INTF2 外部中断标志2//***********************// Timer0相关寄存器//**************************//TCCR0 | FOC0 | WGM00 | COM01 | COM00 | WGM01 | CS02 | CS01 | CS00 | //T/C0 控制寄存器FOC0 强制输出比较WGM01:0为波形产生模式(编者注:普通模式下,一直加到0xFF,然后从0开始;CTC模式下一直加到OCR0,然后从0开始;快速PWM从零开始加到OCR0再加到0xFF,然后再从0开始;相位修正PWM从0加到OCR0然后加到0XFF然后减计数到OCR0再减到0)WGM01:0 T/C的波形产生模式TOP OCR0更新时间TOV0的置位时刻00 普通0XFF 立即更新MAX01 PWM,相位修正0xFF TOP BOTTOM10 CTC OCR0 立即更新MAX11 快速PWM 0xFF TOP MAXCOM01:0选择T/C0工作模式COM1:0 CTC 快速PWM 相位修正PWM00 ----------------- 正常的端口操作,不与OC0 相连接--------------------------01 比较匹配时OC0 取反保留保留10 比较匹配时OC0 清零比较匹配时OC0清零,计到TOP时OC0置位升序计数匹配清零OC0;降序计数匹配置位OC011 比较匹配发生时OC0 置位比较匹配OC0置位,计到TOP时OC0清零升序计数匹配置位OC0;降序计数匹配清零OC0CS2:0 时钟选择000 无时钟,T/C 不工作001 clk/1 ( 没有预分频)010 clk/8011 clk/64100 clk/256101 clk/1024110 时钟由T0 引脚输入,下降沿触发111 时钟由T0 引脚输入,上升沿触发TCNT0 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // T/C0寄存器OCR0 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 输出比较寄存器(存储比较值) TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | // T/C中断屏蔽寄存器OCIE0 T/C0 输出比较匹配中断使能TOIE0 T/C0 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | // T/C中断标志寄存器OCF0 输出比较标志0TOV0 T/C0 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器PSR10 T/C1 与T/C0 预分频器复位//***********************// Timer1相关寄存器//**************************//TCCR1A | COM1A1 | COM1A0 | COM1B1 | COM1B0 | FOC1A | FOC1B | WGM11 | WGM10 |//T/C1 控制寄存器ACOM1A1:0 通道A 的比较输出模式COM1B1:0 通道B 的比较输出模式WGM1 3:0 为波形发生模式WGM1[3:0] T/ C1工作模式TOP OCR1x 更新时刻TOV1 置位时刻0000 普通模式0xFFFF 立即更新MAX0001 8位相位修正PWM 0x00FF TOP BOTTOM0010 9位相位修正PWM 0x01FF TOP BOTTOM0011 10位相位修正PWM 0x03FF TOP BOTTOM0100 CTC OCR1A 立即更新MAX0101 8位快速PWM 0x00FF TOP TOP0110 9位快速PWM 0x01FF TOP TOP0111 10位快速PWM 0x03FF TOP TOP1000 相位与频率修正PWM ICR1 BOTTOM BOTTOM1001 相位与频率修正PWM OCR1A BOTTOM BOTTOM1010 相位修正PWM ICR1 TOP BOTTOM1011 相位修正PWM OCR1A TOP BOTTOM1100 CTC ICR1 立即更新MAX1101 保留–––1110 快速PWM ICR1 TOP TOP1111 快速PWM OCR1A TOP TOP COM1A1:0/COM1B1:0为某一模式下工作方式的选择CTC模式COM1A1:0/COM1B1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 比较匹配时OC1A/OC1B 电平取反10 比较匹配时清零OC1A/OC1B( 输出低电平)11 比较匹配时置位OC1A/OC1B ( 输出高电平)快速PWMCOM1A(B)1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 WGM13:0=15:匹配时OC1A 取反,OC1B不占用物理引脚.WGM13:0为其它值时为普通端口操作,非OC1A/OC1B功能10 比较匹配时清零OC1A/OC1B,OC1A/OC1B在TOP 时置位11 比较匹配时置位OC1A/OC1B,OC1A/OC1B在TOP 时清零相位修正及相频修正PWM 模式COMA(B)1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 WGM13:0=9或14: 比较匹配OC1A取反,OC1B不占用物理引脚.WGM13:0为其它值时为普通端口操作,非OC1A/OC1B功能10 升序记数比较匹配清零OC1A/OC1B,降序记数比较匹配置位OC1A/OC1B11 升序记数比较匹配置位OC1A/OC1B,降序记数比较匹配清零OC1A/OC1BFOC1A 通道A 强制输出比较FOC1B 通道B 强制输出比较FOC1A/FOC1B只有当WGM13:0指定为非PWM模式时被激活TCCR1B | ICNC1 | ICES1 | –| WGM13 | WGM12 | CS12 | CS11 | CS10 | // T/C1 控制寄存器BICNC1 输入捕捉噪声抑制器ICES1 输入捕捉触发沿选择0 下降沿触发1 上升沿触发WGM13:2 波形发生模式见TCCR1A 寄存器中的描述CS12:0 时钟选择000 无时钟源(T/C停止工作)001 clk(无预分频)010 clk/8011 clk/64100 clk/256101 clk/1024110 外部T1 引脚,下降沿驱动111 外部T1 引脚,上升沿驱动TCNT1H | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // T/C1 技术寄存器TCNT1L | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |OCR1AH | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输出比较寄存器1AOCR1AL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |OCR1BH | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输出比较寄存器1BOCR1BL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |ICR1H | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输入捕捉寄存器1ICR1L | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | //T/C中断屏蔽寄存器TICIE1 T/C1 输入捕捉中断使能OCIE1A 输出比较A 匹配中断使能OCIE1B T/C1 输出比较B 匹配中断使能TOIE1 T/C1 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | //T/C中断标志寄存器ICF1 T/C1 输入捕捉标志位OCF1A T/C1 输出比较A 匹配标志位OCF1B T/C1 输出比较B 匹配标志位TOV1 T/C1 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器PSR10 T/C1 与T/C0 预分频器复位//***********************// Timer2相关寄存器//**************************//TCCR2 | FOC2 | WGM20 | COM21 | COM20 | WGM21 | CS22 | CS21 | CS20 |FOC2 强制输出比较WGM2[1:0] 波形产生模式WGM2[1:0] T/C工作模式TOP OCR2的更新时间TOV2的职位时刻00 普通0xFF 立即更新MAX01 相位修正PWM 0xFF TOP BOTTOM10 CTC OCR2 立即更新MAX11 快速PWM 0xFF TOP MAXCOM2[1:0 ] 比较匹配输出模式CTC模式COM21:0 说明00 正常的端口操作,不与OC0 相连接01 比较匹配发生时OC0 取反10 比较匹配发生时OC0 清零11 比较匹配发生时OC0 置位快速PWM 模式COM21:0 说明00 正常的端口操作,不与OC0 相连接01 保留10 比较匹配发生时OC0 清零,计数到TOP 时OC0 置位11 比较匹配发生时OC0 置位,计数到TOP 时OC0 清零相位修正PWMCOM21:0 说明00 正常的端口操作,不与OC2 相连接01 保留10 在升序计数时发生比较匹配将清零OC2 ;降序计数时发生比较匹配将置位OC211 在升序计数时发生比较匹配将置位OC2 ;降序计数时发生比较匹配将清零OC2CS2 2:0 时钟选择000 无时钟,T/C不工作001 clk(t2s)(无预分频)010 clk(t2s)/8011 clk(t2s)/32100 clk(t2s)/64101 clk(t2s)/128110 clk(t2s)/256111 clk(t2s)/1024TCNT2 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 定时器/ 计数器寄存器OCR2 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 输出比较寄存器ASSR | -- | -- | -- | -- | AS2 | TCN2UB | OCR2UB | TCR2UB | // 异步状态寄存器AS2 异步T/C2AS2为"0”时T/C2由I/O时钟clkI/O驱动;AS2为"1”时T/C2由连接到TOSC1引脚的晶体振荡器驱动TCN2UB T/C2 更新中OCR2UB 输出比较寄存器2 更新中TCR2UB T/C2 控制寄存器更新中TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | //T/C2中断屏蔽寄存器OCIE2 T/C2 输出比较匹配中断使能TOIE2 T/C2 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | //T/C2中断标志寄存器OCF2 输出比较标志2TOV2 T/C2 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR1 | // 特殊功能IO寄存器PSR2 预分频复位T/C2//***********************// EEPROM相关寄存器//**************************// EEARH | ----- | ----- | ----- | ----- | ----- | ----- | ----- | EEAR8 | // EEPROM 地址寄存器EEARL | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 |EEDR | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // EEPROM数据寄存器EECR | -- | -- | -- | -- | EERIE | EEMWE | EEWE | EERE | // EEPROM 控制寄存器EERIE 使能EEPROM 准备好中断EEMWE EEPROM 主机写使能EEWE EEPROM 写使能EERE EEPROM 读使能//***********************// TWI相关寄存器//******************************// TWBR | TWBR7 | TWBR6 | TWBR5 | TWBR4 | TWBR3 | TWBR2 | TWBR1 | TWBR0 |// TWI比特率寄存器TWCR | TWINT | TWEA | TWSTA | TWSTO | TWWC | TWEN | ---- | TWIE |// TWI控制寄存器TWINT TWI中断标志TWEA 使能TWI应答TWSTA TWI START状态标志TWSTO TWI STOP状态标志TWWC TWI写碰撞标志TWEN TWI使能TWIE 使能TWI中断TWSR | TWS7 | TWS6 | TWS5 | TWS4 | TWS3 | –| TWPS1 | TWPS0 | // TWI状态寄存器TWS7:3 TWI状态TWPS:0 TWI 预分频位00 101 410 1611 64TWDR | TWD7 | TWD6 | TWD5 | TWD4 | TWD3 | TWD2 | TWD1 | TWD0 |// TWI 数据寄存器TWAR | TWA6 | TWA5 | TWA4 | TWA3 | TWA2 | TWA1 | TWA0 | TWGCE |// TWI 从机地址寄存器TWA6:0 TWI 从机地址寄存器TWGCE 使能TWI广播识别//***************************************************************************************//。
AVR教程系列一(12):ATmega16 简介(六)
A VR教程系列一(12):ATmega16 简介(六) ATmega16 操纵与状态寄存器MCUCSRAVR 操纵与状态寄存器提供了有关引起AVR复位的复位源的信息。
Bit 4 – JTRF: JTAG 复位标志通过JTAG 指令AVR_RESET 能够使JTAG 复位寄存器置位,并引发MCU 复位,并使JTRF 置位。
上电复位将使其清零,也能够通过写”0” 来清除。
Bit 3 – WDRF: 看门狗复位标志看门狗复位发生时置位。
上电复位将使其清零,也能够通过写”0” 来清除。
Bit 2 – BORF: 掉电检测复位标志掉电检测复位发生时置位。
上电复位将使其清零,也能够通过写”0” 来清除。
Bit 1 – EXTRF: 外部复位标志外部复位发生时置位。
上电复位将使其清零,也能够通过写”0” 来清除。
Bit 0 – PORF: 上电复位标志上电复位发生时置位。
只能通过写”0” 来清除。
为了使用这些复位标志来识别复位条件,用户应该尽早读取此寄存器的数据,然后将其复位。
假如在其他复位发生之前将此寄存器复位,则后续复位源能够通过检查复位标志来熟悉。
ATmega16 基准电压使能信号与启动时间ATmega16 具有片内能隙基准源,用于掉电检测,或者者是作为模拟比较器或者ADC的输入。
ADC 的2.56V 基准电压由此片内能隙基准源产生。
电压基准的启动时间可能影响其工作方式。
启动时间列于Table 16。
为了降低功耗,能够操纵基准源仅在如下情况打开:1. BOD 使能 ( 熔丝位BODEN 被编程)2. 能隙基准源连接到模拟比较器(ACSR 寄存器的ACBG 置位)3. ADC 使能因此,当BOD 被禁止时,置位ACBG 或者使能ADC 后要启动基准源。
为了降低掉电模式的功耗,用户能够禁止上述三种条件,并在进入掉电模式之前关闭基准源。
ATmega16 看门狗定时器看门狗定时器由独立的1 Mhz 片内振荡器驱动。
AVR教程系列一(10):ATmega16 简介(9)
ATmega16 简介〔四〕ATmega16 时钟系统及其分布时钟系统及其分布Figure 11为AVR的主要时钟系统及其分布。
这些时钟并不需要同时工作。
为了降低功耗,可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟。
时钟系统详见Figure 11。
CPU 时钟- clkCPUCPU时钟与操作AVR内核的子系统相连,如通用存放器文件、状态存放器及保留仓库指针的数据存储器。
终止CPU 时钟将使内核遏制工作和计算。
I/O 时钟- clkI/OI/O时钟用于主要的I/O 模块,如按时器/ 计数器、SPI 和USART。
I/O 时钟还用于外部中断模块。
要注意的是有些外部中断由异步逻辑检测,因此即使I/O 时钟遏制了这些中断仍然可以得到监控。
此外, USI 模块的起始条件检测在没有clkI/O 的情况下也是异步实现的,使得这个功能在任何睡眠模式下都可以正常工作。
Flash 时钟- clkFLASHFlash 时钟控制Flash 接口的操作。
此时钟通常与CPU 时钟同时挂起或激活。
异步按时器时钟- clkASY异步按时器时钟允许异步按时器/ 计数器与LCD 控制器直接由外部32 kHz 时钟晶体驱动。
使得此按时器/ 计数器即使在睡眠模式下仍然可以为系统提供一个实不时钟。
ADC 时钟- clkADCADC具有专门的时钟。
这样可以在ADC工作的时候遏制CPU和I/O时钟以降低数字电路产生的噪声,从而提高ADC 转换精度。
ATmega16 时钟源ATmega16芯片有如下几种通过Flash熔丝位进行选择的时钟源。
时钟输入到AVR时钟发生器,再分配到相应的模块。
不同的时钟选项将在后续局部进行介绍。
当CPU 自掉电模式或省电模式唤醒之后,被选择的时钟源用来为启动过程按时,包管振荡器在开始执行指令之前进入不变状态。
当CPU从复位开始工作时,还有额外的延迟时间以包管在MCU 开始正常工作之前电源达到不变电平。
这个启动时间的按时由看门狗振荡器完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ATmega16熔丝位详解初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。
要想使MCU功耗最小也要了解一些位的设定在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。
力求易懂、全面。
下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。
a introb 低位(时钟及启动时间设置):c 时钟总表d 高位(BOOT区设置):e 常用熔丝设置打开运行SLISP.exe,首先记住:1:未编程(配置熔丝检查框未打钩)0:编程(配置熔丝检查框打钩)建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。
先了解一下M16的出厂设置。
默认设置为:内部RC振荡8MHz 6 CK + 65 ms CKSEL=0100 SUT=10低位(时钟及启动时间设置):1.BOD(Brown-out Detection) 掉电检测电路BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。
一旦VCC下降到触发电平(2.7v或4.0v) 以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
注:1.复选框选中代表0,0电平有效。
2.因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=0)或4.0v(BODLEVEL=1);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。
2.复位启动时间选择SUT 1/0: 当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
CKSEL3/0: 时钟源选择(时钟总表)时钟总表时钟源启动延时熔丝外部时钟 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振荡1MHZ1 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.9MHZ18 CK + 0 ms CKSEL=0101 SUT=00外部RC振荡≤0.9MHZ18 CK + 4.1 ms CKSEL=0101 SUT=01外部RC振荡≤0.9MHZ18 CK + 65 ms CKSEL=0101 SUT=10外部RC振荡≤0.9MHZ 6 CK + 4.1 ms CKSEL=0101 SUT=11外部RC振荡0.9-3.0MHZ18 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.0MHZ18 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.0MHZ18 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.9MHZ)258 CK + 4.1 ms CKSEL=1010 SUT=00低频石英/陶瓷振荡器(0.4-0.9MHZ)258 CK + 65 ms CKSEL=1010 SUT=01低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 0 ms CKSEL=1010 SUT=10低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 4.1 ms CKSEL=1010 SUT=11低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 65 ms CKSEL=1011 SUT=00低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 0 ms CKSEL=1011 SUT=01低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 4.1ms CKSEL=1011 SUT=10低频石英/陶瓷振荡器(0.4-0.9MHZ)16K CK + 65ms CKSEL=1011 SUT=11中频石英/陶瓷振荡器(0.9-3.0MHZ)258 CK + 4.1 ms CKSEL=1100 SUT=00中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 65 ms CKSEL=1100 SUT=01中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 0 ms CKSEL=1100 SUT=10中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 4.1 ms CKSEL=1100 SUT=11中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 65 ms CKSEL=1101 SUT=00中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 0 ms CKSEL=1101 SUT=01中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 4.1ms CKSEL=1101 SUT=10中频石英/陶瓷振荡器(0.9-3.0MHZ)16K CK + 65ms CKSEL=1101 SUT=11高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 4.1 ms CKSEL=1110 SUT=00高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 65 ms CKSEL=1110 SUT=01高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 0 ms CKSEL=1110 SUT=10高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 4.1 ms CKSEL=1110 SUT=11高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 65 ms CKSEL=1111 SUT=00高频石英/陶瓷振荡器(3.0-8.0MHZ)16K CK + 0 ms CKSEL=1111 SUT=01高频石英/陶瓷振荡器(3.0-8.0MHZ)16K CK + 4.1ms CKSEL=1111 SUT=10高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL=1111 SUT=11高位(BOOT区设置):1. JTAGEN(JTAG允许): 1:JTAG禁止; 0:JTAG允许OCDEN(OCD功能允许): 1:OCD功能禁止;0:OCD功能允许OCDEN(On-chip Debug):片上调试使能位JTAGEN(JTAG使能): JTAG测试访问端口使用方法:在JTAG调试时,使能OCDEN JTAGEN两位(复选框打勾),并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能OCDEN JTAGEN,大约减少2-3mA的电流。
2. SPIEN(SPI下载允许): 1:SPI下载禁止;0:SPI下载使能注:在双龙的软件里,SPIEN是不能编辑的,默认为0。
3. CKOPT(选择放大器模式): CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。
这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。
当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。
其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。
(据我测量功耗差别在1mA左右)。
对于谐振器,当CKOPT未编程时的最大频率为8 MHz,CKOPT编程时为16 MHz。
内部RC振荡器工作时不对CKOPT编程。
4.EEAVE(烧录时EEPROM数据保留): 1:不保留;0:保留在一次使用EEProm时没注意EEAVE位的编程,调试程序每次烧flash时,EEProm 都没了,后来才知道,EEAVE打了勾。
5.BOOTRST(复位入口选择): 1:程序从0x0000地址开始 0:复位后从BOOT区执行(参考BOOTSZ0/1)6.BOOTSZ 1/0(引导区程序大小及入口):00: 1024Word/0xc00;01: 512Word/0xe00;10: 256Word/0xf00;11: 128Word/0xf80qiuck giude常用的熔丝设置:1. 1Mhz内部RC振荡器:内部RC振荡 1MHZ 6 CK + 4.1 ms CKSEL=0001 SUT=012. 8Mhz内部RC振荡器:内部RC振荡8MHZ 6 CK + 65ms CKSEL=0100 SUT=10。