AVR单片机内部RC振荡器校正方法

发布者:码农闲散人最新更新时间:2020-02-26 来源: eefocus关键字:AVR单片机  内部RC振荡器  校正方法 手机看文章 扫描二维码
随时随地手机看文章

简介:VR单片机具有内部RC振荡器,对于内部振荡器的校正一直是一个比较难的问题,由于这个问题的困扰,导致很多正常的程序无法正常工作,特此整理该文档供读者参考。


操作理论 – 内部 RC 振荡器

在产品中内部 RC 振荡器在 5V 或 3.3V 下校正。工厂校正的精度在 +/-3 或 +/-10% (参考数据手册)。如果一个设计需要比工厂标准校正更高的精度,就需要再次校正 RC 振荡器,这样可以得到大约 +/-1%(对于工厂校正精度是+/-10%的器件是 +/-2%)的精度。


时钟选择

AVR 熔丝的设置控制了系统使用的时钟源。为了使用内部 RC 振荡器,需要选择正确的熔丝。数据手册中说明了可以使用的熔丝设置。


晶体参数


对于所有可以调整的振荡器,不推荐调整频率超过指定基本频率的 10%,因为内部定时是依赖于 RC 振荡器的。


知道了 RC 振荡器的基本特性,就可以在 10% 的范围内,在任何工作电压和环境温度下,将给定的频率校正到 +/-1% 的精度。


进行校正

这一节分为协议和固件程序两部分。协议是为了适应任何支持校正的编程工具,如 AVR 的开发工具STK500, AVRISP, JTAGICE 和 JTAGICE mkII,这些工具校正的用法在后面说明。


STK500, AVRISP, JTAGICE 和 JTAGICE mkII 目前只支持命令行版本的校正,由 AVR Studio 4.11 SP1 (及以后版本)支持。最新版本的 AVR Studio 可以在 http://www.atmel.com/avr/ 下载。


校正协议

校正协议是简单快速的,以保证可以用于产品中。编程使用的管脚是 ISP 接口或 JTAG 接口(如果有),使其可以用于最终产品中(或PCB)。


两个管脚用于进行校正: ISP 中的 MOSI 和 MISO,或 JTAG 中的 TDI 和 TDO。这里为了简单只说明 MOSI 和 MISO,TDI 和 TDO 的用法是一样的。


基本概念就是编程器产生校正时钟(C-clock),单片机使用它作为参考来校正自己的内部 RC 振荡器。当单片机完成校正后通过 MISO 发送 “OK”信号给编程器。编程器允许 MISO 信号线上拉,而单片机允许 MOSI 信号线上拉,这是为了保证噪声不影响校正。


编程器使用 1024 C-cycles (C-clock 周期)作为溢出时间,校正程序在这个时间内完成


校正程序按一下步骤运行:

1. 编程器写入校正固件程序到单片机中,允许 MISO 上拉,并释放 reset 信号线。校正时钟发送到 MOSI 信号线。手表晶体(32.768kHz)的频率是合适的。

2. 单片机允许 MOSI 内部上拉,并开始监听 MOSI 上的校正时钟信号。

3. 当单片机检测到用于二进制搜索的校正时钟达到 1% 精度,如果不是需要的参数值,那么就把邻近值作为结果,并进行验证

4. 校正值存放到 EEPROM 中(在校正失败时,忽略这个步骤)。

5. 当成功完成校正后,翻转 MISO 信号 4 次。在 MOSI 时钟下降沿时执行 MISO 翻转 5 到 10 个 CPU 周期(C-clock)。在校正失败时,不进行这一步。

6. 如果单片机没有 EESAVE 熔丝,编程器必须取回 EEPROM 中的校正值以便恢复,因为稍后固件程序将被从 Flash 中擦除。如果有 EESAVE 熔丝,就设置这一位,这样在擦除 Flash 时就不会擦除 EEPROM 了。

必须在运行时从 EEPROM 复制校正参数到 OSCCAL 寄存器,为此需要在最终的固件程序中执行它。


校正固件程序

校正代码是用汇编写的,对于 AVR Studio 4.11 已经安装了带有校正包的汇编。


