STM32

STM32是STMicroelectronics(意法半导体)推出的一系列基于ARM Cortex-M内核的32位微控制器(MCU)产品。这些微控制器提供了广泛的产品系列,覆盖了多种不同的性能和功能需求,适用于各种应用领域,包括工业控制、汽车电子、消费类电子、医疗设备等。

STM32系列微控制器以其高性能、低功耗、丰富的外设接口和灵活的开发工具而闻名。它们通常具有丰富的存储器、多种通信接口(如UART、SPI、I2C、CAN等)、模拟数字转换器(ADC)、定时器、PWM输出等功能,以满足不同应用场景下的需求。

STM32微控制器通常使用标准的ARM Cortex-M内核,包括Cortex-M0、M0+、M3、M4和M7等,这些内核具有不同的性能和功耗特性,可根据具体应用的需求进行选择。此外,STM32系列还提供了多种封装和引脚配置,以满足不同尺寸和集成度的要求。

STMicroelectronics为STM32系列提供了丰富的开发工具和支持资源,包括基于ARM开发环境的集成开发环境(IDE)、调试器、评估板和参考设计等。这些工具和资源有助于开发人员快速开发和部署他们的应用,并提供了全面的技术支持和文档资料,帮助用户充分发挥STM32微控制器的性能和功能优势。

人工智能、物联网和智能工业正将MCU推上又一个发展高潮。

据IC Insights市场研究报告显示,2015年全球MCU市场规模达到168亿美元,出货量255亿颗。2023年全球MCU销售额将达到213亿美元,出货量预计为382亿。

MCU销量及营收预测
MCU销量及营收预测

32位MCU更符合物联网设备高性能低功耗的要求。由于物联网设备通常需要实现传感、通信、信息处理、计算、下达控制指令等功能,任务复杂程度较高,因此32位MCU在物联网领域的运用程度远高于8位和16位MCU。

随着ARM Cortex M核的MCU 逐渐在市场占据主导地位,高效和先进制程工艺的应用,32 位MCU的成本得到有效缩减,价格在过去5年间年均下降速度17%,2015年更是突破了1美元关口,逼近传统16位MCU以及高端8 位MCU的价格。

高性价比的几大要素

作为物联应用的核心器件,无论是MCU的联网能力、集成度、灵活性、安全性都在进一步提升,而性价比的提升更是MCU在万物互联场景普及的关键。在功能不相上下的情况下,MCU比拼的就是功耗、效能、成本、体积与系统设计平台的一致性,以及是否提供强大的技术支持,以协助客户加速产品的上市。

提升性能

对于价格敏感型应用,除了降低硬件成本之外,提升MCU性能是提高性价比的另一重要方向。评估MCU时,通常会通过四大要点评估:功耗、运算性能、占板面积、程序代码大小四大指标。

先进的生产工艺

物联网应用对MCU的集成度和低功耗要求越来越高,促使MCU必须采用更先进的生产工艺,目前的工艺多为90纳米甚至40纳米制程。

完善的开发平台

对于MCU厂商而言,除了追求硬件成本的竞争力之外,客户的应用开发成本、上市时间也是必须考量的重要环节。因此,开发平台的完善与否,也是MCU供应商的核心竞争力之一。研发所投入的时间、人力也是重要考量。

完整的生态系统

MCU的应用离不开生态系统。完整的生态系统提供SoC开发平台、软件堆叠、应用开发平台及开发工具,可帮助用户构建出具有高度竞争力的产品,满足物联网日新月异的应用需求。

STM32F4超值系列完美诠释高性价比

STM32占ARM Cortex M核全球出货量的50%以上,其策略布局是以各种不同功能的32位通用型MCU,满足客户的所有需求。

为了扩展高性能 STM32F4 系列,ST推出全新超值型 STM32F400 和 STM32F402。超高的性价比是其成为物联网和嵌入式系统的绝佳MCU解决方案。它们专为成本驱动型的应用市场而设计,属最经济实惠的入门级高性能 MCU,在提供优异性能的同时兼顾实惠的价格。

STM32F400/402系列高性价比MCU
STM32F400/402系列高性价比MCU

高性能

STM32F400 和 STM32F402,都基于高性能Arm®Cortex®-M4 32位内核,拥有最高100MHz / 125 DMIPS CPU性能。

 STM32F400/402系列MCU主要特性
STM32F400/402系列MCU主要特性

安全性

