CKS32F107xx

独立模式单通道采集

CKS32F107xx系列产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

A/D转换器的供电和参考电压

为了提高转换的精确度,ADC使用一个独立的电源供电,其电源引脚为VDDA和VSSA,从而过滤和屏蔽来自印刷电路板上的毛刺干扰。在进行硬件设计的时候,VDDA和VSSA必须分别连接到VDD和VSS。对于100脚封装的,为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到VREF+和VREF-脚上,其中,VREF-引脚必须连接到VSSA,而VREF+的电压范围为2.4V~VDDA。对于64引脚封装的,没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源(VDDA)和地(VSSA)相联。

ADC转换时间

ADC输入时钟ADC_CLK由PCLK2 经过分频产生,最大是14M,分频因子由RCC时钟配置寄存器RCC_CFGR的位15:14 ADCPRE[1:0]设置,可以是2/4/6/8分频,注意这里没有1分频。一般我们设置PCLK2=HCLK=72M。ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和 ADC_SMPR2寄存器中的SMP[2:0]位更改。每个通道可以分别用不同的时间采样。 总转换时间如下计算:TCONV=采样时间+12.5个周期。例如当ADCCLK=14MHz,采样时间为1.5周期,则总的转换时间TCONV=1.5+12.5=14周期=1us。

ADC数据寄存器

ADC转换完成后的数据输出寄存器。根据转换组的不同,规则组的完成转换的数据输出到ADC_DR寄存器,注入组的完成转换的数据输出到ADC_JDRx寄存器。假如是使用双重模式,规则组的数据也是存放在ADC_DR寄存器。ADC规则组数据寄存器ADC_DR是一个32位的寄存器,独立模式时只使用到该寄存器低16位保存ADC1/2的规则转换数据。在双ADC模式下,高16位用于保存ADC2转换的数据,低16位用于保存ADC1转换的数据。因为ADC的精度是12位的,ADC_DR寄存器无论高16位还是低16位,存放数据的位宽都是16 位的,所以允许选择数据对齐方式。由ADC_CR2寄存器的ALIGN位设置数据对齐方式,可选择:右对齐或者左对齐。如果使用多通道转换,那么这些通道的数据 也会存放在ADC_DR里面,按照规则组的顺序,上一个通道转换的数据,会被下一个通道转换的数据覆盖掉,所以当通道转换完成后要及时把数据取走。比较常用的方法是使用DMA模式。当规则组的通道转换结束时,就会产生DMA请求,这样就可以及时把转换的数据搬运到用户指定的目的地址存放。注意:只有ADC1可以产生DAM请求,而由ADC2转换的数据可以通过双ADC模式,利用ADC1的 DMA功能传输。

ADC中断

ADC中断可分为三种:规则组转换结束中断、注入组转换结束中断、设置了模拟看门狗状态位中断。它们都有独立的中断使能位,分别由ADC_CR 寄存器的EOCIE、JEOCIE、AWDIE位设置,对应的标志位分别是EOC、JEOC、AWD。

ADC初始化结构体详解

ADC_InitTypeDef结构体用于设置ADC的工作参数,并由标准库函数ADC_Init()调用这些设定参数进入设置外设相应的寄存器,达到配置外设工作环境的目的。其具体的定义如下:

typedef struct
{  
    uint32_t ADC_Mode;                       
    FunctionalState ADC_ScanConvMode;       
    FunctionalState ADC_ContinuousConvMode;  
    uint32_t ADC_ExternalTrigConv;            
    uint32_t ADC_DataAlign;                  
    uint8_t ADC_NbrOfChannel;              
}ADC_InitTypeDef;

ADC_Mode:配置ADC的模式,当使用一个ADC时是独立模式,使用两个ADC 时是双模式,在双模式下还有很多细分模式可选,具体配置ADC_CR1:DUALMOD位。

ScanConvMode:可选参数为ENABLE和DISABLE,配置是否使用扫描。如果是单通道AD转换使用DISABLE,如果是多通道AD转换使用ENABLE,具体配置 ADC_CR1:SCAN位。

ADC_ContinuousConvMode:可选参数为 ENABLE 和 DISABLE,配置是启动自动连续转换还是单次转换。使用ENABLE配置为使能自动连续转换;使用 DISABLE 配置为单次转换,转换一次后停止需要手动控制才重新启动转换,具体配置 ADC_CR2:CON位。

ADC_ExternalTrigConv:外部触发选择,ADC有很多外部触发条件,可根据项目需求配置触发来源。实际上,我们一般使用软件自动触发。

