
STM32F1和STM32F0系列微控制器之间的芯片替换 简介 对于 STM32 微控制器应用的设计人员而言,将一种微控制器类型轻松替换成同一产品系列的另一种微控制器非常重要。随着产品要求不断提高,对存储器大小或 I/O 数量的需求也相应增加,因此设计人员经常需要将应用程序移植到其它微控制器。另一方面,为了降低成本,用户可能被迫转换为更小的元件并缩减 PCB 面积。 本应用笔记旨在帮助您分析从现有的 STM32F1 器件移植到 STM32F0 器件所需的步骤。本文档收集了最重要的信息,并列出了需要注意的重要事项。 要将应用程序从 STM32F1 系列移植到 STM32F0 系列,用户需要分析硬件移植、外设移植和固件移植。 为了充分利用本应用笔记中的信息,用户应熟悉 STM32 微控制器系列。可以参考 www.st.com网站提供的以下文档。 ● STM32F1 系列参考手册(RM0008 和 RM0041)、STM32F1 数据手册和 STM32F1 Flash编程手册(PM0075、PM0063 和 PM0068)。 ● STM32F0 系列参考手册 (RM0091) 和 STM32F0 数据手册。 有关整个 STM32 系列的概述以及各 STM32 产品系列不同特性的对比,请参见 AN3364STM32 微控制器应用的移植和兼容性指南。 表 1 列出了本应用笔记所涉及的微控制器和开发工具。 ![]() 注: PB2 适用于 STM32F05x,而 NPOR 适用于 STM32F06x。除非用户为应用程序在 VSS/VDD 2 和 4 位置处使用了 2 个或 4 个 GPIO,否则从 F1 移植到F0 时不会影响引脚排列,具体取决于使用的封装。 1 硬件移植 入门级 STM32F0 与通用 STM32F1xxx 系列的各引脚兼容。所有外设共用这两个产品系列的相同引脚,但二者在封装上存在微小差别。从 STM32F1 系列转换到 STM32F0 系列非常简单,因为只有少数引脚受到影响(表 2 中用粗体指出了受影响的引脚)。 ![]() 2 启动模式兼容性 F0 系列与 F1 系列上启动模式的选择方式不同。F0 不再使用两个引脚进行此设置,而是从存储器地址 0x1FFFF800 处的用户选项字节的选项位来获取 nBOOT1 值。利用 BOOT0 引脚,F0 系列可以选择与主 Flash、SRAM 或系统存储器对应的启动模式。表 3 中汇总了用于选择启动模式的不同配置。 ![]() 注: 此 BOOT1 值与 nBOOT1 选项位的值相反。 3 外设移植 如表 3 所示,共有三类外设。除非外设实例不复存在,否则,无需任何修改便可通过专用固件库支持通用外设。当然,用户可以更改实例和所有相关特性(时钟配置、引脚配置、中断/DMA 请求)。 ADC、RCC 和 RTC 等已修改的外设与 F1 系列的对应外设有所不同,因此,应更新这些外设以便有效利用 F0 系列提供的增强功能和全新特性。 在 F0 系列中,上述已修改的所有外设均经过改进,有效减小了硅片面积,从而可为经济型最终产品带来先进的高端功能,并修正 F1 系列存在的某些局限。 3.1 STM32 产品交叉兼容性 STM32 系列内置一组外设,这组外设可分为三类: ● 第一类是根据定义适用于所有产品的外设。这些外设都相同,因此它们具有相同的结构、寄存器和控制位。移植后,无需进行任何固件更改,便可在应用程序级别上保持相同的功能。所有特性和行为均保持不变。 ● 第二类是指由所有产品共用的外设,但其中存在微小差别(通常是对新特性的支持)。从一个产品移植到另一个产品的过程非常简单,无需进行大量新的开发工作。 ● 第三类是指从一个产品移植到另一个产品后发生显著变化的外设(新架构、新特性 ...)。对于这类外设,若要进行移植,需要在应用程序级别进行全新开发。 表 4 给出了这种分类的总览。 ![]() |