STM32F400 和 STM32F402具有一整套DSP指令集和提高应用安全性的存储器保护单元(MPU)。

低功耗

STM32F400 和 STM32F402具备优化的能效 (Dynamic EfficiencyTM) 动态管理和批量采集模式(BAM) 创新功能,不仅融合了功率效率、 性能和集成度,还能够在数据批处理过程中进一步减少功耗。工作温度范围是-40至+85 °C,供电电压范围是1.7 (PDR OFF)至 3.6 V,拥有适合低功耗应用设计的一组完整的节电模式。

高集成度

STM32F400 和 STM32F402具有高达256 KB的Flash和64 KB的RAM存储器、大量增强型I/O、1个12位ADC、1个12位DAC、1个低功耗RTC、3个通用16位定时器、1 个用于电机控制的PWM定时器、1个通用32位定时器、以及1个16位低功耗定时器。

丰富接口

STM32F400 和 STM32F402还带有标准与高级通信接口。

  •   三个I2C

  •   三个SPI

  •   三个I2S,为达到音频级的精度,I2S外设可通过内部PLL提供时钟,或使用外部时钟以实现同步

  •   三个USART

完整的生态系统

STM32全系列 IDE 以及各种调试器、编程器和实用工具都支持STM32F400 和 STM32F402 的应用开发。同样,ST还提供基于二者的全系列开发评估板,方便用户编程、调试、功能验证等,从而帮助用户轻松开展应用开发。

STM32F400 和 STM32F402的主要应用涵盖了:

  •   电机驱动及应用控制
- 家电
- 电动工具
- 手持云台
- 扫地机器人

  •   医疗设备

  •   工业应用:PLC、逆变器和断路器

  •   打印机和扫描仪

  •   警报系统、视频电话和 HVAC

  •   家庭音响设备

来源:STM32

围观 152

意法半导体发布一款免费的STM32软件功能包,让用户可以用微控制器探索套件快速创建、训练、部署工业状态监测智能边缘设备

FP-AI-NANOEDG1软件包由意法半导体与机器学习专业开发科技公司、ST授权合作伙伴Cartesiam共同开发,包含捕获传感器数据,集成和运行Cartesiam的NanoEdge库所需的全部驱动程序、中间件、文档和代码示例。即使用户没有专业的AI技能,也能在Windows®10或Ubuntu PC机上,用CartesiamNanoEdge™AI Studio工具快速创建并导出自定义机器学习库。功能包可简化在STM32开发板上的原型开发和确认测试过程,而且是免费使用,当客户在硬件上部署软件包时,需要按照Cartesiam的收费标准收取软件许可使用费。

这个与Cartesiam合作制定的简易方法是使用STM32L562E-DK等探索套件的板载工业级传感器,捕获被测设备在正常操作模式下和异常情况下的振动数据。在功能包中还含有传感器配置和数据捕获软件。NanoEdge AI Studio负责分析基准数据,并从超过5亿的可能组合中选择预编译的算法,为高效处理训练和推理任务创建、优化机器学习库。功能包软件提供可以轻松替换库的存根(stub)类,以便将库轻松嵌入到目标应用。部署后,由于功能包允许模式在学习和监视之间切换,在设备安装初期以及生命周期任何阶段,设备可以本机学习正常工作状态的数据模式。

开发人员可以在探索套件上获取数据,生成、训练和监视解决方案,利用STM32 生态系统的免费开发工具和软件以及技术支持,快速创建经济划算的概念验证模型,并将应用代码轻松移植到其它STM32微控制器。与依赖于云端AI的解决方案不同,智能边缘解决方案可以在本机上处理机器数据,让设备所有者可以更好地控制潜在的敏感信息。

FP-AI-NANOEDG1功能包现在可以从www.st.com免费下载使用。

STM32L562E-DK 探索套件包含STM32L562QEI6QU超低功耗微控制器、iNEMO™3D加速度计和3D陀螺仪,以及两个MEMS麦克风、240x240彩色TFT-LCD液晶模组和板载STLINK-V3E调试器/烧写器。探索现套件现可从www.st.com或代理商处购买。

详情访问https://www.st.com/en/embedded-software/fp-ai-nanoedg1.html

关于意法半导体

意法半导体拥有46,000名半导体技术、产品和方案的创新者和创造者,掌握半导体供应链和最先进的制造设备。作为一家独立的半导体设备制造商,意法半导体与十万余客户、上千合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和5G技术应用更广泛。详情请浏览意法半导体公司网站:www.st.com

