AVR开发前准备—熔丝位(Fuse)快速入门- 时钟-程序员宅基地

技术标签: 文档  vector  编程  Avr  interface  flash  

AVR通过熔丝来控制芯片内部的一些功能,比如JTAG,时钟的使用,掉电检测电压,是否允许调试等。

AVR Studio 中 STK500 处理熔丝位有巨大的优势:它是以功能组合让用户配置。 这种方式与小马(PnoyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):

  1. 有效避免因不熟悉熔丝位让芯片锁死 (这是初学者的恶梦), 笔者曾经锁死过三片Atmega16。
  2. 不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦)
  3. 动手之前 :请你一定弄清楚了,你这样改会有什么后果,除非你有很多钱不在乎多锁死几个芯片。备份你的熔丝位状态,在点击Program之前再次检查熔丝位设置正确与否,不要误点了某项而没有注意到。

通过下图的方法打开连接:

打开连接

使用操作界面如下: (注意:下图中,打勾的表示选中,代表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)区开始地址为 $yyyy
Boot 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的中、英文版本数据手册而翻译。尽量按照了官方的中文术语。

应用举例:

比如我们想使用片内的RC振荡(即不需要接晶振),可以选择选择下面三者之一:

  • Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms;
  • [CKSEL=0100 SUT=00] Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms;
  • [CKSEL=0100 SUT=01] Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 SUT=10]

如图:内部1M晶振,默认情况典型设置。(两个图分别为上下两部分,没有显示的部分均为不选中状态。)

默认及典型设置

下图显示的是选择内部晶振,1 Mhz RC

默认及典型设置

比如我们想使用外部7.3728M晶振,可以选择选择下面三者之一:

  • Ext. Crystal/Resonator High Freq .;
  • Start-up time: 258 CK + 4 ms;
  • [CKSEL=1110 SUT=00] 或后面与Ext. Crystal/Resonator High Freq .;.... 有关的选择。