ADC_DataAlign:转换结果数据对齐模式,可选右对齐ADC_DataAlign_Right 或者左对齐ADC_DataAlign_Left。

ADC_NbrOfChannel:AD转换通道数目,根据实际设置即可。具体的通道数和通道的转换顺序是配置规则序列或注入序列寄存器。

CKS32F103XX ADC单通道采集实验

本实验使用规则组单通道的单次转换模式,并且通过软件触发,即由ADC_CR2寄存器的SWSTART位启动。下面讲解其详细设置步骤:

1) 开启PA口时钟和ADC1时钟,设置PA1为模拟输入。

CKS32F107xx的ADC通道1在PA1上,所以,我们先要使能PORTA的时钟和ADC1时钟,然后设置PA1为模拟输入。使能GPIOA和ADC时钟用RCC_APB2PeriphClockCmd函数,设置 PA1的输入方式,使用GPIO_Init函数即可。

2) 复位 ADC1,同时设置 ADC1 分频因子。 

开启ADC1时钟之后,我们要复位ADC1,将ADC1的全部寄存器重设为缺省值之后我们 就可以通过RCC_CFGR设置ADC1的分频因子。分频因子要确保ADC1的时钟(ADCCLK)不要超过14Mhz。这个我们设置分频因子位6,时钟为72/6=12MHz,库函数的实现方法是: 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

ADC 时钟复位的方法是:

ADC_DeInit(ADC1);

3) 初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。 

在设置完分频因子之后,我们就可以开始 ADC1 的模式配置了,设置单次转换模式、触发方式选择、数据对齐方式等都在这一步实现。同时,我们还要设置ADC1规则序列的相关信息,我们这里只有一个通道,并且是单次转换的,所以设置规则序列中通道数为1。这些在库函数中是通过函数ADC_Init实现的。

4) 使能ADC并校准。 

在设置完了以上信息后,我们就使能AD转换器,执行复位校准和AD校准,注意这两步 是必须的!不校准将导致结果很不准确。 使能指定ADC的方法是:

ADC_Cmd(ADC1, ENABLE);

执行复位校准的方法是:

ADC_ResetCalibration(ADC1);

执行ADC校准的方法是:

ADC_StartCalibration(ADC1);

每次进行校准之后要等待校准结束。这里是通过获取校准状态来判断是否校准是否结束。等待复位校准结束函数为:

while(ADC_GetResetCalibrationStatus(ADC1));

等待AD校准结束函数为:

while(ADC_GetCalibrationStatus(ADC1));

5)读取ADC值。 

在上面的校准完成之后,ADC就算准备好了。接下来我们要做的就是设置规则序列1里面的通道,采样顺序,以及通道的采样周期,然后启动ADC转换。在转换结束后,读取ADC 转 换结果值就是了。我们这里是规则序列中的第1个转换,同时采样周期为239.5,所以设置为:

ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );

软件开启ADC转换的方法是:

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

开启转换之后,就可以获取转换ADC转换结果数据,方法是:

ADC_GetConversionValue(ADC1);

同时在AD转换中,我们还要根据状态寄存器的标志位来获取AD转换的各个状态信息。库函数获取AD转换的状态信息的函数是:

FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);

比如我们要判断ADC1d的转换是否结束,方法是: 

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));

通过以上几个步骤的设置,我们就能正常的使用CKS32F107xx的ADC1来执行AD转换操作了。

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 12

本章节首先将以MCU开发人员常接触到的“中断”、“事件”和“中断事件”三个名词的概念展开,然后去阐述彼此的主要区别,最后借助MCU的GPIO外部中断/事件控制器(EXTI)的传输路径来加深对上述概念的理解。

概念简介

中断    

为了具化下述概念,特引用MCU运行过程中外设模块的触发和反馈来解释说明。

MCU执行程序时,由于发生了某种特定的事件(外部或内部),引起MCU暂时中断正在运行的程序,转去执行与该事件相关的中断服务程序,该事件处理完后又返回被中断的程序继续执行,这一过程称之为中断或中断响应。

事件

事件是指CKS32F107xx系统中发生的一些特定的状态变化,譬如:外部输入电平变化、定时器溢出、FIFO非空、串口接收/发送数据、AD转换完成、外设使能、初始化等。而事件与中断事件是包含关系,即事件可分为中断事件或非中断事件。比如AD转换并不会导致中断发生,因而归类为非中断事件,但AD转换结束就是一个中断事件。

中断事件