围观 151

并购将引入窄带蜂窝和超宽带技术,完善意法半导体的连接解决方案

意法半导体于日前宣布签署两项并购协议,收购超宽带技术专业设计公司BeSpoon的全部股本和Riot Micro公司的蜂窝物联网连接资产。在两项交易走完正常监管审批手续成交后,意法半导体将进一步提升其在无线连接技术方面的服务,特别是完善STM32微控制器和安全微控制器的产品规划。

BeSpoon公司位于法国Le Bourget du Lac,成立于2010年,是一家无晶圆厂半导体设计公司,专门研究超宽带(UWB)通信技术。采用该公司的技术,可以在条件不利的环境中实现厘米级精度的安全实时室内定位。在STM32产品组合中集成这项重要的安全定位技术,将让物联网、汽车和移动通信应用的开发人员能够提供安全门禁以及精确的室内外地图等服务。意法半导体将从BeSpoon的大股东TRUMPF及公司创始人手中收购公司股权。除交易本身外,意法半导体还将与TRUMPF建立UWB追踪技术的战略合作伙伴关系。

Riot Micro是位于加拿大温哥华的一家蜂窝物联网解决方案开发公司,提供经过市场检验的低功耗蓝牙(BLE)、Wi-Fi、LTE Cat-M和NB-IoT技术优化系统成本和功耗。在STM32产品组合中集成蜂窝通信功能,将增强意法半导体为资产跟踪、表计和车队管理服务等应用开发者提供的产品功能。

交易条款未披露。

意法半导体微控制器和数字IC产品部 (MDG)总裁Claude Dardanne 表示:“意法半导体致力于与客户一起抓住机遇、攻克挑战,提供所需的各种产品和解决方案。蜂窝物联网和超宽带技术是引发下一次物联网产品和创新应用浪潮的关键无线连接解决方案,这两项收购案可完善意法半导体现有的无线微控制器产品组合,包括蓝牙5.0和IEEE 802.15.4通信协议,以及全球首个带有LoRa®功能的片上系统 (SOC)。无线微控制器属于我们的STM32产品家族。我们的STM32系列有1,000多款产品,出货量已超过60亿。通过新的并购,我们的产品将覆盖所有的无线物联网通信协议。”

有关前瞻性陈述的声明

根据《 1995年私人证券诉讼改革法》的免责声明:

上文所述并非历史事实的任何陈述均为前瞻性陈述,包括有关我们未来经营业绩和财务状况、商业战略、未来经营计划和目标的任何陈述,都含有可能导致实际结果与前瞻性声明中的内容有很大差异的风险和不确定性因素。这些陈述仅是预测,反映了我们当前对未来事件的观点和预测,是以假设为依据,并受风险和不确定性因素的影响,随时可能发生变化。潜在的风险和不确定性因素包括但不限于以下因素:交易未完成的可能性,包括任何先决条件的结果;可能无法实现收购预期收益的风险;收购后难以留住员工;扩大设施和转让知识产权和专门知识方面的困难;使管理层的注意力从业务管理中转移开的事件;以及与我们的行业和业务相关的竞争和在我们会不时提交给美国证券交易委员会备案的文件中详细说明的其它风险因素。

关于意法半导体

意法半导体拥有46,000名半导体技术、产品和方案的创新者和创造者,掌握半导体供应链和最先进的制造设备。作为一家独立的半导体设备制造商,意法半导体与十万余客户、上千合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和5G技术应用更广泛。详情请浏览意法半导体公司网站:www.st.com

围观 17

为了简化物联网节点开发者面临的复杂软件的开发难题,意法半导体推出了B-L4S5I-IOT01A STM32探索套件。新套件包含经过相关标准认证的FreeRTOS™操作系统编程接口,该编程接口完全集成在STM32Cube开发生态系统内,可直连亚马逊云服务Amazon Web Services (AWS)。

硬件工具包括一块STM32L4+微控制器开发板,板载意法半导体的各种MEMS传感器,以及STSAFE-A110安全单元、Bluetooth® 4.2 模块、Wi-Fi®模块,以及用于低功耗上云的有印刷天线的NFC标签。配备了X-CUBE-AWS v2.0 STM32Cube Expansion Pack软件包,该开发套件可用作参考设计,简化和加快最终产品的开发。