如下两图:7.3728M晶振典型融丝位(及本站的开发板使用时候的典型设置

熔丝位典型设置

7.3728M晶振时选择下面的熔丝位

如果你在使用过程中遇到什么问题,欢迎讨论,http://bbs.avrvi.com


后记:说说Mega128的熔丝位

ATmega128是avr系列中一款高性能的芯片,设计的时候兼容M103模式,但是这个M103模式经常害人。基于此,说说ATmega128的熔丝位,顺便说说其他的功能。

默认情况下M103模式是选中的,应该将其去掉;晶振是内部1M晶振,如果你使用外部晶振,应该进行修改。M128可以开启硬件的看门狗,选中此项,看门狗不需要程序初始化,只需要程序里面喂狗就可以了。


默认熔丝第一部分

M103兼容模式,使能JTAG,使能SPI,Bootloader区大小4096,未使能BOOT。

默认熔丝第一部分

默认熔丝第二部分

DOD为2.7V,内部1M晶振。

默认熔丝第二部分

下面是本站使用M128开发板的典型设置,M103模式取消,使用M128模式,使用外部7.3728M晶振。

典型熔丝第一部分 (只说修改部分)

去掉了M103,从而使用M128模式。

典型熔丝第一部分

典型熔丝第二部分

选择最后一项,即使用外部高频晶振。

典型熔丝第二部分

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pointfish/article/details/6557630

智能推荐

小小“HTML”_拟古决绝词柬友-程序员宅基地

1.HTML是个啥?HyperText Markup Language超文本标记语言2.发展史_拟古决绝词柬友

九度OJ 1124:Digital Roots(数根) (递归)-程序员宅基地

时间限制:1 秒内存限制:32 兆特殊判题:否提交:2963解决:1066题目描述: The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit

C语言课程设计-学生宿舍信息管理系统_宿舍管理系统c语言课程设计_X-MTing的博客-程序员宅基地

它主要包括:宿舍号、住宿人员登记、对学生住宿情况查询,可以更快地了解到每个学生的住宿情况,使宿舍的管理效率更高,做的更好!学生的基本信息:入校时,每位同学都有唯一的学号,并被分配到指定的宿含楼和指定的宿舍, 也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便, 同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。在整体设计中,我们将宿舍管理系统分为五个大的功能:系统管理功能、公寓管理功能、信息查询功能、出入登记功能、信息修改功能。6、用户可以插入与删除用户自己的离返校信息。_宿舍管理系统c语言课程设计

随机过程和马尔可夫链的初步认识-程序员宅基地

一、随机过程\qquad在提及马尔可夫链之前,先谈下自己对随机过程的理解。\qquad随机过程就是一连串随着时间变化的随机变量。比如今天的天气是晴天,我们记为X0=晴天X_0=晴天X0​=晴天,明天的天气是不确定的,可能是晴天,也可能是阴天(这里简化了天气状况),我们记为X1={晴天,阴天}X_1=\{晴天,阴天\}X1​={晴天,阴天},可以发现X1X_1X1​就是一个随机变量,它的取值集合为{晴天,阴天}\{晴天,阴天\}{晴天,阴天},每一个取值都对应相应的概率。X1X_1X1​概率

string类的成员函数c_str()-程序员宅基地

#include #include using namespace std;int main(){ char * a ="Hello world!/n"; string c=a; string b; cin >> b; const char *d = b.c_str(); //注意是const

异步请求。用Ajax请求来传递json数据_如何通过ajax json异步传参访问-程序员宅基地

json数据交互和restful风格异步请求通常用Ajax来发起请求(里面传递json数据)1.导入jar包属于jackson.core中的包2.在界面添加一个onclick。触发事件。引入添加function(){}3.获取当前界面域的路径<% application.setAttribute(“APP_PATH”,request.getContextPath());..._如何通过ajax json异步传参访问

随便推点

HashMap底层实现原理_3.hashmap的底层实现原理是什么-程序员宅基地

在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。简单说下HashMap的实现原理:首先有一个每个元素_3.hashmap的底层实现原理是什么

【算法百题之四十五】5分钟看懂SPFA算法(含代码)_spfa算法详解-程序员宅基地

【算法百题之四十五】5分钟看懂SPFA(贝尔曼夫德算法优化版)算法 大家好,我是Lampard~~ 很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙! 今天的探讨的问题是:学习SPFA单源最短路径(动态逼近法) 【spfa算法详解1】 【spfa算法详解2】 若对SPFA,或者最短单源路径算法没有概念的同学可以先看看以上的两篇博客。读完之后能够对该算法有一个大致的概念。今天主要和大家一起通过代码一步步实现该算法。今天用..._spfa算法详解

Java中的成员方法与构造方法-程序员宅基地

首先要搞清楚什么是类方法,什么是构造方法一个类中的方法分为三类:1)全局方法 2) 成员方法 3)构造方法例:123456789101112public class Test{private int age; //这

【ERROR】java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit-程序员宅基地

tomcat 出现java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit运行时异常,主要原因是图形化问题造成。在tomcat的/bin/catalina.sh文件中增加-Djava.awt.headless=true如下JAVA_OPTS="$JAVA_OPTS -Djava.awt....

c语言小学生学数学十以内加法,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分..._Zeldovich Yakov的博客-程序员宅基地

该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include#include#includevoidMenu(void){printf("1,加法2,减法3,乘法4,除法5,退出\n");printf("请选择题目类型:");}intPlus(void){inta,b;a=rand()%10+1;b=rand()%10+1;printf("%-2d+...

c语言刘白林题库,第2章 基础知识_烈焰双雄的博客-程序员宅基地

任课教师:刘白林,E-mail:xit.lbl@,计算机程序设计基础,第2章数据类型、运算符与表达式,第2章数据类型、运算符与表达式,2.1标识符、常量和变量2.2C语言的数据类型2.3不同类型数据的混合运算2.4运算符与表达式2.5位运算,,2.1标识符、常量和变量,2.1.1标识符与关键字2.1.2常量2.1.3变量,,2.1.1标识符与关键字,标识符:用来标识变量名、符号常量名、函数名、数组..._c语言中定义整型变量的初值

推荐文章

热门文章

相关标签