ATmega16简介(四)ATmega16时钟系统及其分布时钟系统及其分布Figure11为AVR的主要时钟系统及其分布
这些时钟并不需要同时工作
为了降低功耗,可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟
时钟系统详见Figure11
CPU时钟-clkCPUCPU时钟与操作AVR内核的子系统相连,如通用寄存器文件、状态寄存器及保存堆栈指针的数据存储器
终止CPU时钟将使内核停止工作和计算
I/O时钟-clkI/OI/O时钟用于主要的I/O模块,如定时器/计数器、SPI和USART
I/O时钟还用于外部中断模块
要注意的是有些外部中断由异步逻辑检测,因此即使I/O时钟停止了这些中断仍然可以得到监控
此外,USI模块的起始条件检测在没有clkI/O的情况下也是异步实现的,使得这个功能在任何睡眠模式下都可以正常工作
Flash时钟-clkFLASHFlash时钟控制Flash接口的操作
此时钟通常与CPU时钟同时挂起或激活
异步定时器时钟-clkASY异步定时器时钟允许异步定时器/计数器与LCD控制器直接由外部32kHz时钟晶体驱动
使得此定时器/计数器即使在睡眠模式下仍然可以为系统提供一个实时时钟
ADC时钟-clkADCADC具有专门的时钟
这样可以在ADC工作的时候停止CPU和I/O时钟以降低数字电路产生的噪声,从而提高ADC转换精度
ATmega16时钟源ATmega16芯片有如下几种通过Flash熔丝位进行选择的时钟源
时钟输入到AVR时钟发生器,再分配到相应的模块
不同的时钟选项将在后续部分进行介绍
当CPU自掉电模式或省电模式唤醒之后,被选择的时钟源用来为启动过程定时,保证振荡器在开始执行指令之前进入稳定状态
当CPU从复位开始工作时,还有额外的延迟时间以保证在MCU开始正常工作之前电源达到稳定电平
这个启动时间的定时由看门狗振荡器完成
看门狗溢出时间所