X-CUBE-AWS v2.0扩展软件包确保在STM32Cube开发环境内正确集成FreeRTOS 标准AWS连接框架,用户只使用FreeRTOS和STM32Cube即可开发节点软件,无需使用其它软件。软件包还支持AWS原生服务,包括标准的固件无线更新(FOTA)服务,能够处理微控制器与STSAFE-A110安全单元的交互,包括处理AWS IoT 内核多账户注册和在启动、设备验证和OTA固件验证期间分配安全关键运算。

STM32L4+板能够满足市场对物联网节点的性能和能耗要求,STM32L4S5VIT6超低功耗Arm® Cortex®-M4微控制器集成2MB 闪存、640KB RAM、数字和模拟外设,以及硬件加密加速器。板载传感器包括HTS221容性数字相对湿度和温度传感器LIS3MDL高性能3轴磁强计LSM6DSL 3D 加速度计和3D陀螺仪LPS22HB数字输出绝对压力气压计,以及VL53L0X飞行时间和手势检测传感器和2个数字全向麦克风

B-L4S5I-IOT01A Discovery现已上市,可直接从意法半导体官网www.st.com或代理商订购。X-CUBE-AWS v2.0 STM32Cube Expansion Pack软件包现可免费下载。

详情访问 http://www.st.com/b-l4s5i-iot01a 。

关于意法半导体

意法半导体拥有46,000名半导体技术、产品和方案的创新者和创造者,掌握半导体供应链和最先进的制造设备。作为一家独立的半导体设备制造商,意法半导体与十万余客户、上千合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和5G技术应用更广泛。详情请浏览意法半导体公司网站:www.st.com

围观 20

一、电源监控器

stm32芯片主要通过引脚VDD从外部获取电源,在它的内部有电源监控器,用于检测VDD的电压,以实现复位功能和紧急掉电处理,来保持系统可靠地运行。

1、上电复位(POR)与掉电复位(PDR)

当检测到VDD的电压低于阈值VPOR及VPDR时,无需外部电路辅助,STM32芯片会自动保持在复位状态,防止电压不住强行工作带来的不良后果。刚开始VDD电压低于VPOR(约1.92v)时,STM32处于上电复位状态,当电压持续上升到大于VPOR时,芯片开始正常运行。当检测到电压低于VPDR(约1.88v)阈值时,STM32处于掉电复位状态。

2、可编程电压检测器PVD

除了POR和PDR防止误操作。STM32还提供了可编程电压检测器PVD,当检测到VDD的电压低于编程的VPVD阈值时,会向内核产生一个PVD中断,以使内核在复位前进行紧急处理.该电压阈值可通过电源控制寄存器PWR_CSRd置。

3、电源系统

电源系统的主要分为备份域电路、内核电路和ADC电路3部分。

①备份域电路

STM32的LSE震荡器、RTC和备份寄存器被包含在备份域电路中。通过VBAT引脚获取供电电源。

②内核电路(也叫调压器供电电路,即1.8V区域)

为备份域和待机电路以外的所有数字电路供电。包括内核数字外设和RAM。调压器可以运行在运行模式、停止模式和待机模式。

③ADC电路

为了提高ADC的转换精度,STM32为ADC配了独立的电源接口,方便进行单独的滤波。

二、STM32的功耗模式

按功耗由高到低排序,STM32有运行、睡眠、停止、待机4种工作模式。上电复位后STM32处于运行状态,当内核不需要运行时可选择后面三种低功耗模式,以降低功率。这三种模式中,电源消耗不同,唤醒时间不同,唤醒源不同。

1. 睡眠模式

仅关闭了内核,片上外设及M3外设都在运行。有两种方式进入睡眠模式,WFI和WFE,他的进入方式决定了唤醒方式。由WFI进入的由中断唤醒,执行完中断函数后继续从WFI后面运行。由WFE进入的则由事件唤醒。唤醒后直接执行WFE后的程序。

                LED_Init();
		Key_GPIO_Init();
		LED(0);
		
		__WFI();//进入睡眠模式
		
		//等待KEY1按下产生中断唤醒		
		//唤醒后接着向下执行
		LED(3);
		delayms(1000);
		LED(4);
		delayms(1000);
		LED(5);

2. 停止模式

