图2—1 5为AVR的主要时钟系统及其分布。这些时钟并不需要同时工作。为了降低功耗,可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟。
AVR的主时钟系统将产生以下几种用于驱动芯片各个不同模块的时钟信号,它们是:
1)CPU时钟——clkcPu
CPU时钟与操作AVR内核的子系统相连,如通用工作寄存器文件、状态寄存器以及保存堆栈指针的数据存储器。终止CPU时钟将使内核停止工作和计算。
2)I/O时钟——clkl/o
I/O时钟用于主要的I/0模块,如定时器/计数器、SPl和USART。I/O时钟还用于外部中断模块。但是有些外部中断由异步逻辑检测,因此即使I/O时钟停止了,这些中断仍然可以得到监控。此外,TWl模块的地址识别功能在没有clk。/()的情况下也是异步实现的,使得这个功能在任何睡眠模式下都可以正常工作。
3)Flash时钟——clkFlah
Flash时钟控制Flash接口的操作。此时钟通常与CPU时钟是同步的。
4)异步定时器时钟——clkAsY
异步定时器时钟允许异步定时器/计数器直接由外部3 2 kHz时钟晶体驱动,使得此定时器/计数器即使在睡眠模式下仍然可以为系统提供一个实时时钟。
5)ADC时钟——clkADC
ADC具有专门的时钟。这样可以在ADC工作的时候停止CPU和I/O时钟以降低数字电路产生的噪声,从而提高ADC转换精度。
【电子街】推荐阅读: