【原创】Freescale Coldfire V1系统配置
0赞
说完了复位和中断,接下来说一下系统配置吧,系统配置选项是为了保证系统正常运行,提高单片机运行可靠性而设置的一套系统,正确理解并运用系统配置功能可以提高工作效率,达到事半功倍的效果,闲言少叙,转入正题:
1. 低电压检测系统(LVD)
MCF51AC128系列包含一个低电压检测系统,在电压变更时用来保护存储器的内容和控制 MCU 的系统状态。该系统包括上电复位 POR(Power-On Reset)电路和低电压检测 LVD电路。由系统电源管理状态和控制寄存器1 SPMSC1 (System Power Management Status andControl 1 Register)及系统电源管理状态和控制寄存器2 SPMSC2(System Power ManagementStatus and Control 2 Register)负责管理。分别参见表6和表7。
表6:系统电源管理状态和控制寄存器1(SPMSC1)
表7:系统电源管理状态和控制寄存器2(SPMSC2)
(1)上电复位操作
当MCU刚上电或电源电压跌落到加电复位准备电压VPOR以下,上电复位电路POR将产生复位操作。随着在上电过程中电源电压的不断上升,低电压检测电路(LVD)将一直使MCU处于复位状态,直到电源电压上升到高于低电压检测的低阈值VLVDL,SPMSC1寄存器中的LVDE=1,LVD使能。所以上电复位之后,系统复位状态寄存器 SRS 中的 POR 和 LVD 位均为1。
(2)LVD复位操作
如果低电压检测复位使能(LVDRE=1),那么低电压检测(LVD)电路检测到低电压情况时将产生一个复位。LVD系统使MCU一直处于复位状态,直到电源电压大于LVDV决定的电压水平。伴随着 LVD 复位或者上电复位,SRS 寄存器的 LVD 位将被置位。
(3)LVD中断操作
设置 LVDE=1,LVDIE=1,LVDRE=0,LVD电路检测到低电压将产生一个中断请求,LVDF置位。
(4)低电压报警 LVW
LVD 系统有一个低电压报警标志位(LVWF),用以告诉用户供应电压已经接近 LVD 电压,但是目前还在 LVD 电压以上。LVW 没有与此相关的中断。LVW 有两个触发电压可供选择,高的VLVWH 和低的 VLVWL。触发电压通过 SPMSC2 寄存器的 LVWV 位选择。不推荐设置 LVW触发电压等于 LVD 触发电压。
2. 系统设备识别寄存器(SDIDH、SDIDL)
系统设备识别寄存器(SDIDH、SDIDL)使得开发系统可以识别 HCS08 的 MCU 类型和修正版本号。这使得开发软件能够识别该 MCU 的具体存储块,寄存器和控制位在目标 MCU 中的位置。
系 统设 备识 别寄 存器 为两 个 8位 寄存 器, 即高 8位 寄存 器 SDIDH(System DeviceIdentification High Register) 和低8位寄存器 SDIDL(System Device IdentificationLow Register) 分别见表9和表10。
表9:系统设备识别寄存器SDIDH
3. 时钟门控
Coldfire v1 增加了时钟门控功能,这样做可以大大降低系统功耗,当一个模块不使用时,可以关断其时钟,达到降低功耗的作用。Coldfire v1 中的每个集成的具有时钟输入的片内模块都具有一个时钟门控位,设置这个位可以控制该模块的时钟是否开启。
这个由两个寄存器:SCGC1 和 SCGC2 实现,定义很简单,如下:
SCGC1 寄存器:
这两个寄存器每个位都对应一个集成的片内模块,如果相应位=1,则该模块时钟使能,否则时钟关断。其中 FLS 是指内部 flash 存储。复位后的初始值是全 1,即默认情况下,所有的模块时钟都是开启的。