在停止模式中进一步关闭了其他时钟,故在停止模式下所有的外设也停止工作。但由于1.8V区域电源没关闭,寄存器和内存的信息还在所以停止模式结束后还是可以接着进入停止模式的地方接着向下执行代码。

                LED_Init();
		Key_GPIO_Init();
		LED(0);
		
		//进入停止模式
		PWR_EnterSleepMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
		
		
		
		//被唤醒后接着向下执行
		//从停止模式被唤醒后使用的是HSI时钟,这里重启HSE时钟,使用PLLCLK
		SYSCLK_Config_STOP();
		LED(1);
		delayms(500);
		LED(2);
		delayms(500);
		LED(3);

3. 待机模式

待机模式关闭了所有的时钟,故待机结束后只能重新开始运行程序。注意要进入待机模式前必须使能PWR时钟。

int main()
{
	//使能电源管理的时钟,必须要使能时钟才能进入待机模式
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
	
	while(1)
	{
		LED_Init();
		Key_GPIO_Init();
		LED(0);
		
		
		
		LED(1);
		delayms(500);
		LED(2);
		delayms(500);
		LED(3);
		delayms(500);
		while(1)
		{
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0)
		{
			LED(8);
			delayms(500);
			PWR_ClearFlag(PWR_FLAG_WU);
			
			PWR_WakeUpPinCmd(PWR_WakeUpPin_1,ENABLE);
			
			/*进入待机模式*/
			PWR_EnterSTANDBYMode();
		}
		}
	}
	
}

版权声明:本文为CSDN博主「路还长i」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/qq_37898432/article/details/85318134

围观 139

STM32有两个看门狗,独立看门狗和窗口看门狗。其实两者的功能是类似的,只是喂狗的限制时间不同。

窗口看门狗

窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。

图1 窗口型看门狗

窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。

图2 窗口型看门狗工作原理

上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其取值范围为64~127(即:0x40~0x7F);配置寄存器WWDG->CFR中为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。

窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36MHz,根据手册可以知道其定时时间计算方法:


与独立看门狗的对比

1、使用条件对比


2、特点对比


3、两者的区别

独立看门狗与窗口看门狗的区别如下:

独立看门狗没有中断,窗口看门狗有中断。

独立看门狗有硬件软件之分,窗口看门狗只能软件控制。

独立看门狗只有下限,窗口看门狗有下限和上限。

独立看门狗是12位递减的,窗口看门狗是7位递减的。

独立看门狗是用的内部大约40KHz的RC振荡器,窗口看门狗是用的系统时钟APB1ENR

独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位。

窗口看门狗有中断,这个中断的作用是在计数器达到下限0x40的时候,产生中断,让你喂狗;如果你不喂狗,计数器的值变为0x3f的时候,将会产生系统复位;即使是喂狗,也应该在中断里快速喂狗,要不时间长了计数器减1也会变成0x3f产生复位。

窗口看门狗还有一个上限值,这个值如果大于计数器的初始值,那么就没有任何作用了;这个值小于计数器初始值的时候,当计数器的值大于上限值时你对计数器进行装载,将会产生复位,只有在计数器减到小于上限值时,你才能重新装载计数器。意思就是说只有计数器的值在上限值和下限值之间你才能装载计数器,否则就会产生系统复位,当上限值小于下限值,也没有意义。

免责声明:本文系网络转载,版权归原作者所有。如有问题,请联系我们,谢谢!

围观 3350

概念基础:

STM32时钟系统基本一致,不同系列之间有细微差别。此文档主要针对STM32F446的时钟系统进行介绍。

1. 时钟树概述

① 为何不是采用一个系统时钟?如51
因为STM32本身非常复杂,外设非常多,但是并非所有外设都需要系统时钟这么高的频率,比如看门狗和RTC只需要几十K的时钟即可。同一个电路,时钟越快,功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般采用多时钟源的方法来解决这些问题。

② 主要时钟源:
5个最主要的时钟源:
高速时钟源:HSI、HSE、PLL
低速时钟源:LSI、LSE
其中PLL实际又分为3个时钟源:主PLL、I2S部分专用PLLI2S、SAI部分专用PLLASI。

