现在,许多IC制造业者不断地减小微控制器的尺寸,以达到在单位硅片上增加更多部件的目的。通常减小尺寸会使晶体管更快。这样一来,虽然无法增加MCU时钟速率,但是可以增加上升和下降速度,从而谐波分量会提升频率比例。许多情况下,用户无法知道微控制器尺寸减小了,这样可能开始时电路中的MCU是正常的,但在以后的产品生命周期中就可能出现EMC问题。对此最好的解决方法就是在开始设计电路时就设计一个较稳健的电路。
许多实时应用中都需要高速MCU,设计者一定要认真对待其电路设计和PCB布线以减少潜在的EMC问题。MCU需要的电源功率随着其处理功率的增加而增加。让供给电路(比如校准电路)靠近微控制器是不难办到的,再用一个独立的电容就可以减少直流电源对其它电路的影响。
MCU通常有一个片上振荡器,它用自身的晶体或谐振器连接,从而避免使用其它时钟驱动电路的时钟。这个独立的时钟能更好地防止系统其它部份所产生的噪声辐射。在时钟频率方面,MCU通常是对功率要求最高的设备,这样让时钟靠近MCU就能保证对时钟频率仅有最小的驱动需求。
1. I/O引脚
对于大多数MCU,引脚通常都是高阻输入或混合输入/输出。高阻输入引脚易受噪声影响,并且在非正常终止时会使寄存器锁存错误的电平。一个非内部终端的输入引脚需要有高阻抗(例如4.7KΩ或10KΩ)将每个引脚连接到地或到供电电平,以确保一个可知的逻辑状态。未连接的输入引脚通常浮动在供电电平的中间值周围,或者由于有内部漏电通路而浮动于不确定的电压值。
对于IRQ或复位引脚(输入引脚)来说,其终端比普通I/O口引脚更为重要。如果噪声导致这两个引脚误触发,它将将影响整个电路。当输入引脚未连接,同时输入锁存器半开半闭时,会导致IC内部电流泄漏,此时通常可以看到高电流消耗,尤其是在CMOS器件中。因此在输入引脚终端连接高阻抗可以减少供电电流,和电磁兼容的其它优点一样。
2.IRQ引脚
由于中断对MCU操作有影响,因此它是元件中最敏感的引脚之一。从远端设备到PCB板上的MCU,甚至在插件适配器或子系统卡上,IRQ都可以被查询。因此,确保与中断请求引脚的任何连线都有瞬时静电释放保护是非常重要的。对于静电释放,在IRQ连线上有双向二极管、transorbs或金属氧化变阻器终端通常就足够了,而且它们还能在不产生大的线路负荷的情况下帮助减少过冲和阻尼震荡。即便是对价格很敏感的应用,IRQ线上的电阻终端也同样不可缺少。
3.复位引脚
不正确的复位将导致许多问题,因为不同的应用利用了MCU启动和断电的不同情况。复位最基本的功能,就是保证了一旦上电MCU便开始用可控制的方式执行代码。
上电时电源上升到MCU的工作电压,在晶振稳定之前需要等一段时间。因此在复位引脚上要有时间延时。最简单的延时就是电阻-电容(RC)网络,在电流经过电阻时电容开始充电,一直到电平达到了能被MCU在逻辑1状态时的复位电路检测到的值为止。
理想情况下没有严格规定电阻和电容的大小,但也有其它方面的考虑。复位引脚的内部泄漏电流通常规定不能超出1µA(针对Motorola HC08 MCU),这意味着电阻最大为100k.,电容不能是电解电容,以保持停止电流的最小值。推荐使用陶瓷电容,因为它折衷了低价格、低泄漏、高频率响应。复位引脚电容非常小(Motorola HC08MCU 低于5pF)。对于最小阻抗值也有限制,因为最大上拉电流大约为5mA,1V (VOL)。加上外部电容的低阻抗电压源,则确定了上拉电阻的最小值为2KΩ。
用二极管来箝位复位引脚的电压也是一种推荐做法,它能防止供电电压过度,并且能够在断电时使电容迅速放电。
4.振荡器
许多MCU结合一个反相放大器与外部晶体或陶瓷共振器一起构成皮尔斯振荡器结构。下面则讨论用来与专用外部元件一起得到振荡的放大器最小增益(跨导)。
图1给出了MCU上使用的典型标准皮尔斯振荡器结构,晶体的频率范围在1MHz到20MHz。下面用简单的形式给出了MCU的内部电路,与非门后面是反相器。与非门有两个输入:一个连到MCU的OSC1脚,另一个连接到内部STOP上。

图1 工作在1MHz至20MHz的标准皮尔斯振荡器
振荡电路必须有正反馈,且闭环增益大于1。电阻R0导致了负反馈,增大了放大器开环增益的需求。R0通常应尽可能大,以使反馈减到最小,同时克服上电时的电流泄漏。当使用1MHz和20MHz的晶体时,R0应该在1MΩ至10MΩ的范围。对于陶瓷共振器,R0一般用1MΩ。
共振器Q和电容C1、C2构成了谐振回路。C1、C2代表了外部电容和任何并行的寄生电容。晶体和陶瓷共振器有如图2所示的小信号等效电路:

图2 晶体等效电路
R是串联电阻,L和C分别为起动或串联电感、电容。C0是分流电容,它代表了晶体盒中共振器和寄生电容的低频并联电容量的总和。任何在OSC1和OSC2引脚之间的附加寄生电容都包括在这个值里。
晶体制造商的数据手册里详细说明了特殊晶体中R, L, C和C0的值。为了测量这些值,制造商必须给晶体提供一个信号,也就是从晶体里功率消耗的特殊电平中获得这个值。然而,在晶体启动时,通过晶体的唯一信号是由热噪声引起的,因此晶体里的功率消耗是非常低的。众所周知,当晶体内功率消耗减少到低水平时,R的有效值会增加。因此R的最大值由晶体制造者来估计。
既然R0, C1和C2的值不仅依赖于MCU的反相器特性,还依赖于外部晶体或陶瓷共振器的特性,则从各制造商的数据手册里可以得到精确的元件结构。
进一步信息,请访问http://www.freescale.com.cn/download_center/count/mcu/EMC_AN2321.asp,或参照英文原文《Designing for Board Level Electromagnetic Compatibility》编号AN2321/D,具体链接为http://www.freescale.com/files/microcontrollers/doc/app_note/AN2321.pdf。