校正固件程序是按照方便修改为任何型号的单片机(表1中)来组织的。同样,校正的接口也可以被修改。如果使用 AVR 的开发工具,所有需要进行的修改都在文件 “RC_Calibration.asm”中。


文件包括下面内容:

1. 指定芯片文件(选择和你的系统对应的),如 “m16.asm”是 Atmega16 的。芯片指定文件包括下面内容:

a. AVR Studio 的寄存器和位定义。

b. 定义的内存映射文件,指定代码的位置和存放在 EEPROM 的校正数据的位置。

c. OSCCAL 访问的宏,控制怎样对 OSCCAL 寄存器进行访问。访问 OSCCAL 寄存器的方法与 IO 文件和 OSCCAL 寄存器的位置有关。

d. 振荡器版本文件。这个文件定义了二进制搜索的初始化步骤,因为一些 OSCCAL 寄存器是 7 位,另外的是 8 位的。

e. 返回堆栈初始化宏文件。一些芯片有硬件堆栈,另外的使用软件堆栈,需要进行初始化。

f. 端口访问宏文件,定义了怎样访问与校正相关的端口的相关寄存器。需要这个文件是因为一些寄存器在 IO 文件的高端部分,而其它的在低端部分。

g. 重定义位和寄存器名。

请注意使用 ATmega169 修订版F 的芯片时需要修改芯片的特殊文件,在“m169.asm”文件中振荡器版本要设置成 5。

2. 校正接口文件。这个文件指定使用 ISP 或 JTAG 端口,以及使用的管脚名。校正时钟频率也在这里指定。

3. 包含使用宏定义的文件 - “macros.inc”。

4. 公共的校正代码文件 “main.asm”。

校正代码的结构是按照易于修改而设计的,可以更简单的适应目标系统的单片机和接口。此外,广泛使用了宏定义保证了代码可以只要最小的改动。最后,芯片和校正接口的设计使得只需很小的改动就可以支持新的器件。


编译校正固件

校正固件的主程序是 RC_Calibration.asm。这个文件需要在AVR Studio中添加到一个汇编工程里。在这个文件中指定了单片机型号和使用的校正接口:STK500, AVRISP, JTAGICE 或 JTAGICE mkII。甚至还可以指定校正的精度。


一旦修改这些选项,编译工程产生一个二进制文件 “rc_calib.hex”,就是使用这个文件进行校正。


注意正确设置熔丝很重要:如果选择了 1MHz RC 振荡器,就不能校正为单片机 8MHz。

关键字:AVR单片机  内部RC振荡器  校正方法 引用地址:AVR单片机内部RC振荡器校正方法

上一篇:基于AVR和RFID的电子防丢防盗器设计
下一篇:Atmega16L的模/数转换器—AVR单片机入门篇

推荐阅读最新更新时间:2024-11-06 15:26

