首页 AVR042 AVR硬件设计

AVR042 AVR硬件设计

举报
开通vip

AVR042 AVR硬件设计AVR042: AVR硬件设计 翻译:邵子扬 精选AVR应用笔记 AVR042: AVR硬件设计 翻译:邵子扬 2006年6月7日 http://shaoziyang.bloger.com.cn shaoziyang@gmail.com 主要内容 · 数字和模拟部分充分供电 · RESET 信号线的连接 · SPI 接口的在系统编程 · 使用外部晶体振荡器或陶瓷振荡器 1. 介绍 这篇...

AVR042 AVR硬件设计
AVR042: AVR硬件设计 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc :邵子扬 精选AVR应用笔记 AVR042: AVR硬件设计 翻译:邵子扬 2006年6月7日 http://shaoziyang.bloger.com.cn shaoziyang@gmail.com 主要内容 · 数字和模拟部分充分供电 · RESET 信号线的连接 · SPI 接口的在系统编程 · 使用外部晶体振荡器或陶瓷振荡器 1. 介绍 这篇应用笔记是为了回答一些问题和开始设计 AVR 单片机时面对的一些疑问而写的,从每章的标题可以知道说明的问题。文章介绍了在设计中可能遇到的问题,而不是说明怎样使用使用 AVR 单片机。这篇文档的问题是从已有的 AVR 文档中收集出来的,并结合了一些现在的新资料。 在开始新设计之前高度推荐阅读应用笔记 AVR040 - “EMC 设计参考”,特别是对于需要开发针对有EMC需求的商业应用(或类似有此要求的欧洲国家)。此应用笔记可以在 ATMEL 的官方网站 http://www.atmel.com 上找到。 2. 电源供电 电源供电设计有两点要考虑:AVR的离散/数字元件;ESD 保护和噪声。两者在应用笔记 AVR040 中都详细说明了,这里只是简单概括。 2. 1数字电路供电 查看AVR单片机的数据手册,没有人会相信电源供电是不重要的。芯片有一个宽的电压范围,并且只从电源中汲取很少的电流。但是和所有的数字电路一样,电流是一个平均值。在时钟的沿有非常短的尖峰汲取电流,如果 I/O 口进行开关,尖峰电流会更大。如果所有的 IO 端口同时改变,电源线上的电流脉冲可能达到几百毫安。如果 I/O 端口没有使用,那么脉冲可能只有几个纳安。 这种尖峰电流不能通过长电源线进行传送,所以主电源需要使用退耦电容。 图2-1. 不正确的退耦 图2-1 显示了一个不好的退耦的例子。电容离单片机太远了,产生了一个大电流回路。这里的电源层和地线层就是大电流回路的一部分,因此噪声更容易传导到其他芯片,电磁辐射也增加了,整个地线层还成为了噪声信号的天线。当单片机的电源和地引脚直接连接到电源和地线层就会出现这个情况(典型是过孔安装的元件),退耦电容的连接也是同样的。同样的情况经常在表面安装的元件的电路板上经常看到,如果整个电路放在电路板的一边而退耦电容在另外一边。 图2-2 显示了电容更好的放置方法,大电流回路不是电源或地线层的一部分。这很重要,因为电源和地线层会传导大量的噪声。图中也显示了退耦的另外一种改进,一个电感用于减少电源的开关噪声。电感的等效电阻要足够小,保证没有大的直流压降。 图2-2. 使用电感退耦 通常,AVR 单片机的电源和地线引脚相互靠近(如 ATmega8535),这样比标准引脚的芯片(如 ATmega8515)有更好的退耦效果,标准封装的电源和地线引脚在DIP的对角线。这个缺点可以使用 TQFP 封装来克服,它可以使得退耦电容非常靠近。对于有多个电源和地的芯片,基本上每对电源和地都需要自己的退耦电容。 主电源需要使用容量有数uF的钽电容进行稳定。 2. 2模拟电路供电 AVR 单片机内置的 ADC 有独立的模拟供电引脚 Avcc,这个分开的供电使模拟部分减少了数字电路部分的开关噪声影响。同样,模拟地 AGND 也是独立与数字地的。 为了使 ADC 获得更好的精度,模拟电源必须单独退耦。模拟地应当和数字地分开,它们应当只在一点连接,例如电源的地。 3. RESET 引脚的连接 AVR 单片机的 RESET(复位)脚在低电平时有效,设置这个为低电平将使得单片机复位。复位有两个目的: 1. 释放所有端口成为三态(除了 XTAL 引脚),初始化所有端口寄存器和设置程序指针为0。 2. 进入编程模式。此外,上拉 RESET 到很高电压可以进入高电压/并行编程模式,很高电压指 11.5 – 12.5V (参考数据手册)。 Reset 引脚有内部上拉电阻,但是如果有很强的环境噪声可能会偶然引起复位。参考数据手册中指定 型号 pcr仪的中文说明书矿用离心泵型号大全阀门型号表示含义汽车蓄电池车型适配表汉川数控铣床 的上拉电阻参数。 可以使用不同方式来避免意外的复位,可以使用外部管理或外部监控电路来控制 RESET 管脚。如果外部管理电路如应用笔记AVR180中说明的,可以不用再考虑怎样连接 RESET 引脚。如果AVR单片机有内置的电压监视电路,那么可以省去外部电路。 连接 RESET 是为了能既进入高电压编程,也能通过上拉电阻进入普通的低电压复位,这个上拉电阻保证了复位引脚不会意外变为低电平。上拉电阻理论上可以是任意大小,但是为了能使用如 STK500/AVRISP 等编程工具,上拉电阻不能太小,以免不能将 RESET 信号拉低。推荐使用 4.7k 的电阻或更大的(使用 STK500 编程时)。 为了减少 RESET 上的噪声,最好通过一个电容连接 RESET 到地线。自从AVR 内置了低通滤波器消除尖峰和噪声后这已经不是必须的了,但外部电容可以提供额外的保护。如果不使用高电压编程,推荐添加一个 ESD 保护二极管从 RESET 到 Vcc,因为为了高压编程没有内置保护二极管。元件应当尽量靠近 RESET 引脚,图3-1 显示了推荐的电路。 图3-1. 推荐的 Reset 连接方式 4. 连接ISP信号线 在系统编程(ISP)信号线用于编程 AVR 单片机的 Flash、EEPROM、锁定位和大部分熔丝位(除了 ATtiny11 和ATtiny28 外)。 这个特点使得可以在产品的最后阶段对用户板进行编程,或者在以后重新编程(如果发现问题),或者进行软件升级。高度推荐在用户板上总是保留一个 ISP 接口。 Atmel ISP 编程器有两种标准连接方式:6 芯和 10 芯接口。如图4-1。需要连接数据线(MOSI 和 MISO)以及总线时钟(SCK),用户电压 VTG,GND 和 RESET(RST)。 图4-1. STK500, AVR ISP 和 STK200/STK300 的标准 ISP 连接 一些 ISP 编程器由用户板提供电源,这时比较容易适应用户系统的电平。其他的 ISP 编程器,如 STK500,可以通过 VTG 给用户板供电,这时一定要注意不要打开用户板的电源开关。阅读 ISP 编程器的用户手册,找出你编程器的性能和接口。 ISP 信号线在大多数芯片上位于相同的引脚,作为串行接口设备(SPI),或其他多功能引脚。参考芯片的数据手册查明 ISP 使用的管脚。当有其他芯片连接到 AVR 的 ISP 上时,需要进行保护,防止改变信号状态。这对于 SPI 总线尤其重要。在 SPI 线上串联电阻,如图4-2 中那样,是最简单的方法。AVR 在编程状态下不会驱动 SPI 引脚,当保持 AVR 的 RESET 进入编程模式 – AVR 所有的引脚都是三态的。 图4-2. 连接 SPI 到 ISP 接口 一个系统中的多个 AVR 可以通过同样的 ISP 接口进行编程。但是如果没有特殊的设计,所有的 AVR 单片机都会对 ISP 指令做出响应。在只设计一个 ISP 接口时,可以设计为一次只给一个 AVR 单片机提供 SPI 时钟,所有其他的 SPI 线可以共享。在这个方式下,所有 AVR 单片机都在相同的保护电阻之后,ISP 的时钟信号可以用跳针来连接。如果设计多个 ISP 接口,每个都应当如图4-2 那样连接。 5. 使用晶体和陶瓷振荡器 大多数 AVR 单片机可以使用不同的时钟源。典型外部时钟源是 RC 振荡器、晶体和陶瓷振荡器。晶体和陶瓷振荡器在一些应用中使用引起问题是因为没有正确理解这些时钟,这一章将专门介绍晶体和陶瓷振荡器的使用,关注于它们的使用而不是理论。 5.1 使用时钟源 AVR 使用的时钟源通过熔丝进行选择,大多数 ISP 和并行编程器可以对熔丝位进行编程,来选择合适的时钟。在 AVR 的 Flash 被擦除时熔丝位并没有被擦除,只有在需要修改相关设置时才对熔丝位进行编程。每次编程熔丝无需将单片机的内容擦除和再编程,与这篇文档相关的时钟选项有: · 外部低频晶体 · 外部晶体振荡器 · 外部陶瓷振荡器 可以选择其它一些与启动相关的子参数设置,但是 3 种时钟选项是应当被关注的基本设置。时钟选项在不同的 AVR 单片机之间有所不同 – 不是所有的型号都支持各种外部时钟的。查看相关型号的数据手册来决定具体使用的时钟。 应当知道如果选择了实际不支持的时钟,单片机可能无法运行,因为没有相应的内部振荡器电路。因为在擦除 Flash 时不清除熔丝,所以如果选择了错误的设置就会引起故障。 5.2 关于晶体和陶瓷振荡器 AVR 单片机使用的典型晶体是平行切割的振荡晶体。陶瓷振荡器非常类似于平行切割的晶体,可以认为它是成本和精度更低的晶体。陶瓷振荡器的Q值比较低,这既是优点也是缺点。因为Q值低,陶瓷振荡器的频率更容易调节,但是对温度和负载变化也更加敏感,引起不希望的频率变化。陶瓷振荡器的优点是起振速度比晶体快。 在石英晶体和陶瓷振荡器之间没有显著的区别。在这一章中,振荡器一般同时指这两者。 表5-1.陶瓷振荡器和石英晶体之间的差异 陶瓷振荡器 石英晶体 老化 ±3000 ppm ±10 ppm 频率公差 ±2000-5000 ppm ±20 ppm 频率温度特性 ±20-50 ppm/˚C ±0.5 ppm/˚C 频率拉动能力 ±100-350 ppm/pF ±15 ppm/pF 振荡器起振时间 0.01-0.5 ms 1-10 ms 品质系数(Q值) 100-5000 103-5·105 用于电路中的平面振荡器,一般相关的元件是电容。这种电路依赖于元件之间的联合和振荡器来达到必要的相位移动和维持振荡频率,基本振荡器电路如图5-1。虚线部分的电路是 AVR 单片机内置的。 图5-1. 等价的基本反向电路 注意: (A) 用于频率大于400KHz的晶体或陶瓷振荡器的振荡电路 (B) 低频电路 (32.768kHz) (不是所有 AVR 都支持) 简化 AVR 内置的振荡器电路,它们可以看做如图5-1的反相器电路。频率大于 400KHz 时使用了电路 (A),这时必须接外部电容。电路 (B) 用于低频,一些 型号的 AVR 单片机为典型频率 - 32.768kHz 做了优化。它内置了需要的电容和电阻,电阻Rb用于振荡器的偏置和限制电流,电阻 Rf(约1M欧姆)提供反馈并偏置反相器到线性区。查看数据手册了解指定型号的单片机是否内置了低频振荡电路。 当使用了振荡器,就需要提供(外部)电容以促进振荡。如果容性负载不足,一个平面振荡器将不能稳定振荡。如果容性负载太大,可能不能起振,因为驱动电平依赖于负载。找出合适的容性负载参数需要一定的技巧,在数据手册中用 CL 表示这个参数(在振荡器的最后部分)。CL 包括寄生电容和 XTAL 引脚的电容,可以用经验决定,或者用公式5-1来计算。 公式5-1. 这里 CL1 和 CL2 可以参考图5-1,CS 是 XTAL 引脚和 PCB 寄生电容的总和。CS 可以估计为 5-10pF,如果CL1 = CL2 那么外部电容可以用公式5-2 来计算: 公式5-2. 5.3 安全系数 为了避免晶体过载,造成不能起振,需要验证振荡器的安全系数(包括特殊晶体)。过载是造成陶瓷振荡器不能启动的原因。为了验证振荡器的安全系数,必须决定振荡器负载(或晶体振荡范围)。串联电阻(RQ)到晶体(临时), 如图5-2,可以决定振荡器负载。 图5-2. 串联 RQ 到晶体来决定振荡器负载 测试的方法是改变外部的电容,从小电容开始逐渐增加,一直到使振荡器停止振荡。确保电容安装牢固 – 避免使用任何插座。 将 CL1 和 CL2 从 1-2pF 开始启动 AVR 单片机,验证振荡器是否真实起振。如果有示波器探针,可以用于晶体检测。或者编写一个小程序,周期改变一个 I/O 端口(译者:最好是驱动一个LED,这样更直观)也可以达到这个目的。增加 CL1 和 CL2 直到振荡器停止振荡。用公式5-3 决定安全系数,推荐使用比安全系数小 3-5 的容性负载。 公式5-3. 这里负载 RL 由公式5-4 决定: 公式5-4. 这里 R1 和 C0 是从数据手册中的电阻和CL 查表并通过公式5-1 计算得出的。 用优化的安全系数曲线得出容性负载,应当意识到不推荐使用安全系数曲线的顶点,而是选取曲线开始下降的点。曲线应当如图5-3 所示。 图5-3. 安全系数RQ曲线 图5-3 的例子中阴影区就是安全区。通常情况下安全系数大于 3 认为是安全的,其它系数也可以被考虑:最小需要容性负载、推荐和最大驱动电平。 5.4 推荐电容参数 这里推荐的参数在大多数情况都可以很好的工作,但是没有一种办法可以保证电容参数对所有的振荡器都合适。 当使用时钟选项 “外部晶体振荡器”,晶体频率从 400 kHz 到更高,对于这样的标准 “高” 频晶体推荐电容参数在 22-33pF。 对于时钟选项 “外部低频晶体” 的 32.768kHz 晶体,内部振荡器电路可能已经提供了需要的容性负载。编程 CKOPT 熔丝,用户可以允许 XTAL1 和 XTAL2 的内部电容,内部电容典型值是 20pF,但是可能会不同。这样可以省掉外部电容,否则就需要使用外部电容。此时容性负载参数,由晶体制造商给出。外部电容可以由公式5-2 计算。使用外部电容时 CKOPT 熔丝必须不被编程。 请参考数据手册确定指定型号的芯片是否有内部电容,工作电压在 1.8-5.5V 的芯片没有内部电容(除了 Atmega162)。注意 AT90S8535, Atmega163 和 Atmega103 等型号没有 CKOPT 熔丝,但是它们有专用引脚(TOSC1-TOSC2),用来连接 32.768kHz 手表晶体。 使用时钟选项 “外部陶瓷振荡器” 时强烈推荐参考数据手册决定使用的电容。总是使用推荐的电容参数,因为陶瓷振荡器对容性负载非常敏感。 5.5 拉动额定频率 振荡器频率依赖于电容负载,应用数据手册中指定的电容负载将得到非常接近于额定频率的频率(目标频率)。如果使用其它电容负载,频率将发生变化。电容负载减少,频率将增加;电容负载增加,频率将降低。频率拉动能力 – 振荡器频率能够被强制改变多少 – 依赖于振荡器的类型或振荡器的Q值。典型晶体有很高的 Q 值,意味着振荡器频率拉动能力很低。一些晶体有特别高的Q值,如 32.768kHz 晶体,所以它被用于计时。陶瓷振荡器的Q值不高,对电容负载更加敏感。 不管振荡器类型是什么频率都能被改变电容负载而拉动,但是使用大电容负载要保证在任何情况下振荡器能够启动。如果振荡器过载,振荡器将不能启动;而一旦振荡器启动后,很少会因为过载而停止工作。用手指或探针触摸没有启动的振荡器的引脚能够启动振荡器,可以通过它来识别过载问题。 为了判定振荡器的拉动能力需要知道振荡器的 “运动” 电容。这个参数在所有的晶体数据手册中都没有列出来,也不推荐有意拉动振荡器频率除非你理解了后面的理论。 5.6 外部不平衡电容 在噪声环境振荡器会被噪声所影响,如果噪声足够强,振荡器会被 “上锁” 并停止振荡。要降低振荡器对噪声的敏感性,可以稍微增加振荡器的高阻抗输入端 XTAL1 的电容。只增加一个电容不会对总的电容负载产生很大影响,但是不平衡电容对振荡器频率的影响比电容负载大。不平衡电容负载影响振荡的占空比,因此一般不要使用不平衡电容负载。尤其是运行速度接近 AVR 的最大速度时。 5.7 RTC 晶体 许多 AVR 单片机可以使用内置的定时器/计数器的异步时钟,可以将计数器这个特点用于实时时钟,将 32.768KHz 晶体连接到 AVR 单片机的 TOSCx 引脚。一些 AVR 内部振荡器电路提供了大约 20pF 的电容负载,适合于常用的 32.768KHz 晶体,参考数据手册查看相应单片机的电容。内部电容不足时可以使用外部电容。 5.8 PCB 板 最后,要强调振荡器和 AVR 单片机的相对物理位置。尽可能的 AVR 将振荡器靠近单片机,并用地线层将振荡器包围起来。 6. 例子 图6-1 (A-D) 显示了ATmega8515 使用晶体振荡器的原理图和 PCB板,VCC的数字退耦如图。注意地线层包围了晶体,并且晶体和 ATmega8515 的距离非常短。 图6-1 (A) (B) (C) (D) (A)是推荐的基本原理图,(B)是覆铜层,(C)和(D)是丝印层。 (全文完) 第 3 页 共 1页
本文档为【AVR042 AVR硬件设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_644545
暂无简介~
格式:doc
大小:162KB
软件:Word
页数:0
分类:互联网
上传时间:2018-09-10
浏览量:15