烦请版主帮我梳理一下概念,谢谢! 最近在调RTC,于是把RCC、RTC、BKP、PWR都看了一遍,有些概念仍有些模糊,没找到确定的答案,请版主帮忙看一下。 (1)由VBAT供电的备份区里面有: ①LSE晶体 ②后备寄存器(BKP): 这一节介绍时原话是“备份寄存器是42个16位的寄存器”,也就是BKP_DRx。那么请问BKP_RTCCR、BKP_CR、BKP_CRS 这三个寄存器算不算备份寄存器(BKP),是否处于备份区中,是不是只有备份区复位才对它们有影响,想要访问的话也要将 DBP置1才行? ③BDCR ④RTC: 这里面说的RTC是不是应该指RTC核(也就是手册上说的RTC core),对RTC的理解是分两部分,APB1接口不在备份区 内,不由VBAT供电,与其相关的寄存器RTC_CR也不受备份区保护,可以随时编辑,系统复位即可将这个寄存器复位。而另 外一部分RTC核则处于备份区内,PRL、DIV、ALR三个寄存器只能由备份区复位才能对其复位? |
RE:RTC+BKP
2、RTC使用备用电池工作,使用的是RCC_RTCCLKSource_LSE这个时钟源,如果VBAT不供电,复位以后数据将会丢失。
回复:RTC+BKP
1、BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器,如果有备用电池,这几个值复位以后不会改变
2、RTC使用备用电池工作,使用的是RCC_RTCCLKSource_LSE这个时钟源,如果VBAT不供电,复位以后数据将会丢失。
版主的第一个问题我明白了,第二个问题我主要是想问RTC分成的两部分(APB1接口、RTC核)是不是一部分处在备份区内,另一部分在备份区外。从手册中的图154-RTC简图看,RTC核这一部分是待机时维持供电,APB1接口(包括RTC_CR)这一部分是不供电的,是不是RTC核处于备份区内,APB1接口(以及其包含的寄存器RTC_CR)在备份区之外。
回复:RTC+BKP
1、BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器,如果有备用电池,这几个值复位以后不会改变
2、RTC使用备用电池工作,使用的是RCC_RTCCLKSource_LSE这个时钟源,如果VBAT不供电,复位以后数据将会丢失。
还有一个问题,BKP有一个侵入检测功能,按照您帮我解决得第一个问题(BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器)。在侵入检测的介绍中,原文是“侵入事件将所有数据备份寄存器内容清楚”,那这样说的话,BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器的,他们也应该被清除。问题是那样的话那些侵入事件标志什么的还有什么意义,一发生侵入事件就被擦除了啊。
楼主辛苦了,我看东西喜欢刨根问题,有点解释不通的总觉得有点事儿,把基本概念弄明白了用起来也踏实。麻烦您多费心给解答一下,谢谢了!
回复:RTC+BKP
版主的第一个问题我明白了,第二个问题我主要是想问RTC分成的两部分(APB1接口、RTC核)是不是一部分处在备份区内,另一部分在备份区外。从手册中的图154-RTC简图看,RTC核这一部分是待机时维持供电,APB1接口(包括RTC_CR)这一部分是不供电的,是不是RTC核处于备份区内,APB1接口(以及其包含的寄存器RTC_CR)在备份区之外
复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。
● 通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟
● 电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。
上面描述很清楚APB1的功能,RTC内核是用来控制计数器、中断等功能,而APB1只是提供一个时钟源。这个类似于GPIO或者其他的模块。
回复:RTC+BKP
还有一个问题,BKP有一个侵入检测功能,按照您帮我解决得第一个问题(BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器)。在侵入检测的介绍中,原文是“侵入事件将所有数据备份寄存器内容清楚”,那这样说的话,BKP_RTCCR、BKP_CR、BKP_CRS是属于备份寄存器的,他们也应该被清除。问题是那样的话那些侵入事件标志什么的还有什么意义,一发生侵入事件就被擦除了啊。
楼主辛苦了,我看东西喜欢刨根问题,有点解释不通的总觉得有点事儿,把基本概念弄明白了用起来也踏实。麻烦您多费心给解答一下,谢谢了!
TAMPER-RTC(PC13)这个引脚来决定的,如果这个引脚的电平发生变化,入侵的意思就是非正常访问,那么就需要自动保护,这个时候内容就自动清除。就像有些MCU的FLASH保护一样,如果开启保护任何外部的访问都会被拒绝。只有擦除以后才能烧写新的代码。