如何评估MCU满足项目需求?
- 了解MCU的基本特性和规格:首先需要了解MCU的处理器内核、存储器、时钟、外设和接口等基本特性和规格,以及支持的编程语言和开发工具等。
- 确定项目需求:在了解MCU的基本特性和规格后,需要确定项目的需求,包括需要控制的设备或执行的任务、需要处理的数据量和信号、需要的处理能力和存储空间、需要的功耗和可靠性要求等。这些需求将指导后续的MCU评估和选择。
- 评估MCU的性能和功能:根据项目需求,结合MCU的基本特性和规格,对MCU的性能和功能进行评估。这包括MCU的处理能力、存储空间、时钟速度、电源管理、外设和接口等方面。
- 确定MCU的可用性和可靠性:除了性能和功能,还需要考虑MCU的可用性和可靠性。这包括MCU的供货情况、价格、技术支持和开发工具支持等方面。同时,还需要了解MCU的可靠性和稳定性,包括温度范围、EMI/EMC、ESD等指标。
- 进行MCU的实际测试:最后,需要进行实际的MCU测试,以验证MCU是否能够满足项目需求。可以通过搭建实验环境,编写实际的应用程序,并进行性能测试、功耗测试、稳定性测试等来评估MCU的实际表现
关于STM32
STM32是意法半导体(STMicroelectronics)公司推出的一款32位微控制器系列,该系列主要基于ARM Cortex-M内核,具有高性能、低功耗、集成度高等优点,广泛应用于各种嵌入式系统和物联网设备中。STMicroelectronics是一家总部位于瑞士的跨国半导体公司,成立于1987年,拥有全球性的研发、制造和销售网络,在各种应用领域都有着广泛的产品和解决方案。
一、一张图看懂意法半导体STM32产品线路图
STM32MCU和STM32MPU都是意法半导体的产品系列,其中高性能MCU和MPU集成了Cortex-A和Cortex-M两种内核的异构架构,根据上一篇文章提到的ARM有关Cortex-A和Cortex-M两种内核的区别,我们可知它们的应用场景和设计思路有所不同。STM32MCU主要针对嵌入式控制器应用,STM32MPU主要针对高性能计算应用的处理器。
本公众号只关注ST主流MCU也推荐读者先选择主流的STM32F1或STM32F4系列来学习。
二、STM32产品选型命名规则如下
三、如何针对STM32选型?
- 应用场景和需求:首先需要明确使用STM32的应用场景和需求,例如需要控制什么设备或执行什么任务,需要处理多少数据和信号,需要多大的处理能力和存储空间等。这些因素将直接决定STM32芯片的选型范围和性能要求。
- 外设和接口:STM32支持各种不同的外设和接口,例如通用输入输出(GPIO)、模拟转换器(ADC)、通用同步异步收发器(USART)、USB、以太网等。需要根据具体应用的需要选择适合的外设和接口,同时也需要考虑这些外设和接口的电气特性、数量、速率和支持程度等。
- 处理器内核和架构:STM32支持不同的ARM Cortex处理器内核和架构,包括Cortex-M0、Cortex-M3、Cortex-M4、Cortex-M7等。需要根据具体应用的需求选择适合的处理器内核和架构,例如需要更高的计算性能、更多的存储空间和更高的时钟速度等。
- 电源管理和功耗:STM32支持不同的电源管理和功耗优化技术,包括低功耗模式、睡眠模式、停机模式等。需要根据应用场景和电源供应条件选择适合的电源管理和功耗优化方案,以达到更长的电池寿命和更低的功耗。
- 可用的开发工具和平台支持:选型STM32还需要考虑可用的开发工具和平台支持,例如开发板、软件开发工具、在线william hill官网
、文档等。需要选择适合自己的开发工具和平台,以便更快速、更准确地进行开发和测试。
总的来说,选型STM32需要综合考虑应用场景和需求、外设和接口、处理器内核和架构、电源管理和功耗以及可用的开发工具和平台支持等因素,以选择最适合自己应用的STM32芯片。
四、STM32微处理器内部结构(以F103系列说明)
STM32F103XX由高速总线(AHB)和低速总线(APB)构成完整的片上总线。其中AHB总线将内核Cortex-M3 、DMA、NVIC、flash、内存和AHB-APB桥进行互联。APB总线将SPI、USART、I2C、GPIO、TIM、WWDG等这些IO设备进行互连。AHB-APB桥实现AHB总线与APB总线之间的互连。
五、STM32F103XX全局地址空间
外设起始地址: 0x4000 0000
SRAM起始地址: 0x2000 0000
Falsh起始地址: 0x8000 0000
- Flash存储器映射:STM32F103系列单片机的Flash存储器容量大小不同,但一般都是从0x0800 0000地址开始映射的。用户程序代码和常量数据通常存储在Flash存储器中。
- SRAM存储器映射:STM32F103系列单片机的SRAM存储器容量也不同,但一般都是从0x2000 0000地址开始映射的。程序中使用的变量、堆栈和缓存等通常存储在SRAM存储器中。
- 外设寄存器映射:STM32F103系列单片机有许多外设,每个外设都有一些寄存器用于配置和控制,这些寄存器通常映射在0x4000 0000到0x5FFF FFFF的地址范围内。每个外设的寄存器地址和访问方式都有一定的规定,需要查阅相关的技术文档来了解。
- System Memory映射:STM32F103系列单片机的System Memory是指内置的Bootloader程序存储区域,这个区域的地址范围是从0x1FFF F000到0x1FFF F7FF,大小为2KB
- 位带映射:STM32F103系列单片机的位带映射功能可以将某个单个位的读写操作映射到一个整个“字”的读写操作,这种映射方式可以提高对某些位操作的效率,但需要在编程时进行特殊的设置。
注:
1、在STM32F103系列单片机中,System Memory用于存储Bootloader程序,这个程序可以在开机时自动运行,并且可以通过Bootloader程序进行固件更新等操作。
需要注意的是,System Memory和Flash存储器是两个不同的存储区域,存储的数据和访问方式也有所不同。在编程时需要注意区分,使用正确的地址和访问方式来访问不同的存储器。
2、位带映射是一种用于提高单片机位操作效率的技术。在单片机中,位操作(如设置或清除某个特定位)通常需要进行多个操作才能完成,这可能会导致程序效率低下。
为了提高位操作的效率,一些单片机引入了位带映射技术。该技术通过将每个位(bit)与一个单独的内存地址进行映射,使得对该位的操作可以像对内存变量一样进行,从而可以大大简化位操作的流程。
在STM32系列单片机中,位带映射功能可以通过编程器进行配置和使用。它可以用于各种位操作,例如设置某个寄存器的特定位、设置某个GPIO口的特定引脚等等。位带映射功能可以极大地提高单片机位操作的效率,同时也方便了程序的编写和调试。