网站大量收购独家精品文档,联系QQ:2885784924

AVR内部RC振荡器校正.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR内部RC振荡器校正

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

文档评论(0)

sy78219 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档