欢迎来到天天文库
浏览记录
ID:14772110
大小:111.00 KB
页数:10页
时间:2018-07-30
《avr内部rc震荡器校正》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AVR单片机内部RC振荡器校正方法AVR单片机具有内部RC振荡器,对于内部振荡器的校正一直是一个比较难的问题,由于这个问题的困扰,导致很多正常的程序无法正常工作,特此整理该文档供客户参考,如果有需要英文的可以到ATMEL官方网站下载。特点l 可以使用STK500,AVRISP,JTAGICE或JTAGICEmkII校正l 可以使用第三方编程器校正l 调整RC频率到+/-1%精度l 在任意电压和温度下调整RC振荡器l
2、 调整RC振荡器到指定频率l 支持所有带有RC振荡器的AVR单片机l 可以选择振荡器时钟频率 介绍这篇应用笔记说明了快速和精确校正内部RC振荡器的方法。它提供了容易修改的固件源代码,可以用在任何带有内部可调RC振荡器的AVR单片机中。这个固件允许使用AVRSTK500,AVRISP或JTAGICE,但是也可以用在第三方系统中(如编程器)。 大部分AVR单片机提供了内部RC振荡器。这个RC振荡器的频率可以校正到+/-1%。这个特点使其提供了更大的灵活性和节约
3、了成本。 在Atmel的工厂中是在固定电压和温度下进行了校正(典型是25°C和5V),而内部RC振荡器的频率是受到温度和电压同时影响的,这使得用户在特定的应用环境时可能需要进行再次校正。再次校正可以得到更高的精度,匹配特定的电压或温度,甚至调整到一个完全不同的频率。 这篇应用笔记说明的校正方法使用的时间只比从签名中读取工厂校正字节并回写到设备中稍长。全部的编程时间几乎不受到校正的影响。 注意在某些系统中非常依赖于运行时间,这说明在应用中在整个温度范围需要一个精确的与电压无关的系统时钟。在这种情况下
4、一个手表晶体可以提供可靠和低成本的解决方案。 在这篇文档的最后有快速开始指南。 操作理论–内部RC振荡器在产品中内部RC振荡器在5V或3.3V下校正。工厂校正的精度在+/-3或+/-10%(参考数据手册)。如果一个设计需要比工厂标准校正更高的精度,就需要再次校正RC振荡器,这样可以得到大约+/-1%(对于工厂校正精度是+/-10%的器件是+/-2%)的精度。 时钟选择AVR熔丝的设置控制了系统使用的时钟源。为了使用内部RC振荡器,需要选择正确的熔丝。数据手册中说明了可以使用的熔丝设置。 基本频率下
5、面小节给出了AVR单片机内部RC振荡器说明。 一些AVR单片机有一个RC振荡器,其它的有4种不同的RC振荡器可以选择,频率范围从1MHz到9.6MHz。校正内部RC振荡器使用晶体校正寄存器:SCCAL(在IO头文件中定义了)。OSCCAL寄存器是一个字节宽度,它可以对系统频率进行微调,校正RC振荡器就利用了这个微调。 当单片机被Atmel校正后,校正字节就存放到单片机的签名中。不同芯片的校正字节之间差异可能很大,因为RC振荡器与工艺有关,有一定离散性。如果芯片有多于一个振荡器,那每个振荡器都对应一
6、个校正字节。 大多数单片机的缺省RC校正字节在复位时自动从签名中载入,并复制到OSCCAL寄存器中。例如,ATmega8的默认时钟设置是内部1MHzRC振荡器;对应的1MHz校正字节在复位后自动载入。如果熔丝改变为4MHz振荡器,校正字节就需要手工载入OSCCAL寄存器了。编程工具可以从签名中读取4MHz校正字节并强制存放到Flash或EEPROM中,然后由用户程序在运行时读取出来再复制到OSCCAL寄存器中。 为了容易使用OSCCAL寄存器调整振荡器,一些单片机可以设置系统的预分频时钟。预分频寄
7、存器(CLKPR)可以用预定义的系数比例变化系统时钟。同样,这个预分频可以通过熔丝预先设置;编程CKDIV8熔丝就设置CLKPR系统时钟分频8。这可以保证芯片在低于最大频率下操作,CLKPR可以在运行时修改。 基本频率是定义为不分频。 RC振荡器总结AVR单片机在不同时期使用了不同的RC振荡器。一个关于RC振荡器的回顾参见表1。芯片列表按照振荡器类型排序,也差不多是按照发布时间排序的。表中只列出了可以调整振荡器的芯片。表1.带有内部RC振荡器的芯片特点,按照版本分类振荡器版本器件RC振荡器频率CK
8、DIVPRSCK1.1ATtiny121.2--1.2ATtiny151.6--2.0ATmega1631.0--2.0ATmega3231.0--3.0ATmega81.0,2.0,4.0和8.0--3.0ATmega161.0,2.0,4.0和8.0--3.0ATmega321.0,2.0,4.0和8.0--3.1ATmega641.0,2.0,4.0和8.0-XDIV(1)3.1ATmega1281.0,2.0,4.0和8.0-XDIV(1)3.0ATmega85151.0,
此文档下载收益归作者所有