详解:
LSI是低速内部时钟,RC振荡器,频率为32K,供独立看门狗和自动唤醒单元使用。
LSE是低速外部时钟,接频率为32.768Khz的石英晶体,这个主要是RTC的时钟源。
HSE是高速外部时钟,频率范围为4Mhz-26Mhz,可以直接作为系统时钟或PLL输入。
HSI是高速内部时钟,RC振荡器,频率为16Mhz,可以直接作为系统时钟或PLL输入。
PLL为锁相环倍频输出,STM32F4有三个PLL:
a、 主PLL由HSE或HSI提供时钟信号,并具有两个不同的输出时钟。
第一个输出PLLP用于生成高速的系统时钟(最高180Mhz)
第二个输出PLLQ为48M,用于USB OTG FS时钟,随机数发生器的时钟和SDIO时钟。
b、 第一个专用PLL(PLLSAI)用于生成精确时钟,用作SAI输入时钟。Q是SAI时钟分频系数。P可以生成PLL48CLK用于给USB FS或SDIO提供48M时钟。
c、 第二个专用PLL(PLLI2S)用于生成精准时钟,在I2S和SAI上实现高品质音频性能。R是I2S时钟的分频系数,Q是SAI时钟的分频系数。

2. 常用时钟源选择

① 看门狗时钟:看门狗时钟只能是低速的LSI时钟,32Khz。
② RTC时钟源:可以选择LSI(32Khz)、LSE(32.768Khz)、HSE分频后提供(2-31分频)
③ 系统时钟SYSCLK:可选择HSE、HSI和PLL
④ USB高速设备会有外部PHY提供60Mhz
⑤ NOTE:
在上述的很多时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等。
APB1是外设低速总线
APB2是外设高速总线
一般时钟总线是设备总线的2倍
时钟主频可以设置为168Mhz,通过设置Over-driver模式可以超频到180Mhz
FLASH Latency 延时配置参考:


3. 时钟源使能和配置

在配置好时钟系统之后,如果我们要使用某些外设,例如GPIO、ADC,还要使能这些外设时钟,如果在使用外设之前没有使能外设时钟,这个外设是不可能正常运行的。

IO引脚复用器和映射

一个GPIO如果可以复用为内置外设的功能引脚,那么这个GOIO作为内置外设使用的时候,就叫做复用。

4. 寄存器配置

① RCC_CFGR,时钟配置寄存器


Bit2 bit3代表使用的时钟源,具体可查参考手册,系统刚上电时默认为内部HSI。

② RCC_PLLCFGR,PLL时钟配置寄存器


上电默认情况为HSI做为主PLL和I2SPLL的时钟入口。

③ RCC_CR,RCC时钟控制寄存器


通过Bit16可以切换为外部晶振。在时钟初始化的时候被调用。时钟切换之后,根据时钟设置逻辑,如果外部晶振使能了,则等待外部晶振正常起震。起震后查看RCC_CFRG寄存器,当前使用的还是HSI。下一步需要判断程序中是否要使用PLL,若使用,则继续进行PLL配置。

配置结束PLL的各种分频后,一块进行寄存器配置。此时再切换到外部HSE工作。

时钟配置过程:
(1)AHB配置预分频,得到HCLK时钟,分频值写入RCC_CFGR bit4-bit7
(2)系统时钟配置 RCC_CFGR bit0-bit1
(3)检查系统时钟状态是否切换成功 RCC_CFGR bit2-bit3
(4)APB1、APB2配置预分频,得到PCLK1、PCLK2时钟RCC_CFGR bit10-bit15
(5)更新系统全局变量SystemCoreClock

5. I2S时钟配置

(1)选择I2S外设的时钟源
(2)配置各项时钟分频系数,一般情况下使用PLLI2SR时钟
(3)计算时钟分频,需要在PLLI2SR上获得需要的48K

下列公式为参考手册提供:
When the master clock is generated (MCKOE in the SPIx_I2SPR register is set):
fS = I2SxCLK / [(16*2)*((2*I2SDIV)+ODD)*8)] when the channel frame is 16-bit wide
fS = I2SxCLK / [(32*2)*((2*I2SDIV)+ODD)*4)] when the channel frame is 32-bit wide
When the master clock is disabled (MCKOE bit cleared):
fS = I2SxCLK / [(16*2)*((2*I2SDIV)+ODD))] when the channel frame is 16-bit wide
fS = I2SxCLK / [(32*2)*((2*I2SDIV)+ODD))] when the channel frame is 32-bit wide
将计算额I2SDIV和奇数值ODD写入相应寄存器。
此例中,I2SxCLK为192MHz,使用48K时可以被整除,时钟准确,但是96K时不能被整除,造成时钟偏移。所以若需要进行I2S时钟动态调节,需要好好计算I2SxCLK。

版权声明:本文为CSDN博主「yk150915」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/yk150915/article/details/79112766

围观 630

页面

订阅 RSS - STM32