中断事件,顾名思义是指能导致中断发生的事件。值得注意的是中断事件最终是否导致后续中断的正常触发,还需要确保是否开启了该中断事件的中断使能。

中断与事件的主要区别

(1)中断与中断事件属于前后关联的因果关系,二者在时序和行为上不一样,即中断事件是中断的触发源;

(2)事件与中断事件为包含关系;

(3)中断有可能被更高优先级的中断屏蔽,但事件不会;

(4)中断一定要有中断服务函数,但是事件没有;

(5)中断一定要MCU的介入,但事件执行操作,可以不需要MCU干预;

(6)中断是软件级的操作,而事件是硬件级。

外部中断/事件控制器(EXTI)

对于互联型产品CKS32F107xx系列的EXTI,它支持20个软件的事件/中断请求,且每个中断/事件都有独立的触发和屏蔽,每个中断线都有专用的状态位。下图为GPIO的EXTI的框图,同时也是外部中断线或外部事件线的示意图。

1.png

图1 中断/事件线示意图

从上文可知晓,一个能够触发中断的事件在触发配置时就出现两种可能,即允许产生中断或禁止产生中断,这随之引出事件模式和中断模式两个概念。从上图不难看出,每根信号线上划有一条斜线,并标注数字20,表明这样的线路共有20条,图中的蓝色虚线箭头,标出了中断模式下的传输路径,而图中的绿色箭头则标识了事件模式下的传输路径,下文一一说明。

1)中断模式下的传输路径(①-②-③-④-⑤)

①输入线:EXTI控制器具有20个中断/事件输入线,这些输入线可以连接到任意一个 GPIO或一些外设的事件,当这些输入线上的信号发生电平变化时,EXTI控制器会检测到并触发中断或事件。

②边沿检测电路:EXTI控制器允许用户选择触发方式,可通过设置上升沿、下降沿触发选择寄存器中相应的位来控制信号的触发。

③或门电路:一端输入信号线由边沿检测电路提供,另一端由软件中断事件寄存器(可以使用软件来启动中断/事件线)提供,此处软件可以优先于外部信号请求一个中断或事件,即当软件中断事件寄存器的对应位为”1”时,不管外部信号如何,则输出有效信号1,并且输出的信号会被保存到请求挂起寄存器内,当电路输出为1就会把请求挂起寄存器对应位置1。

④与门电路:一端由或门电路的输出提供,另一端由中断屏蔽寄存器提供,只有当两者都为有效信号1,才会输出有效信号1,即向NVIC中断控制器发出一个中断请求。

⑤将请求挂起寄存器的内容输入到NVIC中,从而实现对中断事件的控制。

2)事件模式下的传输路径(①-②-③-⑥-⑦-⑧)

⑥与门电路:此处与门电路与标号④与门电路类似,用于引入事件屏蔽寄存器的控制,只有两个均输入有效电平1时,才会输出有效信号1。

⑦脉冲发生器:当标号⑥与门电路输出有效信号1时,脉冲发生器会输出一个脉冲信号。

⑧脉冲信号:由脉冲发生器产生,通常用于触发定时器、ADC等。

综上所述,从外部激励源来看,无论中断模式还是事件模式的传输路径在标识①~③是一致的,主要区别是中断需要MCU介入,且同时需要有中断处理函数的参与才会形成中断后的结果,但事件是通过脉冲发生器发出的脉冲信号,进而由硬件自行完成该事件并产生响应的结果。所以,从节省MCU开销,提高系统运行效率来看,事件模式不失为一种提高MCU处理能力的快速响应机制。

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 9

上一章节对CKS32F107xx系列时钟做了整体介绍,本章节以使用HSI内部高速时钟为例对时钟具体配置方法进行讲解。

1.png

图1 SYSCLK生成流程

2.png

图2 APB频率生成流程

根据图1,产生SYSCLK时,内部HSI时钟经过二分频,输入PLLSCR模块,再通过PLLM倍频系数产生PLLCLK,即SYSCLK。

由图2可知,SYSCLK通过AHB预分频产生APB即HCLK等时钟系统。

配置寄存器

CKS32F107xx系列时钟配置寄存器     

在使用HSI对系统时钟进行配置时,有两个较为重要的RCC寄存器,分别为RCC_CR、RCC_CFGR:

3.png

图3 RCC_CR寄存器

在RCC_CR寄存器中,我们需要关注如下几位:

4.png

图4 HSI启动及状态寄存器

5.png

图5 PLL启动及状态寄存器

6.png