基于AVR单片机Megal6的电子时钟设计
1 引言   数字钟能长期、连续、可靠、稳定地工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。数字钟是采用数字电路实现对“时、分、秒”数字显示的计时装置,广泛应用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活中不可缺少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。传统MCS51系列单片机的所有数据处理都基于一个累加器,因此累加器与程序存储器、数据存储器之间的数据转换就成了单片机的瓶颈;在AVR单片机中,寄存器由32个通用工作寄存器组成,并且任何一个寄存器都能充当累加器,从
[单片机]
基于<font color='red'>AVR单片机</font>Megal6的电子时钟设计
基于Atmega16L单片机的高精度频率调节器
1 引言 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。 Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。 本
[单片机]
基于Atmega16L单片机的高精度频率调节器
LPC11Cx系列CAN总线位定时参数计算方法校正
引言 LPC11Cx系列是NXP公司的高性价比Cortex—M0构架ARM微控制器产品,内嵌CAN总线控制器。CAN总线位定时参数决定CAN总线能否按给定速率正常通信及其稳定性,但在实践中发现,原版用户手册及国内译本在CAN总线位定时参数配置寄存器的表述上有误,导致用户CAN总线无法正常通信。下面将校正错误,并给出CAN总线位定时参数具体计算实例。 1 位定时时序及参数 依据CAN总线规范,LPC11Cx系列的位时间被分成4个段:同步段、时间传播段、相位缓冲区段1和相位缓冲区段2,位时序如图1所示。 图1中,每一个段包含有一个指定的、可编程的时间量子数,如表1所列。 表1中,时间量子tq是位时间长度的基本时间单元,
[单片机]
LPC11Cx系列CAN总线位定时参数计算<font color='red'>方法</font><font color='red'>校正</font>
嵌入式学习笔记20——AVR单片机之中断
1.ATmega16单片机具有21个中断源。每个中断源都有一个独立的中断向量作为中断服务程序的入口地址,而且所有的中断源都有自己独立的使能位。如果全局中断I和相应的中断使能位都置位,则在中断标志位置位时将执行中断服务程序。 2.一个中断产生后,全局中断使能位I将被清零,后的中断被屏蔽。用户可以在中断服务程序里面对I置位从而开全局中断,在中断返回后全局中断I将重新置位。 3.ATmega16单片机中断向量表介绍: 4.AVR单片机外部中断 ATmega16单片机具有3个外部中断,分别是INT0,INT1,INT2,这3个外部中断都是有单片机的引脚触发的。 需要注意的是,如果允许外部中断的话,即使INT0,IN
[单片机]
嵌入式学习笔记20——<font color='red'>AVR单片机</font>之中断
基于AVR单片机的LED显示屏的灰度设计与实现
  LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式单片机的LED显示屏解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。    1 AVR单片机简介       AVR单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结
[工业控制]
AVR单片机实践--ATmega16按键控制流水灯
一、实验目的 1.掌握AVR单片机开发平台的搭建方法。 2.掌握GPIO的编程方法。 二、实验内容及结果 1.设计程序 自行设计电路,包括流水灯和4个按键,完成“按键控制流水灯样式”的程序编写与调试。 具体要求如下: (1)初始状态下,所有LED灯点亮; (2)K1为启/停键,按下后控制LED流水灯按照当前指定样式运行或停止; (3)K2为流水灯样式选择键,分两种样式,默认为样式1。每次按下K2当前样式立即转变。 样式1:每次仅一个LED熄灭,熄灭LED从L0至L7转移,如此循环运行。 样式2:每次仅一个LED熄灭,熄灭LED从L7至L0转移,如此循环运行。 2.实验结果 (1)在下方贴出使用Proteus绘制的电
[单片机]
<font color='red'>AVR单片机</font>实践--ATmega16按键控制流水灯
AVR单片机ISP(在系统编程)及熔丝补救方法(DebugWIRE)
并行编程,最早的编程方法,功能最强大,但需要连接较多的引脚,通常需要12V~24V的高 压,以示区别,下面称为高压并行编程。 ISP(In System Programmability) 在系统编程,简称为串行下载。 IAP(In Application Programing) 在应用编程,BootLoader也是类似的意思 。 1 ISP虽然利用了SPI接口(例外:M64/M128为UASRT0接口,Tiny13等没有SPI接口)的引脚,但只 在复位时起作用,而且下载完成后合格的下载器会自动断开端口的连接,对正常工作时没有影响的( 在产品应用中,下载器一定是不会一直粘在上面的)。 2 虽然高压并行下载能修复任何熔丝位,
[单片机]
基于AVR单片机的ATMEAG16L的定时/ 计数器设计
  ATMEAG16L有两个8位定时/计数器(T/CO、T/C2)和一个16位定时/计数器(T/C1)。每一个计数器都支持PWM(脉冲宽度调制)输出功能。PWM输出在电机控制、开关电源、信号发生等领域有着广泛的应用。   ATMEAG16L的定时/计数器时钟是可以选择的。它的时钟部分包括预分频器和一个多路选择器。预分频器可被认为是一个有多级输出的分频器。ATMEAG16L用一个10位的计数器把输入时钟分为4种可选择的分频输出。多路选择器可设置使用某一个分频输出,或者不使用分频输出和使用外部引脚输入时钟,下图为预分频器的基本结构。   ATMEAG16L定时/计数器的时钟选择   1.使用系统时钟 这种情况下使用系统时钟作为预
[单片机]
基于<font color='red'>AVR单片机</font>的ATMEAG16L的定时/ 计数器设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved