本帖最后由 caijie001 于 2018-5-5 09:51 编辑
在开始学习外设使用之前,先了解一下STM8L051F3单片机系统中的基础部分:PWR(电源控制系统)、RST(复位系统)、CLK(时钟控制系统)。本节内容分为以下部分:
1、PWR介绍
STM8L051F3是STM8L系列中属于低密度(low-density)产品,供电电压范围:1.8V~3.6V,供电的接口采用同一电源(VDD&VDDA&REF+接同一电源,只有一组电源输入引脚),系统电源供给框图如下:
注:STM8L051F3没有DAC部分
STM8L051F3具有上电复位(POR)/掉电复位(PDR)的功能。STM8L051F3内部有一个POR/PDR电路,可在1.5V以下运行,当检测到输入的电源电压VDD/VDDA低于1.5V(典型值)时就会产生复位,如下图:
Brownout reset(BOR)。该功能主要用于设置一个阈值,然后检测系统电压,当系统电压上升到阈值之上或者这下降到阈值之下就会产生复位,如下图:
Programmable voltage detector(PVD)可编程电压检测器。用户可设置一个阈值,当系统电压下降到低于VPVD阈值时或上升到高于VPVD阈值时系统将产生一个PVD事件,如下图:
Internal voltage reference(VREFINT)。内部参考电压,该功能默认是一直使能的,用户也可以通过排至寄存器来禁止,电压值为1.224V(典型值)。
2、RST(复位)介绍
STM8L051F3的复位源有6个:
- 外部复位引脚NRST
- 上电复位(POR)/掉电复位(PDR)
- 独立看门狗复位(IWDG)
- 窗口看门狗复位(WWDG)
- 非法操作码复位(ILLOP)
- SWIM复位
上述复位源都作用于NRST引脚上,复位后程序固定从地址(复位产生后指向地址)0x8000上开始重新运行,系统的复位电路如下:
当一个复位产生,如果这是一个由外部复位引脚引起的复位脉冲,由拉低复位到拉高释放这期间,单片机系统在重新回到指定地址执行程序之前会设置部分硬件配置。
外部复位。外部复位一般指通过外部复位引脚NRST产生的复位,NRST引脚有输入和集成一个弱上拉电阻的开漏输出功能。一个外部复位需要至少产生300ns的低脉冲在NRST引脚上。为了使单片机有更多可用的引脚,NRST引脚也可配置为推挽输出模式(此时作用为PA1)。
内部复位。每个由内部复位源产生的复位都可以通过RST_SR寄存器查询到相应的标志位,因此可以通过标志位来判断最后一个复位源,往相应的标志位写‘1’可清零标志位(这里要注意的是,当POR复位产生后,除了POR标志位之外其他的标志位会被清零)。上电复位(POR):通常用于设备上电时复位;独立看门狗复位(IWDG):常用于防止程序死机;窗口看门狗复位(WWDG):常用于防止程序死机;SWIM复位:用于下载&仿真;非法操作码复位(ILLOP):常用于防止程序死机;内部复位使用的比较多的一般是IWDG与WWDG两种,程序设计人员通常为了防止程序意外跑飞或者死机都会增加一个看门狗功能,一旦出现情况,程序将复位重新运行。
3、CLK介绍
CLK时钟控制系统。STM8L的时钟系统非常强大并使用简单,它的目的就是既保证最优的系统性
同时节省功耗。为了降低功耗,用户可以管理时钟分配到CPU和各种外设,同时还具有无干扰、迅速的时钟切换和预分频。时钟框图如下:
注:STM8L051的Peripheral Clock enable是13 bit,没有LCD外设
STM8L051F3有4种不同的时钟源可用于驱动系统时钟:
- 16MHz内部高速(出厂已校准)RC时钟HSI
- 1~16MHz外部高速振荡器时钟HSE
- 768kHz外部低速振荡器时钟LSE
- 38kHz内部低速低功耗时钟LSI
每个时钟源皆可独立打开或关闭来节省功耗,每个时钟源都可经过可编程预分频之后再用于驱动系统时钟,系统复位后默认使用的时钟是HSI/8。所有的外设时钟都是从系统时钟(SYSCLK)中派生出来的,除了以下几个:
- BEEP(蜂鸣器)时钟,使用LSE/LSI
- RTC时钟,使用LSE/LSI/HSI/HSE
- 独立看门狗(IWDG)时钟
当系统启动后,或者是系统复位后,系统的时钟源是HSI/8(2MHz),这是因为HSI具有稳定时间较短的优势。当系统稳定后可通过程序来实现自动切换或手动切换系统时钟,把系统时钟源切换为外部时钟源HSE/LSE(一般切换为外部时钟源,也可切换为LSI,如外部时钟发生故障则自动切换回HSI/2),同时还有时钟安全系统CSS用于监视。
STM8L051F3还可以配置时钟输出CCO,可以选择4种时钟源之一在外部CCO引脚输出。STM8L还有一个外设时钟门,可以控制外设的时钟开/关。
对于低功耗的应用,可参考以下建议:
- 同等条件下(可运行范围内)供电电压越低,相对的功耗也会越低
- 看门狗的应用可以保障程序的容错率
- 有效的配置系统时钟以及关闭没有使用的外设时钟可以大大降低系统功耗
连载系列**:
STM8L051F3_0b_开发环境搭建 https://bbs.21ic.com/icview-2506990-1-1.html?fromuser=caijie001 (出处: 21ic电子技术论坛)
|