图6 RCC_CFGR寄存器

在RCC_CFGR寄存器中,我们需要关注如下几位:

7.png

图7 PLL倍频系数位

8.png

图8 PLL时钟源位

9.png

图9 APB2预分频位

10.png

图10 其他RCC_CFGR控制位

在对系统时钟进行初始化过程中,一般也会对闪存访问时间进行配置,如下为CKS32F107xx系列闪存访问时间与系统时钟的对应关系:

11.png

图11 闪存访问时间

CKS32F107xx系列时钟配置代码

依据上一章节中对寄存器的基本介绍,即可在函数SetSysClock()中对程序时钟进行相关配置,本文以HSI为时钟源,进行36MHz SYSCLK/HCLK/APB1/APB2配置。

/* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    

/* Enable HSI */

RCC->CR |= ((uint32_t)RCC_CR_HSION);


/* Wait till HSI is ready and if Time out is reached exit */


while((RCC->CR & RCC_CR_HSIRDY) == 0){}


/* Enable Prefetch Buffer */

FLASH->ACR |= FLASH_ACR_PRFTBE;


/* Flash 1 wait state */

FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);

FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1;    


/*AHB Prescaler set*/

RCC->CFGR |= (uint32_t)RCC_SYSCLK_Div1;

/* HCLK = SYSCLK */

RCC->CFGR |=(uint32_t)RCC_CFGR_HPRE_DIV1;

/* PCLK2 = HCLK */

RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;

/* PCLK1 = HCLK */

RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;


/* PLL configuration: PLLCLK = HSI / 2 * 9 = 36 MHz */

RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLMULL9);    


/* Enable PLL */

RCC->CR |= RCC_CR_PLLON;

/* Wait till PLL is ready */

while((RCC->CR & RCC_CR_PLLRDY) == 0){}


/* Select PLL as system clock source */

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));

RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    


/* Wait till PLL is used as system clock source */

while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08){}

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 8

作为MCU运行的基础,时钟是MCU各个模块工作时序的最小时间单位,推动MCU的各指令执行,是MCU选型的一个重要指标。CKS32F107xx系列MCU具有众多的外设,但并非所有的外设均需要系统时钟的高频率,并且高时钟频率将导致功耗增加、抗电磁干扰能力变弱,因此,CKS32F107xx系列MCU内部具备多个时钟源。本文将对CKS32F107xx系列时钟组成进行介绍,以帮助让用户对系统时钟了解。

CKS32F107系列时钟介绍

CKS32F107系列时钟树

在CKS32F107xx系列MCU中,有HSI、HSE、LSI、LSE、PLL五个重要的时钟源。从时钟频率来分可以分为高速时钟源(HSI、HSE、PLL)和低速时钟源(LSI、LSE);从来源可分为外部时钟源(HSE、LSE)和内部时钟源(HSI、LSI、PLL);从功能应用配置划分可分为系统时钟(SYSCLK)、时钟安全系统(CSS)、独立看门狗时钟、RTC时钟。下图为CKS32F107xx系列MCU时钟树时钟树:

1.png

图1 CKS32F107系列MCU时钟树

HSE时钟     

高速外部时钟信号(HSE)由以下两种时钟源产生:

●HSE外部晶体/陶瓷谐振器

●HSE用户外部时钟     

为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。

2.png

图2 HSE时钟源

外部晶体/陶瓷谐振器(HSE晶振):

4~16Mz外部振荡器可为系统提供更为精确的时钟。相关的硬件配置可参考图1,在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。直到这该位被硬件置’1’,才能使用HSECLK。如果在时钟中断寄存器RCC_CIR中允许产生中断,将会产生相应中断。

HSE晶振可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。

HSE用户外部时钟(HSE旁路):

在这个模式里,必须提供外部时钟。它的频率最高可达25MHz。用户可通过设置在时钟控制寄存器中的HSEBYP和HSEON位来选择这一模式。外部时钟信号(50%占空比的方波、正弦波或三角波)必须连到OSC_IN引脚,同时保证OSC_OUT引脚悬空。见图1。

HSI时钟

HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟,也可在不分频或2分频后作为PLL输入源。HIS RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。但是,即使在校准之后它的时钟频率精度仍较HSE晶振差。

PLL

主PLL以下述时钟源之一为输入,产生倍频的输出:

●HSI时钟

●HSI的二分频时钟

●HSE通过一个可配置分频器提供的时钟

●PLL2通过一个可配置分频器提供的时钟

