版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CKS32F103微控制器教学课件04电源和时钟控制CKS32F103基于高性能ARM®Cortex®-M332位RISC内核,最高工作频率可达72MHz。其高度集成的片上系统架构由六大核心模块协同构建:内核(Core)、存储器(Memory)、总线矩阵(BusMatrix)、电源管理(PMU)、时钟与复位(RCC)、外设(Peripherals)01电源控制与管理(PWR)稳定可靠的电源是MCU正常工作的基础,同时,高效的电源管理也是实现低功耗设计的关键。保持电源电压在规定范围内,否则逻辑电路可能出错,如电压过低可能导致数据损坏或系统死机等。其次要进行功耗管理,不同应用场景下的功耗需求不同,MCU需要根据应用情况调整功耗节省能源。详细了解CKS32F103的电源控制与管理模块;深入解析电源系统、电压监控机制及相关关键寄存器的配置与应用场景。01电源控制与管理(PWR)CKS32F103配有专门的电源管理模块,用于监控电源并管理设备的运行模式,确保系统正常运行的同时尽量降低功耗。电源管理模块的功能类别功能描述工作模式运行模式Run正常全速运行,所有外设和内核都工作睡眠模式Sleep内核停止工作,部分外设暂停工作,低功耗,电流约1.2~3mA停止模式Stop主时钟和PLL停止,SRAM/寄存器数据保持,超低功耗,电流约20~50μA待机模式Standby时钟和外设关闭,仅保留唤醒逻辑和备份域,最低功耗,电流约2~5μA电压监控可编程电压监测器PVD检测VDD电压是否低于设定阈值,可触发中断或复位,防止欠压运行低功耗唤醒WKUP引脚唤醒待机模式下可通过专用唤醒引脚WKUP唤醒系统RTC唤醒通过实时时钟中断唤醒低功耗模式外设事件唤醒某些外设事件如USART、EXTI等,可唤醒MCU备份域控制备份寄存器保持停止/待机模式下保持关键数据如系统参数、时间戳等RTC供电切换RTC可在主电源掉电后继续由VBAT供电功耗优化电压调节器控制停止模式可选择是否保持电压调节器工作,以平衡功耗和唤醒速度关闭未使用外设通过RCC寄存器关掉外设时钟,减少动态功耗01电源控制与管理(PWR)VDD供电区域主电源,为GPIO电路、外设、待机电路和电压调节器提供电源。VDD和VSS为主电源引脚,与外部供电电源或电池相连,VDD的电压范围为2.0V~3.6V。VDD电源的稳定性对芯片整体的工作状态至关重要,供电不稳定或超出推荐范围时,可能导致数字电路运行异常,甚至影响整个芯片的可靠性。应用中在VDD和VSS之间连接适当的去耦电容以减少电源噪声和电压波动,如0.1µF和10µF的电容。VDD为USART、I²C、SPI、Timer、GPIO等片上外设提供电平驱动电路的电源,因此,VDD电压决定了这些外设引脚的逻辑高低电平标准。01电源控制与管理(PWR)VDD供电、VDDA供电、1.5V供电和后备供电四个区域。VDDA供电区域VDDA供电区域为模拟电路部分提供稳定的供电电压和参考电压,包括ADC转换器、内部温度传感器、复位模块以及锁相环PLL等。VDDA供电区域与数字电源VDD区域独立,以减少数字电路开关噪声对模拟电路的干扰,确保更高精度的模拟信号处理。VDDA、VSSA、VREF+和VREF-四个对外连接的电源引脚。VDDA和VSSA是模拟电源正和地,VDDA须大于等于2.4V。为确保模拟电路区域电源稳定,VDDA一般通过一个LC滤波网络与VDD连接,常用10µH电感和0.1µF/1µF电容,以隔离数字电源的高频噪声。
VSSA和VSS在模拟地与数字地交汇处单点连接,避免数字地噪声流入模拟地。VDDA和VSSA必须在芯片外面通过LC滤波网络或者直接与VDD和VSS连接,以避免电源电压不一致导致电路不稳定01电源控制与管理(PWR)VDDA供电区域VREF+和VREF-是ADC的参考电压引脚。应用中一般将VREF+和VREF-分别与VDDA和VSSA连接,但这样连接时VDDA的纹波、噪声、温漂会直接影响ADC精度。为提高ADC的转换精度并获得较高的转换分辨率,可使用独立的模拟电源为VREF+和VREF-供电,并通过滤波与屏蔽措施减少来自PCB印刷电路板上的毛刺干扰。VREF+的允许电压范围为2.4V~VDDA。稳定的外部参考电压可显著降低转换误差和噪声,提高低输入模拟信号下的转换精度。01电源控制与管理(PWR)1.5V供电区域MCU的核心逻辑电路区域。VDD供电区域中的电压调节器将VDD转换为1.5V,为内核Cortex-M3、SRAM、Flash及片上数字外设的高速逻辑电路提供低电压工作环境。根据功耗需求电压调节器可工作在运行、停止和待机3种模式。电压调节器的工作模式可通过电源控制寄存器PWR_CR的位LPDS设置。芯片复位后电压调节器默认为运行模式。01电源控制与管理(PWR)电压调节器3种工作模式:运行模式:可工作在电源的运行和睡眠模式。电压调节器以正常功耗模式提供1.5V电源给内核、SRAM和数字逻辑电路等。停止模式:可工作在电源低功耗的停止模式。调节器进入低功耗状态,降低输出驱动能力,减少电流消耗,以低功耗模式提供1.5V电源,以保存寄存器和SRAM的内容。待机模式:工作在低功耗的待机模式,电压调节器停止供电。除了由VBAT引脚的备用电源供电的备用电路和备份域外,寄存器和SRAM的内容全部丢失。01电源控制与管理(PWR)后备供电区域工作电压:1.8V~3.6V。为LSE低速外部时钟、实时时钟RTC、备份寄存器BKP及备份SRAM等供电该区域可通过VBAT引脚或VDD获取供电电源。VBAT引脚可外接后备电源,VDD掉电时后备供电区域能持续运行,以便保留关键数据。VDD供电正常时,后备供电区域的控制开关与VDD接通,由VDD提供电源正常工作01电源控制与管理(PWR)后备供电区域当VDD掉电后,低电压监测器监测到掉电状态后将控制开关切换至VBAT引脚,如果VBAT引脚外接了备份电源,则为后备供电区域提供电源,以保证及时备份数据,保存备份寄存器的内容和维持RTC的功能。备份电源一般使用钮扣电池、超级电容或可充电电池等,将备份电源的正和负与VBAT和VSS引脚相连。VDD掉电时硬件自动切换到备份电源供电。若应用中没有使用外部备份电源,建议将VBAT连接到VDD引脚。01电源控制与管理(PWR)02复位与时钟控制器(RCC)时钟:由时钟源提供的固定频率的周期性电信号,通常为方波,如8MHz、72MHz等。MCU的运行需要依赖时钟,时钟是MCU内部所有操作的节拍器,时钟为系统提供以下关键功能:
同步控制:通过周期性的高低电平脉冲,确保CPU、外设、总线等模块按统一节拍有序、协同工作。如CPU在时钟上升沿执行指令,外设在下降沿读取数据等。
速度基准:时钟频率直接决定指令执行速度和系统响应时间。如执行时间≈指令周期数×时钟周期。
时序精度:稳定的时钟源能保证定时器、通信接口等外设的时序精度。02复位与时钟控制器RCC:是CKS32F103中的核心外设模块,承担着MCU的时钟系统管理与复位控制功能,通过RCC不仅能够灵活选择时钟源、配置系统主频,还能精确分配外设时钟,并对各类复位事件进行集中管理。RCC是时钟管理的硬件入口,而寄存器则是时钟管理的软件入口。所有的时钟选择、分频和开关,最终都需要通过RCC寄存器来实现。掌握RCC寄存器的配置,不仅是进行MCU底层开发的必备前提,也是实现系统优化与性能调优的关键环节。复位与时钟控制器(RCC)时钟是MCU的脉搏。CKS32F103提供了丰富的时钟源选项,以满足不同性能和功耗需求。时钟源:由RC电路或晶体振荡器与逻辑门组成正反馈振荡电路,负责提供频率稳定且电平匹配的脉冲信号。有源晶振和无源晶振03时钟管理——时钟源02复位与时钟控制器(RCC)-
时钟管理高速外部时钟源HSE:频率范围为4MHz~16MHz,部分型号可支持至25MHz,需参考具体芯片数据手册。为CKS32F103MCU提供高精度、高稳定性的时钟信号,可选择直接作为系统时钟使用,也可经2分频后作为PLL锁相环的输入时钟。HSE时钟源来自外部晶振或外部时钟信号,因此需要通过时钟输入引脚OSC_IN和时钟输出引脚OSC_OUT外接相应器件,可连接无源晶体或陶瓷谐振器和有源时钟源03时钟管理——时钟源高速外部时钟源HSE:无源晶体或陶瓷谐振器时需连接在OSC_IN和OSC_OUT引脚,晶振频率需在4~16MHz范围内,且需搭配典型值为18~22pF的负载电容有源时钟源可以是有源振荡器或外部时钟信号。连接有源时钟源时硬件上将其信号直接接入OSC_IN引脚,OSC_OUT引脚悬空03时钟管理——时钟源高速外部时钟源HSE:无源晶体或陶瓷谐振器时需连接在OSC_IN和OSC_OUT引脚,晶振频率需在4~16MHz范围内,且需搭配典型值为18~22pF的负载电容03时钟管理——时钟源高速外部时钟源HSE:有源时钟源可以是有源振荡器或外部时钟信号。连接有源时钟源时硬件上将有源时钟的输出信号直接接入OSC_IN引脚,OSC_OUT引脚悬空03时钟管理——时钟源高速外部时钟源HSE:为减少时钟信号失真、缩短启动稳定时间,PCB板设计时晶振与负载电容需尽可能靠近OSC_IN和OSC_OUT引脚,布线应短且直,避免与高速信号线、电源噪声源并行,以降低干扰对时钟源的影响。03时钟管理——时钟源高速外部时钟源HSE:HSE时钟源的启动和关闭由RCC_CR的HSEON位控制,当HSE做为系统时钟时不能不能关闭外部时钟。当HSE启动后,硬件会自动检测其是否稳定。若稳定输出,RCC_CR的HSERDY位会被硬件置1,若未稳定如晶振未起振、外部时钟异常等,该位保持为0。应用中必须等待HSERDY=1即HSE时钟稳定后,才能基于此时钟进行后续操作,如配置PLL、切换系统时钟等。若程序启用了时钟安全系统CSS,即置位了RCC_CR的使能位CSSON时,当HSE时钟失效或停止振荡时,系统会自动切换到备用时钟源HSI,保证MCU持续运行。时钟安全系统只监测HSE,等同于HSE的安全看门狗。03时钟管理——时钟源HSI高速内部时钟源:HSI时钟源为芯片内部8MHzRC振荡器,可选择直接作为系统时钟使用,也可经2分频后作为PLL的输入时钟。HSI相较于HSE无需外接任何器件,且启动时间显著缩短,但是频率稳定性较差,即便经过校准,其时钟频率精度仍无法达到HSE的水平。LSE低速外部时钟源LSE时钟源来自外部晶振或外部时钟信号,为实时时钟或者其它定时功能提供一个低功耗且精确的时钟源。LSE时钟源通过时钟输入引脚OSC32_IN和OSC32_OUT连接外接相应器件,可外接频率为32.768kHz的石英晶体振荡器或外部产生32.768kHz的时钟源03时钟管理——时钟源LSI低速内部时钟源LSI由内部低速RC振荡器产生,担当一个低功耗时钟源的角色,LSI时钟频率典型值为40kHz,一般在30kHz和60kHz之间,可在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。PLL锁相环倍频输出PLLCLKPLL将已有的低频时钟HSI或HSE倍频生成高频、稳定的系统时钟。PLL支持不同时钟需求,内核、总线、外设都可以基于PLL再通过RCC分频获取合适的时钟频率。PLL的时钟输入源可为HSI/2、HSE或者HSE/2,再通过2~16倍倍频得到,PLLCLK的最大输出频率为72MHz。与其它时钟源一样必须等PLLCLK稳定后才可以使用,在启动过程中,当硬件设置PLLRDY位为1后表示PLLCLK已经稳定03时钟管理——时钟源时钟源频率和用途表名称频率精度主要用途HSE4~16MHz取决于晶体/外部源系统主时钟、PLL输入、USB时钟源
HSI8MHz,内部RC振荡器±1%(典型)系统主时钟、PLL输入、启动默认时钟LSE32.768kHz高精度高精度RTC时钟、低功耗运行
LSI40kHz,内部RC振荡器±5%(典型)独立看门狗IWDG、低精度RTC时钟、低功耗模式唤醒PLL最高72MHz与输入源相同系统高速运行主频SYSCLK、USB48MHz时钟03时钟管理——时钟源时钟树:描述了从时钟源到各个外设的时钟分配路径,是MCU性能与功耗平衡的核心基石。03时钟管理——时钟树时钟源用于产生系统时钟SYSCLK。SYSCLK经过AHB预分频器后,再通过APB1和APB2两个预分频器分配给不同的外设。APB1是低速总线,最高36MHz,APB2是高速总线,最高72MHz。通过配置RCC_CFGR寄存器,可以灵活地设置整个系统的时钟频率,在性能和功耗之间取得最佳平衡。03时钟管理——时钟树系统时钟SYSCLK)系统的主时钟源,决定整体运算速度。最大频率:72MHz•来源:内部高速时钟(HSI)、外部高速时钟(HSE)或锁相环(PLL)倍频输出。AHB预分频器(HPRE)连接CPU内核与系统总线的桥梁,向下级总线分配时钟。•最大频率:72MHz•挂载:CPU内核、系统存储器(SRAM/Flash)、DMA控制器。APB预分频器(PPRE1/2)APB1(低速总线):Max36MHz|TIM2-7,USART2-5,I2C1-2,CANAPB2(高速总线):Max72MHz|GPIO,ADC1-3,TIM1,USART1,SPI1关键寄存器:RCC_CR时钟控制寄存器。主要用于控制和指示HSI、HSE和PLL等时钟源的开启、关闭及就绪状态。关键寄存器:RCC_CFGR时钟配置寄存器。决定系统时钟的流向:选择系统时钟源、配置PLL倍频系数及AHB/APB总线的分频系数。03时钟管理——时钟树SYSCLK:是MCU运行的主时钟信号和时间基准,必须始终开启。SYSCLK决定内核、外设、存储器等各个模块的工作频率、系统的运算速度和外设的工作节奏03时钟管理——系统时钟SYSCLK的时钟源配置例程
__IOuint32_tStartUpCounter=0,HSEStatus=0;#defineHSE_STARTUP_TIMEOUT((uint16_t)0x0500);//根据稳定性的要求,可适当增大该数值//使能HSE,并等待HSE稳定RCC->CR|=((uint32_t)RCC_CR_HSEON);//等待HSE启动稳定,并做超时处理do{HSEStatus=RCC->CR&RCC_CR_HSERDY;StartUpCounter++;}while((HSEStatus==0)&&(StartUpCounter!=HSE_STARTUP_TIMEOUT));
if((RCC->CR&RCC_CR_HSERDY)!=RESET){HSEStatus=(uint32_t)0x01;}else{HSEStatus=(uint32_t)0x00;}//HSE启动成功,则继续往下处理03时钟管理——系统时钟时钟管理:时钟树派生时钟图03时钟管理——系统时钟SYSCLK的派生时钟:从SYSCLK派生出来的子时钟信号,用来驱动不同的总线和外设。SYSCLK经过AHB预分频器后主要生成了HCLK、PCLK1、PCLK2、USBCLK和RTC等内核和外设所需要的各种时钟
RTC时钟(RTCCLK)🔸来源:可从LSE、LSI或HSE的128分频中灵活选择。🔸配置:通过RCC_BDCR寄存器中的RTCSEL[1:0]两位进行时钟源切换配置。🔸用途:专门用于驱动实时时钟(RTC)模块,为系统提供高精度、低功耗的时间戳与日历基准。03时钟管理——系统时钟的派生时钟窗口看门狗(WWDG)•时钟源:来自APB1总线时钟的4096分频,与系统运行紧密相关•特点:具备“喂狗”窗口限制,主要用于监控软件执行流程,防止程序死循环或跑飞。看门狗时钟(Watchdog)独立看门狗(IWDG)•时钟源:固定为LSI(约40kHz),独立于主系统时钟。•特点:在主时钟故障时仍能正常运行,提供系统最高级别的复位安全保障。看门狗时钟(Watchdog)03时钟管理——系统时钟的派生时钟主时钟输出MCO引脚:输出指定的时钟信号,以便给外围芯片提供时钟信号,或者在调试过程中通过示波器或逻辑分析仪监控MCU的时钟状态。MCO做为时钟输出时需要将引脚配置为复用推挽输出模式。SYSCLK、HSI、HSE和PLL/2都可被选作MCO时钟,可通过RCC_CFGR寄存器的位MCO[2:0]选择在MCO引脚输出的时钟源CKS32F103内置一个全速USB模块,其时钟必须是48MHzUSBCLK来源:PLLCLK。当PLLCLK为72MHZ时,需要对其进行1.5倍分频得到USBCLK,可通过RCC_CFGR的位USBPRE设置分频系数为1.5或1。由于USB对时钟精度要求极高,必须精确为48MHz,须使用HSE和PLL作为时钟源,且进入USB预分频器的频率只能为48MHz或72MHz。USB时钟03时钟管理——系统时钟的派生时钟复位控制03复位是系统恢复正常运行的重要手当MCU的电源电压稳定、时钟系统正常工作后,复位是其执行的第一个核心动作。复位标志着CKS32F103芯片从无电停工状态正式切换至有序运行的启动阶段。复位的本质:通过硬件触发或软件指令,将CKS32F103的内部所有资源恢复到已知且固定的初始状态,目的是确保芯片每次启动时,都能在统一的硬件环境下,从预设的程序入口地址开始执行,避免因前次异常状态残留导致启动失败或功能紊乱复位控制-复位源03复位的触发依赖于复位源复位源:导致系统进入复位状态的各种触发因素或事件。复位源的设计直接决定了硬件系统的稳定性与可靠性。无论是上电时的自动初始化、用户主动发起的重启操作,还是系统故障后的自动恢复,均需依赖复位源的正常工作。复位源划分为系统复位与备份域复位两大类。多种复位方式的设计,确保芯片在电压波动、程序跑飞、外设故障等复杂场景下,仍能可靠恢复到初始状态,为系统的稳定性与安全性提供基础保障,开发者可根据实际应用场景灵活选择适配的复位方案。复位控制-复位源03类型复位源触发条件复位范围RCC_CSR标志系统复位外部复位NRST引脚NRST引脚被外部电路拉低并持续≥2个时钟周期整个芯片,除备份域的RTC、LSE、备份寄存器等EXTRSTF,位D1电源复位上电复位POR主电源VDD从低于VPOR上升至稳定值PORRSTF,位D0掉电复位PDR主电源VDD从高于VPDR下降至低于阈值与POR共用看门狗复位独立看门狗IWDG复位IWDG计数器溢出,未及时喂狗IWDGRSTF,位D2窗口看门狗WWDG复位WWDG计数器在窗口外溢出,或未在有效窗口内喂狗WWDGRSTF,位D3软件复位向NVIC_AIRCR寄存器的VECTKEY写入0x05FA并置位D2位SYSRESETREQSFTRSTF,位D4低功耗管理复位低功耗模式下,配置复位唤醒且触发唤醒事件无专用标志时钟安全系统CSS复位HSE时钟失效且CSS使能,未及时处理中断CSSF,位D7备份域复位备份域复位(BDRST)使能备份域访问后,设置RCC_BDCR的BDRST=1仅备份域无专用标志,需通过软件记录复位控制-复位源03复位过程:任一复位源输出的触发信号为高电平,该触发信号首先进入或门整形后的信号通过脉冲发生器和场效应管后作用于NRST引脚,使NRST引脚产生低电平,低电平信号再经过施密特触发器的抗干扰和滤波器的消除毛刺处理后,生成至少2个系统时钟周期的低电平复位信号,确保芯片内部所有模块均能同步检测到复位信号,避免局部模块未复位导致的异常。复位控制-复位源03复位释放:指当复位触发条件消失后,低电平持续满2个时钟周期即停止,之后NRST引脚恢复为高电平,MCU正式退出复位状态,进入程序启动流程。产生复位的复位源判断:读RCC控制器的控制状态寄存器RCC_CSR,可判断触发复位的复位源,从而诊断复位原因。RCC_CSR的
D26~D31位为复位源标志位,当系统发生复位时,与触发源对应的标志位会被硬件自动置1,其余未触发的标志位保持0,这些标志位会记录系统最后一次复位的具体来源。复位控制-系统复位03NRST引脚上的外部低电平信号电源复位窗口看门狗计数终止复位独立看门狗计数终止复位软件SW复位低功耗管理复位时钟安全系统复位可触发系统复位的7种条件:复位控制-系统复位03NRST引脚上的外部低电平信号NRST引脚被外部电路拉低时,触发芯片内部复位逻辑并实现MCU的复位操作,广泛用于手动控制复位或外部电路自动监控复位场景复位控制-系统复位03电源复位在MCU供电电压低于正常工作范围时触发的一种复位机制,由内部的可编程电压监测器PVD负责执行电源复位确保MCU在电压达到稳定之前不会启动,并在系统启动时维持电压的稳定,避免因电压不足或不稳定导致的错误启动,以保证芯片的正常和安全运行。包括POR上电复位和PDR掉电复位。POR上电复位是在芯片电源电压VDD上电过程自动进行的复位。PDR掉电复位指在系统运行过程中VDD下降到一定阈值时自动触发的复位。复位控制-系统复位03电源复位电源上电复位和掉电复位波形图复位控制-系统复位03窗口看门狗计数终止复位独立看门狗计数终止复位软件SW复位SW软件复位:是程序主动触发的复位。固件升级后的自动重启、软件异常后的自恢复和系统参数更新后的重新初始化等采用SW复位方式。操作Cortex-M3的中断应用和复位控制寄存器NVIC_AIRCR可实现软件复位。向NVIC_AIRCR[31:16]位的VECTKEY写入密钥0x05FA,然后置位D2位SYSRESETREQ后,内核会触发MCU系统复位。复位控制-系统复位03低功耗管理复位在低功耗的停止或待机模式下,MCU可能因特定事件或异常情况触发复位。当复位发生时,即使已执行进入低功耗模式的指令,也不会实际进入低功耗模式,而是立即转入复位流程,以避免MCU从低功耗状态恢复时因状态异常导致系统不稳定。使能低功耗管理复位:配置Flash选项寄存器FLASH_OBR中D3位nRST_STOP
和D4位nRST_STDBY。nRST_STOP=1表示允许停止模式下触发复位,nRST_STDBY=1表示允许待机模式下触发复位低功耗复位功能在实际中较少使用,通常仅在低功耗场景需要异常唤醒保护时才会启用时钟安全系统复位复位控制-系统复位03时钟安全系统复位CSS复位:是一种针对HSE故障的硬件保护机制,用于监控HSE时钟的稳定性,防止因HSE时钟异常导致系统程序运行出错。HSE时钟异常情况如停振、频率偏移过大等。当HSE时钟发生失效,且时钟安全系统的使能位CSSON已被配置激活时,MCU内部硬件会自动触发系统复位,强制系统重新初始化,避免因时钟故障引发程序跑飞、数据错误等问题。若同时使能了HSE失效中断功能,当HSE出现故障时,CSS会先触发中断以便给予软件处理故障的机会,例如切换至备用时钟源HSI。若中断未被及时处理,如软件未响应或处理失败,则会进一步触发复位,确保系统在极端情况下仍能进入安全状态。复位控制-备份域复位03备份域复位是针对特定区域的复位,仅作用于由LSE、RTC、后备SRAM、备份寄存器BKP等组成的备份域,不会影响内核及其他外设。备份域复位的主要用途包括重置RTC时钟源、清除BKP和RTC的配置错误等,可在电池供电失败或系统异常时,将备份域恢复至初始状态。当主电源VDD和备份电源VBAT两者同时掉电后,若其中任一电源重新上电都会自动触发备份域复位。程序控制:先置位电源控制寄存器PWR_CR的位DBP关闭备份域写保护,再设置RCC_BDCR中的位BDRST=1,保持至少2个LSI/LSE周期后清零BDRST,即可触发备份域复位。复位控制-备份域复位03备份域复位例程:RCC->APB1ENR|=RCC_APB1ENR_PWREN;//使能PWR时钟PWR->CR|=PWR_CR_DBP;//解除备份域写保护PWR->CR|=PWR_CR_DBP;//确保写保护已解锁PWR->CR|=PWR_CR_BDRST;//置1,复位备份域PWR->CR&=~PWR_CR_BDRST;//清0,复位备份域后可继续执行RTC的配置等初始化操作。MCU启动04当复位动作完成且时钟系统稳定后,CKS32F103MCU会进入启动流程。MCU的启动是从硬件上电到内核接管系统控制权的过程,分为电源/复位、启动模式选择、Cortex-M3内核启动三个阶段。复位后默认时钟源为8MHz的HSI、PC指向启动模式决定的启动地址。启动模式决定上电或复位后开始执行程序的存储区域。内核启动是内核从读取异常向量表开始,到完成资源初始化、跳转到main()的过程,内核启动完成后,用户程序开始运行。MCU启动-启动模式04启动模式:通过硬件配置引脚BOOT0和BOOT1的电平组合,决定CKS32F103MCU复位后从哪个存储器获取启动代码从用户闪存启动(常用)BOOT0=0,BOOT1=x程序直接从芯片内部Flash中执行,这是产品正常运行的默认模式。从系统存储器启动BOOT0=1&BOOT1=0启动内置的引导加载程序(Bootloader),支持通过UART等接口进行IAP编程(烧录固件)。从嵌入式SRAM启动
BOOT0=1&BOOT1=1程序直接从内部SRAM启动运行,常用于调试程序或在特定应用场景下绕过Flash运行代码。启动流程逻辑复位→采样BOOT引脚状态→设定PC初始值→CPU取指执行复位后,芯片会自动采样BOOT0和BOOT1引脚的电平,以此决定程序从哪个存储区域加载运行。MCU启动-启动模式04MCU启动模式选择BOOT0BOOT1启动模式说明0x主FLASH启动默认启动方式,用户正常使用的模式10系统存储器该模式启动的程序功能由芯片厂家设置。芯片在出厂时预置了一段Bootloader,即ISP程序,对于CKS32F103系列产品而言,可以通过USART1接口进行程序下载。该区域是ROM,出厂后无法修改。11内置SRAM启动因SRAM掉电后,程序和数据会丢失,多数情况下SRAM启动只在调试时使用。可用该方式解除Flash的读写保护,但注意在解除读写保护的同时,Flash里的内容也会被自动清除,以防止恶意的软件拷贝。48脚封装BOOT0:第44脚(专用引脚)
BOOT1:第20脚,复用为
PB2
64脚封装BOOT0:第44脚(专用启动引脚)
BOOT1:第28脚,复用为
PB2
低功耗模式05便携式电子设备PED在日常生活中具有极其重要的作用,如笔记本电脑、手机、自动体外除颤器AED、全站仪等。这类设备通常依靠电池供电,因此在相同性能指标下,功耗越低的产品工作时间越长,所以低功耗设计对于PED产品尤为关键。CKS32F103支持睡眠、停机和待机三种低功耗模式。低功耗模式为PED产品开发提供了灵活的节能方案。除了利用这三种模式外,还可以通过降低系统时钟频率以及关闭AHB、APB总线上未使用的外设时钟,进一步降低系统功耗,全面提升PED产品的续航性能。低功耗模式05模式进入条件内核状态时钟状态SRAM/寄存器唤醒源典型用途运行模式(Run)上电复位后默认进入正常运行正常全部保持任意中断/事件正常工作睡眠模式(Sleep)SLEEP-NOWSLEEPONEXIT=0且SCR的SLEEPDEEP=0,执行WFI/WFE内核停止,外设继续HCLK关闭,外设时钟可用SRAM、寄存器保持任意中断事件等待中断,快速恢复SLEEP-ON-EXIT)SLEEPONEXIT=1且SLEEPDEEP=1执行WFI唤醒事件停止模式(Stop)配置PWR_CR的PDDS=0和LPDS位,且SLEEPDEEP=1,执行WFI/WFE内核停止PLL/HSE/HSI停止;LSE/LSI可保持SRAM、寄存器保持EXTI、RTC、看门狗、I²C唤醒等超低功耗,保持数据待机模式(Standby)PWR_CR的PDDS=0和PWR_CSR的WUF=0,且SLEEPDEEP=1,执行WFI/WFE内核与外设全部掉电仅备份域的RTC/LSE、后备寄存器保持SRAM丢失,仅备份寄存器保持唤醒引脚WKUP、RTC闹钟、NRST、IWDG最低功耗,适合长时休眠低功耗模式-睡眠模式(Sleep)05在睡眠模式下,只有内核停止运行,而片上所有外设,包括Cortex-M3核心的相关外设,如NVIC、SysTick等仍保持正常工作由于内核处于停止状态,所有I/O引脚会维持进入睡眠前的配置。若为输出口,则保持原有的输出状态不变,若为输入口,则继续保持其上拉、下拉或浮空的设置。此时,外设仍处于活动状态,并且能够产生中断请求,用于唤醒处理器。进入睡眠模式SLEEP-NOW和SLEEP-ON-EXIT两种进入睡眠模式:系统控制寄存器SCR的位SLEEPONEXIT用于控制MCU进入睡眠模式的条件。SLEEP-NOW模式:如果SLEEPONEXIT=0,当MCU执行等待中断WFI指令或等待事件WFE指令时,MCU立即进入睡眠模式。系统复位后SLEEPONEXIT=0,所以SLEEPONEXIT位一般不需要专门去设置。SLEEP-ON-EXIT:如果SLEEPONEXIT=1,执行WFI指令后,处理器不会立即进入睡眠,而是等待当前中断处理程序执行完成并退出后,再自动进入睡眠模式。低功耗模式-睡眠模式(Sleep)05进入SLEEP-NO睡眠模式程序#include"CS32F103.h"voidEnter_SleepMode(void){/*1.确保进入的是普通Sleep模式,而不是Stop/Standby*/SCB->SCR&=~SCB_SCR_SLEEPDEEP_Msk;//SLEEPDEEP=0/*2.根据需要配置中断优先级(例如允许SysTick或外部中断唤醒)*/NVIC_EnableIRQ(EXTI0_IRQn);//示例:允许外部中断0唤醒/*3.执行WFI或WFE,进入睡眠*/__WFI();//等待中断唤醒}低功耗模式-睡眠模式(Sleep)05退出睡眠模式(根据执行的进入睡眠指令不同)如果执行WFI指令进入睡眠模式,任意一个被嵌套向量中断控制器NVIC响应的外设中断都能将系统从睡眠模式唤醒。中断必须在NVIC里被使能,并且处于挂起状态才能触发唤醒。唤醒后执行中断服务程序,退出中断服务程序后继续执行WFI后的下一条指令。。当通过WFE指令进入睡眠模式时,一旦检测到唤醒事件,MCU就会立即退出睡眠模式。唤醒事件主要有两类,一是中断源转化为事件唤醒,可在外设的控制寄存器中使能一个中断。另外一种唤醒方式是EXTI事件唤醒,将某个外部或内部的EXTI线配置为事件模式,当事件发生时即可触发唤醒。低功耗模式-睡眠模式(Sleep)05低功耗模式-停止模式(STOP)05停止模式:是在睡眠模式基础上结合外设的时钟控制。HSI、HSE和PLL被关闭并停止工作,LSI和LSE继续运行,1.5V内核电源工作,寄存器和SRAM内容保持不变,RTC、IWDG和备份域继续工作。电压调节器可以被置于普通模式或低功耗模式,由电源控制寄存器PWR_CR中的LPDS位设置。停止模式下所有的高速时钟关闭,功耗大幅下降,电流可低至10uA。进入Stop模式:首先设置SCR中的SLEEPDEEP位为1,清除电源控制寄存器PWR_CR的PDDS位,根据需要设置PWR_CR中LPDS位选择电压调节器的模式,LPDS=1为低功耗模式,LPDS=0为普通模式。然后执行WFI或WFE指令则进入停止模式。进入停止模式之前,须确保已经清零唤醒源的挂起标志,否则MCU会跳过停止模式的进入流程而继续执行进入Stop之前的程序。低功耗模式-停止模式(STOP)05退出Stop模式唤醒源包括外部中断/事件、RTC闹钟/定时器事件、IWDG溢出、I²C或其它已配置的唤醒源。唤醒后默认使用8MHz的HSI作为系统时钟,需重新配置时钟树,如使能PLL、设置系统时钟频率等。通过中断唤醒后内核会先进入对应唤醒源的中断服务程序如EXTI0_IRQHandler或RTCAlarm_IRQHandler等,需在中断服务程序中清除中断标志以避免重复触发,按需恢复外设配置。低功耗模式-停止模式(STOP)05待机模式MCU进入最低功耗状态,内部电源和外设大部分被关闭,仅保留极少量功能。此时内部电压调节器关闭,所有1.5V供电切断,内核与外设完全掉电,仅备份域和RTC继续供电,RTC、IWDG及其相关时钟仍可运行。进入待机模式后,寄存器和SRAM内容全部丢失,但后备寄存器的内容得以保留,从而实现最低电能消耗,电流可低至约2µA。进入待机模式设置SCR中的SLEEPDEEP位、PWR_CR中的PDDS位为1,同时清除PWR_CSR中的WUF位,执行WFI或WFE指令则进入待机模式。低功耗模式-停止模式(STOP)05退出待机模式待机模式下仅特定唤醒源有效,进入模式前必须确保至少配置一个有效唤醒源,否则可能导致无法唤醒。唤醒源可以是WKUP即PA0引脚上的一个上升沿、RTC闹钟、NRST引脚复位和IWDG溢出复位,最常用的唤醒源是WKUP引脚上的脉冲。唤醒后,MCU的恢复过程相当于一次上电复位,所有系统时钟与外设需要重新初始化,程序会从复位入口重新执行MCU退出低功耗模式时,需要满足与进入指令相对应的唤醒条件。通过WFI进入低功耗模式时,必须由已经使能的中断触发,才能将MCU从低功耗状态唤醒。通过WFE进入低功耗模式时,唤醒源可以是中断或事件,既包括已经使能的中断,也包括未使能的中断,以及纯粹的事件信号。三种低功耗模式对比睡眠模式(Sleep)内核状态:CPU停止运行,时钟关闭存储状态:寄存器与SRAM内容完全保持外设状态:外设继续运行,系统时钟开启唤醒源:任何外设中断或内部事件均可唤醒功耗水平:中等进入方式:执行WFI(等待中断)或WFE(等待事件)指令停止模式(Stop)内核状态:内核断电,系统时钟停止存储状态:寄存器与SRAM内容保持,不丢失外设状态:所有外设时钟停止,进入低功耗唤醒源:EXTI
线中断/事件、USB唤醒事件功耗水平:较低进入方式:设置PDDS=0后,执行WFI或WFE指令待机模式(Standby)内核状态:内核完全断电,调压器关闭存储状态:SRAM和寄存器内容全部丢失外设状态:除待机电路外,所有时钟彻底停止唤醒源:WKUP引脚上升沿、RTC闹钟、系统复位功耗水平:最低(微安级/纳安级)进入方式:设置PDDS=1后,执行WFI或WFE指令复位与时钟控制器寄存器及备份寄存器06复位与时钟控制器RCC的寄存器:用于管理和配置系统时钟源、锁相环倍频、各总线分频系数及总线上外设的时钟开关,同时还具备对外设、独立看门狗等模块的控制与状态监测功能CKS32F103复位后,除SRAM和Flash接口FLITF外,其余外设默认均处于关闭状态。因此,任何外设开始工作之前,切记必须先为其配置并开启时钟,然后再进行外设初始化。外设时钟的使能通过AHB外设时钟使能寄存器RCC_AHBENR、APB1外设时钟使能寄存器RCC_APB1ENR和APB2外设时钟使能寄存器RCC_APB2ENR设置。在实际开发中,应根据外设所在总线选择正确的时钟使能寄存器。时钟使能不仅是外设正常运行的前提,也是实现系统功耗优化的重要手段。基地址为0x40021000复位与时钟控制器寄存器及备份寄存器06RCC寄存器描述寄存器名称偏移地址复位值功能及关键位配置描述时钟控制寄存器:RCC_CR0x000x0000xx83RW:控制HSI、HSE、PLL、CSS的开关和就绪标志;D0:HSION,1=使能HSI,0=关闭HSI;D1:HSIRDY,1=就绪(只读)D16和D17,对应HSEON和HSERDY;D24和D25,对应PLLON和PLLRDY;D18:
HSEBYP,HSE旁路控制,1=使用外部时钟源,0=使用外部晶振;D19:CSSON,时钟安全系统使能,1=使能;D[21:18]:PLLMUL,PLL倍频系数4~16倍,常用9倍时钟配置寄存器:RCC_CFGR0x040x00000000RW:系统时钟切换、AHB/APB分频、MCO输出等;D[1:0]:SW,系统时钟源选择,00=HSI,01=HSE,10=PLL;D[3:2]:SWS,系统时钟源状态,反映当前生效源,只读;D[7:4]:HPRE, AHB总线分频,0xxx=1,1000=2...1111=512分频;D[10:8]:PPRE1,APB1总线分频,0xx=1,100=2...111=16分频;D[13:11]:PPRE2,APB2总线分频,同PPRE1规则D16:PLLSRC,PLL输入源选择:0=HSI/2,1=HSE时钟中断寄存器:RCC_CIR0x080x00000000RW:时钟PLL/HSE/HSI/LSE/LSI就绪中断使能、中断标志和清除就绪中断;D0~D5:
LSIRDYF、LSERDYF、HSIRDYF、HSERDYF、PLLRDYF,LSI等时钟就绪中断标志,1=就绪中断;D8~D12:LSIRDYIE、LSERDYIE、HSIRDYIE、HSERDYIE、PLLRDYIE,LSI等时钟就绪中断使能标志,1=就绪中断使能;D16~D20:LSIRDYC、LSERDYC、HSIRDYC、HSERDYC、PLLRDYC,清除LSI等时钟就绪中断标志,1=清除就绪中断标志;APB2外设复位寄存器:RCC_APB2RSTR0x0C0x00000000RW:复位GPIO、AFIO、ADC1/2、TIM1、USART1、SPI1等APB2外设;D0:AFIORST,AFIO时钟复位,1=复位;D2~D6:IOPARST~IOPERST,对应GPIOA~E时钟复位,1=复位;D9~D12:ADC1/2RST、TIM1RST和SPI1RST时钟复位,1=复位;D14:USART1RST,USART1时钟复位:1=复位APB1外设复位寄存器:RCC_APB1RSTR0x100x00000000RW:复位TIM2/3/4、USART2/3、I2C1/2、USB、CAN、PWR等APB1外设;D0、D1、D2:TIM2/3/4RST,D11:
WWDGRST,D14:
SPI2RST,D17、D18:USART2/3RST,D21:D22:I2C1/2RST,1=复位;复位与时钟控制器寄存器及备份寄存器06RCC寄存器描述AHB外设时钟使能寄存器:RCC_AHBENR0x140x00000014RW:DMA1、SRAM、CRC等AHB总线上的外设时钟使能设置,默认都使能D0:DMA1EN,DMA1控制器时钟使能,1=使能;D2:SRAMEN,睡眠模式时SRAM时钟使能,1=使能,0=关闭;D4:FLITFEN,睡眠模式时FLASH接口时钟使能位,1=使能D6:CRCEN,CRC时钟使能,1=使能,0=关闭;APB2外设时钟使能寄存器:RCC_APB2ENR0x180x00000000RW:使能APB2总线上的时钟,外设使用时必须开启;D0:AFIOEN,AFIO时钟使能,1=使能D2~D6:IOPAEN~IOPEEN,对应GPIOA~E时钟使能,1=使能D9~D12:ADC1/2EN、TIM1EN和SPI1EN时钟使能,1=使能D14:USART1EN,USART1时钟使能:1=使能APB1外设时钟使能寄存器:RCC_APB1ENR0x1C0x00000000RW:使能APB1总线上的时钟,外设使用时必须开启;D0~D2、:TIM2EN、TIM3EN和TIM4EN时钟使能,1=使能;D11:WWDGEN,窗口看门狗时钟使能;D14:SPI2EN,SPI2时钟使能;D17~D18:
USART2EN和 USART3EN,对应USART2和USART3时钟使能;D21~D23:I2C1EN、I2C2EN和USBEN时钟使能备份域控制寄存器:RCC_BDCR0x200x00000000RW:RTC时钟源选择、LSE使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期末复习课件-2025-2026学年统编版小学道德与法治四年级下册
- 中考广州江门试题及答案
- 2026年物业管理员(国家四级)职业资格考试(理论知识)(人社部)仿真试题及答案
- 2026年四川省甘孜州康定市考调公务员申论+行政职业能力测验试题解析及核心考点
- 2026年内蒙古自治区公开遴选公务员考试(综合试卷)强化练习题及答案
- 2026年江西军队转业干部考试(计算机)能力提高训练题及答案
- 【1053】孔源性视网膜脱离围手术期护理查房
- 福建省宁德市柘荣县某中学2024-2025学年高二下学期开学英语试题
- 2026年湖北省天门市农业专业技术职务水平能力测试(农学)综合试题及答案
- 2026年湖北省荆州市企业“直通车”专项职称评审(焊接工艺及设备)自测试题及答案解析
- 2024年北京市高考物理试卷(含答案逐题解析)
- CHT 4020-2018 管线制图技术规范
- (2024年)《工伤保险培训》ppt课件完整版
- 2024-2025年上海中考英语真题及答案解析
- 办公家具生产设备清单
- 赋能:打造应对不确定性的敏捷团队
- 学前儿童行为观察的方法(课堂PPT)
- 工业机器人技术与应用PPT完整全套教学课件
- dd5e人物卡可填充格式角色卡夜版
- 第五章 马尔可夫过程
- GB/T 19247.4-2003印制板组装第4部分:分规范引出端焊接组装的要求
评论
0/150
提交评论