STM8L中文参考手册2.docx
《STM8L中文参考手册2.docx》由会员分享,可在线阅读,更多相关《STM8L中文参考手册2.docx(118页珍藏版)》请在冰豆网上搜索。
![STM8L中文参考手册2.docx](https://file1.bdocx.com/fileroot1/2022-12/16/5a621b4a-fed7-4bfa-ae1b-be2b6cd64f48/5a621b4a-fed7-4bfa-ae1b-be2b6cd64f481.gif)
STM8L中文参考手册2
手动开关
手动开关没有自动切换为直接的但它提供给用户的切换事件时间的精确控制。
参照图20中的流程图。
1。
写使用系统时钟开关选择目标时钟源的8位值寄存器(clk_swr)。
然后swbsy位是由硬件,和目标源振荡器开始。
古老的时钟源继续驱动CPU和外设。
2。
该软件具有等到目标时钟源准备(稳定的)。
这是在clk_swcr寄存器和快捷旗由中断如果swien位设置显示。
3。
最终软件的作用是设置,在所选择的时间,在clk_swcr的赛文点寄存器来执行开关。
在手动和自动切换模式,旧的系统时钟源不会自动关闭的情况下是由其他模块(LSI混凝土可用于例如独立的看门狗驱动)。
时钟源可以关机使用在内部时钟寄存器的位(clk_ickcr)和外部时钟寄存器(clk_eckcr)。
如果时钟开关不因任何原因的工作,软件可以通过清除swbsy标志复位电流开关操作。
这将恢复clk_swr注册到其以前的内容(旧的系统时钟)。
注意:
在清理swbsy标志具有复位时钟主开关的程序,应用程序必须等到后产生新的主时钟切换请求之前有一段至少两个时钟周期。
9.7周门控时钟(PCG)
外周时钟门控(PCG)模式选择性地启用或禁用系统时钟(SYSCLK)连接到外围设备在运行或慢速模式的任何时间来优化功耗。
设备复位后,所有的外设时钟被禁用。
唯一的一点是在复位状态是默认启用pcken27因为它用于启动。
软件已被正确地写入关掉ROMBootloader执行后的时钟。
您可以启用时钟的任何外围设置在clk_pckenrx周围门控时钟寄存器的相应pcken点。
●使周围,首先使在clk_pckenr相应的pcken点
寄存器然后设置使点周围的外围控制寄存器。
●禁用适当的外围,先禁用在周边的适当位
控制寄存器,然后停止相应的时钟。
注:
蜂鸣器,RTC和液晶显示器是由不同的SYSCLK特定的时钟,使他们
继续运行,即使时钟门控的外设寄存器是断言。
9.8时钟安全系统(CSS)
9.8.1时钟安全系统对HSE
时钟安全系统(CSS)监控HSE晶体时钟源故障时安全作为系统时钟。
如果HSE时钟失败是由于损坏或断开连接的谐振器或任何其他原因,时钟控制器激活一个摊位安全恢复机制
自动切换系统时钟同分裂因子,使用过的HSE时钟故障HSI。
一旦选定,辅助时钟源保持启用,直到单片机复位。
应用程序可以通过设置在时钟安全系统注册cssen点使时钟安全系统(clk_cssr)。
出于安全原因,一旦CSS启用它不能被停用,直到下一个复位器。
必须满足以下条件,通过CSS检测HSE石英晶体的失败:
●HSE和稳定(hseon=1和hserdy=1的外部时钟寄存器
(clk_eckcr)
●CSS功能启用(cssen=1在时钟安全系统寄存器(clk_cssr))
如果HSE是当前系统时钟,当检测到故障时,CSS执行下列操作:
●HSI接通(如果它被关闭)(在内部时钟寄存器享点(clk_ickcr)
寄存器设置)。
●HSE关闭(在clk_eckcr寄存器hseon位复位)
●辅助位设置为显示,恒生指数作为系统的时钟源。
分工
系统时钟的因素没有被修改。
●所有时钟寄存器的写保护,除了系统时钟分频寄存器
(clk_ckdivr)。
应用程序还可以改变系统时钟分频器。
●CSSD位设置在clk_cssr寄存器和中断时产生的
cssdie位设置。
注:
CSSD和辅助标志只有装置复位清零。
如果HSE不是当前的系统时钟源,当检测到故障时,CSS执行下列操作:
●HSE关闭(在clk_eckcrhseon位复位)
●CSSD位设置在clk_cssr寄存器和中断时产生的
cssdie位设置。
当cssdie位设置,如果HSE时钟出现故障,CSS中断触发,
执行下去直到CSS中断允许位被清除。
因此,应用程序必须明确cssdie点clk_cssr寄存器的时钟中断服务程序(ISR)。
当HSE作为系统的时钟源,如果HSE失败之前到达
所需的稳定时间,这是没有检测到(CSSD等于零)和系统时钟
仍然是由以前的时钟。
在这种情况下,应用程序必须中止时钟
通过清除swbsy位开关控制寄存器交换程序(clk_swcr)。
9.8.2时钟安全系统在LSE
第二时钟安全系统上实现了低,中,高密度+设备监控LSE晶体时钟源故障时,伦敦证交所作为RTC时钟。
伦敦证交所的故障检测是通过大规模集成电路振荡器制作。
此功能是实现外部RTC的周边和时钟没有影响
控制寄存器。
正常工作,它需要一个伦敦的时钟频率大于LSI/4。
根据在csslse_csr寄存器的开关点的配置,该
RTC时钟可以自动切换的LSELSI在LSE故障检测。
应用程序可以使在LSE和开关的时钟安全系统LSI通过设置cssen点分别在csslse_csr寄存器的开关点。
出于安全原因,一旦在LSECSS启用,它不能被禁用,直到下一个复位的电源。
必须满足以下条件检测LSE石英晶体失败通过CSSLSE在LSE作为时钟源:
●使外设时钟设置在clk_pckenr3寄存器●的css_lse点使LSI时钟设置在clk_ickcr乳位寄存器
●配置LSE作为时钟源通过clk_crtcr寄存器。
注意:
如果在LSE的CSS是没有启用配置LSE作为时钟源,虚假的
失败将被检测到,由于这样的事实,RTC时钟丢失。
●使LSECSS设置在csslse_csr注册cssen点
注意:
在LSE使CSS,用户必须等到伦敦经济学院(LSE)已启动时间词
经过
●如果需要,使来自伦敦经济学院的时钟自动切换到LSILSE故障设置
在csslse_csr寄存器的开关点。
当检测到故障●LSE:
-CSSF位设置在csslse_csr寄存器和中断产生的如果
该cssie位设置。
如果开关位设置:
RTC时钟源切换到大规模集成电路和
switchf位设置在csslse_csr寄存器。
RTC时钟源仍然
LSI直到复位下功率。
该clk_crtcr寄存器不更新的开关和无法控制的RTC时钟直到下次上电。
注意:
只有RTC时钟由LSI周围代替LSE当switchf位设置。
如果开关位复位:
RTC时钟源是LSE的钟。
位7:
5保留,必须清除。
4位switchf:
RTC时钟开关标志
这一点是由硬件和可以消除,只有上电复位。
0:
没有时钟开关发生或无故障检测对伦敦证交所
1:
时钟切换到大规模集成电路完成
3位CSSF:
CSSLSE旗
这一点是由硬件和软件编写0清除。
0:
CSSLSE关闭或没有LSE晶体时钟干扰检测。
1:
LSE晶体时钟干扰检测。
2位cssie:
LSE时钟安全系统中断使能
该位设置和清除软件。
0:
在LSE时钟安全系统的中断禁止
1:
在LSE时钟安全系统中断使能
1位开关:
RTC时钟开关故障的情况下,LSE的LSI使
设置此位只能通过软件可以清除只有上电复位。
0:
在LSE失败了的情况下大规模集成电路时钟开关
1:
时钟切换到LSI在LSE失败案例
0位cssen:
LSE时钟安全系统使
设置此位只能通过软件可以清除只有上电复位。
0:
在伦敦证交所关闭时钟安全系统
1:
在LSE对时钟安全系统
9.9时钟和液晶时钟
RTC有两个时钟源:
●rtcclk用于RTC定时器/计数器
rtcclk可以是HSE,LSE,HSI或LSI时钟。
这种选择是通过编程rtcsel[3:
0]位时钟(RTC寄存器进行clk_crtcr)。
这些时钟可以随意划分的可编程分频器(因子1到64)的
编程的rtcdiv[2:
0]位在时钟RTC寄存器(clk_crtcr)。
当HSE或HSI时钟作为rtcclk源,这个时钟必须分有一个最大的1兆赫为rtcclk输入。
●SYSCLK用于RTC寄存器的读写访问
系统时钟是由2位寄存器2周门控时钟门控(clk_pckenr2)。
液晶显示器有两个时钟源:
●rtcclk除以2用于产生LCD帧速率
这个时钟是由3位在周围门控时钟门控寄存器2(clk_pckenr2)。
因此,即使RTC中不使用的应用,rtcclk必须配置为驱动液晶。
●lcdclk用于LCD寄存器读/写访问
这个时钟是通过设置在周围门控时钟寄存器的2位3SYSCLK派生从(clk_pckenr2)。
在主动停止模式lcdclk源rtcclk代替SYSCLK。
9.10声钟
哔时钟源可以是伦敦证交所或LSI钟。
他们可以通过编程clkbeepsel[1:
0]位在时钟嘀寄存器选择(clk_cbeepr)。
9.11可配置时钟输出能力(CCO)
可配置时钟输出(CCO)功能可以输出一个时钟在外部CCO引脚。
你可以选择4个时钟信号的时钟作为CCO:
●模糊层次综合评价
●fhsi
●福尔斯湾
●flsi
注:
50%工作周期是不能保证在所有可能的分频值
选择是由ccosel[3:
0]位可配置时钟输出寄存器控制(clk_ccor)。
时钟频率可以被预分频。
划分系数取决于ccodiv[2:
0]位。
真正的输出所选择的时钟启动所需的时钟选择和专用的I/O引脚的分频因子序列(参见“引脚说明”一章)。
该I/O必须设置在1在相应的px_cr1寄存器被设置为输入上拉或推拉式输出。
pxcr2寄存器的配置应符合最大输出速度
所需的时钟。
该ccoswbsy将表明,可配置的时钟输出系统操作。
只要ccobswy位设置,该ccosel和ccodiv位写保护。
CCO自动激活目标振荡器如果需要。
禁用时钟输出用户有明确的ccosel位。
该ccoswbsy国旗仍然保持在1至关闭完成。
对ccosel位和标志复位清除之间的时间可以相对长的,比如在案例选择的时钟输出是很慢的fcpu。
9.12个独立的系统时钟的时钟源TIM2/TIM3
在一些应用中,使用32.768kHz的时钟作为RTC时间基准,它可能是
有时间基地,工作完全独立于系统时钟有趣。
然后用户可以安排任务,而无需考虑系统时钟。
为了这个目的,伦敦证交所的时钟是内部重定向到2定时器的ETR输入(TIM2TIM3)作为额外的时钟源。
请参阅第11.5.2:
syscfg映射控制寄存器2(syscfg_rmpcr2)150页。
注:
相应的定时器的ETR分频器必须设置有至少4的比率
所选的系统时钟。
伦敦证交所的时钟必须正确接通在时钟配置寄存器定义。
9.13时钟中断
下面的中断可以由时钟控制器产生:
●系统时钟源切换事件
●时钟安全系统事件
两个单独可屏蔽中断。
位7:
3保留,必须清除。
位2:
0CKM[2:
0]:
系统时钟分频器
000/1:
系统时钟源
001/2:
系统时钟源
010/4:
系统时钟源
011/8:
系统时钟源
100/16:
系统时钟源
101/32:
系统时钟源
110/64:
系统时钟源
111/128:
系统时钟源
这些位是由软件定义的系统时钟预分频因子。
位7:
5rtcdiv[2:
0]:
时钟分频器
这些位是由软件选择的时钟分频因子。
000/1:
时钟源
001/2:
时钟源
010/4:
时钟源
011/8:
时钟源
100/16:
时钟源
101/32:
时钟源
110/64:
时钟源
111/128:
时钟源
注意:
任何用非有效的目标代码将被忽略。
这些位的内容被冻结和写保护时,rtcswbsy设置。
位4:
1rtcsel[3:
0]:
可配置的时钟源选择
这些位是由软件选择的时钟源是由RTC使用。
0000:
无时钟选择
0001:
HSI时钟作为时钟源
0010:
大规模集成电路的时钟作为时钟源
0100:
HSE时钟作为时钟源
1000:
LSE时钟作为时钟源
注意:
任何用非有效的目标代码将被忽略。
这些位的内容被冻结和写保护时,rtcswbsy设置。
0位rtcswbsy:
RTC时钟的变化在系统繁忙
这一点是由硬件任何时间RTC的一个有效的时钟需要改变。
这是复位时,RTC时钟变化过程是完整的。
7位保留,必须清除。
6位beepahalt:
哔哔时钟停止/主动停止模式
该位设置和清除软件。
0:
哔哔时钟切换期间暂停模式或主动停止模式1:
哔哔时钟保持在停止模式下运行
5位联邦旅馆工人联盟:
从停止/主动停止模式快速唤醒
该位设置和清除软件。
0:
从停止/主动停止模式禁用快速唤醒:
系统时钟停止/主动进入暂停模式前的最后一个选择的时钟源
1:
从停止/主动停止模式启用快速唤醒:
HSI/8作为系统的时钟源,唤醒后停止/主动停止
4位sahalt:
主动停止模式
该位设置和清除软件。
当它被设置,主电压调节器断电当单片机进入主动暂停模式,所以唤醒时间。
0:
MVR调节剂对主动停止模式
1:
主动停止模式下调节MVR
3位lsirdy:
低速内部振荡器的准备
该位设置和清除的硬件。
0:
大规模集成电路时钟没有准备好
1:
大规模集成电路的时钟准备
2位乳:
低速内部RC振荡器使
该位设置和清除软件。
它是由硬件每当LSI振荡器是必需的,例如:
●当切换到大规模集成电路的时钟(见clk_swr寄存器)
●LSI作为主动CCO源(见clk_ccor寄存器)
●LSI作为积极的时钟源(见clk_crtcr寄存器)
●LSI作为主动哔哔时钟源(见clk_cbeepr寄存器)●LSI测量时启用(在beep_csr1寄存器MSR点集)
它不能被清除时,LSI的选择
●作为系统的时钟源(clk_scsr寄存器)●主动CCO源
●作为时钟源的哔哔声,周而beepahalt位设置●或作为RTC活跃的时钟源。
0:
低速内部RC关闭
1:
低速内部RC
1位hsirdy:
高速内部振荡器的准备
该位设置和清除的硬件。
0:
HSI时钟没有准备好
1:
HSI时钟准备
0位享:
高速内部RC振荡器
该位设置和清除软件。
它是由硬件每当HSI振荡器是必需的,例如:
●激活时安全的振荡器的CSS
●当切换到HSI时钟(见clk_swr寄存器)
●当HSI作为主动CCO源,RTC时钟●退出停止/主动停止快速唤醒模式时
它不能被清除时,恒生指数作为系统时钟(clk_scsr寄存器),作为活性CCO活性RTC时钟源,或如果安全振荡器(辅助)启用。
0:
高速内部RC关闭
1:
高速内部RC
位7:
0pcken1[7:
0]:
外周时钟使能
这些位是通过软件来启用或禁用SYSCLK时钟到相应的外围写。
见表20
0:
SYSCLK周围残疾
1:
系统时钟周启用
7位pcken27:
外周时钟使能
这些位是通过软件来启用或禁用SYSCLK时钟到相应的外围写。
见表21
0:
SYSCLK周围残疾
1:
系统时钟周启用
6位保留
[5]:
位5:
0pcken2外设时钟使能
这些位是通过软件来启用或禁用SYSCLK时钟到相应的外围写。
见表21
0:
SYSCLK周围残疾
1:
系统时钟周启用
1。
唯一的一点是在复位状态是默认启用pcken27因为它用于启动ROM软件
已被正确地写入关掉ROMBootloader执行后的时钟。
注:
本周是在低密度,高密度的介质+和设备。
在低
密度的设备,只有5位是可用的。
[5]:
7位pcken3外设时钟使能
这些位是通过软件来启用或禁用SYSCLK时钟到相应的外围写。
见表22
0:
SYSCLK周围残疾
1:
系统时钟周启用
位7:
5ccodiv[2:
0]:
可配置时钟输出分频器
这些位是由软件选择时钟CCO分裂因子。
000:
CCO
001:
CCO除以2
010:
CCO除以4
011:
CCO除以8
100:
CCO除以16
101:
CCO除以32
110:
CCO除以64
111:
CCO除以64
注意:
任何用非有效的目标代码将被忽略。
这些位的内容被冻结和写保护时,ccoswbsy设置。
位4:
1ccosel[3:
0]:
可配置时钟输出选择。
这些位是由软件选择的CCO引脚的输出时钟源。
0000:
时钟输出禁用,对CCO引脚没有时钟输出
0001:
HSI时钟输出对CCO引脚
0010:
大规模集成电路的时钟输出对CCO引脚
0100:
对CCO引脚HSE时钟输出
1000:
LSE的时钟输出对CCO引脚
注意:
任何用非有效的目标代码将被忽略。
这些位的内容被冻结和写保护时,ccoswbsy设置。
0位ccoswbsy:
可配置时钟输出开关忙
该位设置和清除的硬件。
结果表明,选定的CCO的时钟源是
接通和稳定。
而ccoswbsy设置,该ccosel位和ccodiv位writeprotected。
ccoswbsy仍然设置到CCO时钟启用。
0:
CCO时钟不忙
1:
CCO时钟忙
位7:
6保留,必须清除。
5位lsebyp:
低速外部时钟循环
设置和复位的软件旁路振荡器。
这一点可以书面只有当外部低速振荡器被禁用。
0:
LSE振荡器不能绕过
1:
LSE振荡器旁路
4位hsebyp:
高速外部时钟循环
设置和复位的软件调试绕过振荡器与外部时钟。
这一点可以仅当外部1-16MHz振荡器禁用写。
0:
外部1-16兆赫振荡器不能绕过
1:
外部1MHz振荡器旁路与外部时钟
3位lserdy:
低速外部晶振的准备
该位设置和清除的硬件。
0:
LSE的时钟没有准备好
1:
伦敦政治经济学院(LSE时钟的时钟可以是稳定的和可用的)
注:
用户必须等待伦敦经济学院(LSE)的启动时间,得到一个稳定的频率。
2位lseon:
低速外部晶体振荡器使
该位设置和清除软件。
它可以用来打开或关闭外部晶体振荡器开关。
它是由在下列情况下,硬件:
●当切换到伦敦证交所(见clk_swr时钟寄存器)
●当证交所作为主动CCO源(见clk_ccor寄存器)●当证交所作为主动时钟源(见clk_crtcr寄存器)●当证交所作为主动声源(见clk_cbepr寄存器)不能被清除时,伦敦证交所的选择
●作为系统的时钟源(clk_scsr寄存器),●主动CCO源
●为哔周围和beepahalt位设置●或作为RTC活动时钟源的时钟源。
0:
LSE闹钟
1:
LSE的时钟
1位hserdy:
高速外部晶振的准备
该位设置和清除的硬件。
0:
HSE时钟没有准备好
1:
HSE时钟准备(HSE时钟是稳定和有效)
0位hseon:
高速外部晶体振荡器使
该位设置和清除软件。
它可以用来打开或关闭外部晶体振荡器开关。
它是由在下列情况下,硬件:
●当切换到HSE时钟(见clk_swr寄存器)
●当HSE作为主动CCO源(见clk_ccor寄存器)
●当HSE作为活跃的时钟源(见clk_crtcr寄存器)
它不能被清除时,HSE作为系统时钟(在clk_scsr寄存器表示)或作为活性CCO源或主动时钟源。
0:
HSE时钟关
1:
HSE时钟开
位7:
0CKM[7:
0]:
系统时钟状态位
这些位可以通过硬件。
他们表示当前选定的系统时钟源。
0x01:
HSI作为系统的时钟源(设定值)
0x02:
LSI作为系统的时钟源
寄存器:
HSE作为系统的时钟源
0x08:
LSE作为系统的时钟源
7位SWI[7:
0]:
系统时钟选择位
这些位是由软件选择系统的时钟源。
其内容是写保护,而时钟切换正在进行(而swbsy位设置)。
他们将重置价值(HSI)如果辅助点设置在clk_cssr寄存器。
如果选择快速停止唤醒模式(FHW点=1
clk_ickcr寄存器)然后这些位设置硬件0x01(HSI选择)时恢复从停止/主动停止模式。
0x01:
HSI作为系统的时钟源(重置价值)0x02:
LSI作为系统的时钟源
寄存器:
HSE作为系统的时钟源
0x08:
LSE作为系统的时钟源
位7:
4保留,必须清除。
3位瑞芙:
时钟切换中断标志
这一点是由硬件时,swien位设置和软件编写0清除。
其意义在于的赛文位状态。
参考图19和图20。
●手动开关(赛文=0):
0:
目标时钟源没有准备好
1:
目标时钟源准备
●在自动切换模式(赛文=1):
0:
无时钟切换事件发生
1:
时钟切换事件发生
2位swien:
时钟切换中断使能
该位设置和清除软件。
0:
时钟中断禁用开关
1:
时钟切换中断使能
1位赛文:
开关启动/停止
该位设置和清除软件。
写一个1,这一点使切换系统时钟在clk_swr寄存器定义的源。
0:
禁用时钟开关执行
1:
使时钟切换执行
0位swbsy:
开关忙
该位设置和清除的硬件。
它可通过软件复位时钟切换过程。
0:
无时钟开关持续
1:
时钟切换正在进行
位7:
5保留,必须清除。
4位cssdgon:
CSSdeglitcher系统
这一点,当设置,避免任何时钟故障在HSE产生关掉CSS机制执行。
3位符合时钟安全系统检测
这一点是由硬件和仅由装置的重置清除。
0:
CSS关闭或没有HSE时钟晶体扰动检测。
1:
HSE时钟晶体扰动检测。
2位cssdie:
时钟安全系统检测中断使能
该位设置和清除软件。
0:
时钟安全系统的中断禁止
1:
时钟安全系统中断使能
1位辅助:
辅助振荡器连接到系统时钟
该位设置和清除的硬件。
0:
辅助振荡器是关闭的。
1:
辅助振荡器(HSI)是在选定为当前系统时钟源。
0位cssen:
时钟安全系统使
这一点可以一次只写的软件。
它不能在下一个装置复位。
0:
时钟安全系统
1:
时钟安全系统
位7:
3保留
位2:
1clkbeepsel[1:
0]:
可配置的哔哔声时钟源选择。
这些位是由软件选择的时钟源是由BEEP使用。
00:
无时钟选择
01:
大规模集成电路的时钟作为时钟源的哔哔声
10:
LSE时钟作为时钟源的哔哔声
注意:
任何用非有效的目标代码将被忽略。
这些位的内容被冻结和写保护时,beepswbsy设置。
0位beepswbsy:
系统繁忙哔哔时钟变化
这一点是由硬件任何时间发出有效的时钟需要改变。
这是重置时哔时钟变化过程是完整的。
位7:
0hsical[7:
0]:
HSI校准
这个寄存器最初装有用来装饰HSI振荡器的工厂校准值。
位7:
0hsitrim[7:
0]:
HSI修整值。
为了确保最佳的HSI时钟精度,被写入该寄存器的值应在以下范围:
[(hsicalr寄存器值)12]<x<[(hsicalr寄存器值)+8]。
注意:
一旦这个寄存器的配置,它的值代替了hsicalr寄存器的值。
这些位是通过选择、改变HSI振荡器微调值中的应用。
一种硬件保护可避免错误的写访问这个寄存器,指的是clk_hsiunlck寄存器。
位7:
0hsiunlck7:
0]:
HSI解锁机构
这个寄存器是由两个硬件解锁hsitrim寄存器写保护和使用hsitrim修HSI振荡器的应用价值。
该hsitrim解锁/使程序包括:
1)两个连续的写访问这个地址,第一个和第二个0xac价值与价值0x35
2)写访问的hsitrim寄存器。
注意:
当这个程序是正确地完成hsitrim将再次锁定
7位eeready:
Flash程序存储器和数据存储器的准备
这一点表明如果Flash程序存储器和数据存储器准备0:
Flash程序存储器和数据存储器没有准备好
1:
Flash程序存储器和数据存储器的准备
6位eebusy:
Flash程序存储器和数据存储器忙
这一点表明如果Flash程序存储器和数据存储器准备忙0:
Flash程序存储器和数据存储器不忙
1:
Flash程序存储器和数据存储器忙
5位lsepd:
LSE断电
这一