PLL2和PLL3由HSE通过一个可配置的分频器提供时钟。必须在使能每个PLL之前完成PLL的配置(选择时钟源、预分频系数和倍频系数等),同时应该在它们的输入时钟稳定(就绪位)后才能使能。一旦使能了PLL,这些参数将不能再被改变。当改变主PLL的输入时钟源时,必须在选中了新的时钟源(通过时钟配置寄存器(RCC_CFGR)的PLLSRC位)之后才能关闭原来的时钟源。时钟中断寄存器(RCC_CIR),可以在PLL就绪时产生一个中断。

LSE时钟

LSE晶振是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。

(1)外部晶体/陶瓷谐振器(LSE晶振)

LSE晶振通过在备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。在备份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶体振荡是否稳定。在启动阶段,直到这个位被硬件置’1’后,LSE时钟信号才能被使用。如果在时钟中断寄存器里被允许,可产生中断请求。

(2)外部时钟源(LSE旁路)

在这个模式里必须提供一个32.768kHz频率的外部时钟源。可以通过设置在备份域控制寄存器(RCC_BDCR)里的LSEBYP和LSEON位来选择这个模式。具有50%占空比的外部时钟信号(方波、正弦波或三角波)必须连到OSC32_IN引脚,同时保证OSC32_OUT引脚悬空。

LSI时钟

LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和RTC提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。进一步信息请参考数据手册中有关电气特性部分。

LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。在启动阶段,直到这个位被硬件设置为’1’后,该时钟才能使用。如果在时钟中断寄存器(RCC_CIR)里被允许,将产生LSI中断请求。

系统时钟(SYSCLK)选择

系统复位后,HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。当系统时钟从一个时钟源到另一个时钟源切换时,只有当目标时钟源准备就绪(经过启动稳定阶段的延迟或PLL稳定),才能进行切换,否则,系统时钟的切换不允许发生。在时钟控制寄存器(RCC_CR)的状态位会指示哪个时钟已经准备好了,哪个时钟目前被用作系统时钟。

时钟安全系统(CSS)

时钟安全系统可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动稳定后被使能,并在HSE时钟关闭后关闭。

如果HSE时钟发生故障,HSE振荡器被自动关闭,时钟失效事件将被送到高级定时器(TIM1的刹车输入端,并产生时钟安全中断CSSI,允许软件完成营救操作。此CSSI中断连接到内核的NMI中断(不可屏蔽中断)。

需要强调的是一旦CSS被激活,并且HSE时钟出现故障,CSS中断就产生,并且NMI(不可屏蔽的中断)也自动产生。NMI将被不断执行,直到CSS中断挂起位被清除。因此,在NMI(不可屏蔽的中断)的处理程序中必须通过设置时钟中断寄存器(RCC_CIR)里的CSSC位来清除CSS中断。

如果HSE振荡器被直接或间接地作为系统时钟,(间接的意思是:它被作为PLL输入时钟,并且PLL时钟被作为系统时钟),时钟故障将导致系统时钟自动切换到HSI振荡器,同时外部HSE振荡器被关闭。在时钟失效时,如果HSE振荡器时钟(被分频或未被分频)是用作系统时钟的PLL的输入时钟,PLL也将被关闭。

独立看门狗时钟

如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关闭。在LSI振荡器稳定后,时钟供应给IWDG模块。

RTC时钟

通过设置备份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK时钟源可以由HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。

LSE时钟在备份域里,但HSE和LSI时钟不在备份域。因此:

(1)如果LSE被选为RTC时钟:只要VBAT维持供电,即使VDD供电被切断,RTC仍能工作。

(2)如果LSI被选为RTC时钟:如果VDD供电被切断,RTC不能工作。

(3)如果HSE时钟128分频后作为RTC时钟:如果VDD供电被切断或内部电压调压器被关闭(1.5V域的供电被切断),则RTC状态不确定。

时钟输出(MCO)

微控制器允许输出时钟信号到外部MCO引脚。相应的GPIO端口寄存器必须被配置为相应功能。以下8个时钟信号可被选作MCO时钟:

●SYSCLK

●HSI

●HSE

●PLL时钟的二分频

●PLL2时钟

●PLL3时钟的二分频

●XT13-25MHz外部晶振时钟(用于以太网)

●PLL3时钟(用于以太网)

时钟配置寄存器(RCC_CFGR)中的MCO[3:0]位控制。

以上就是CKS32F107xx系列MCU的介绍,在实际应用中,可根据使用外设情况,进行相关配置。

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 15
订阅 RSS - CKS32F107xx