4.1 什么是 STM32
STM32, 从字面上来理解, ST 是意法半导体, M 是 Microelectronics 的缩写, 32 表示 32 位, 合起来理解, STM32 就是指 ST 公司开发的 32 位微控制器在如今的 32 位控制器当中, STM32 可以说是最璀璨的新星, 它受宠若娇, 大受工程师和市场的青睐, 无芯能出其右
4.1.1 STM32 诞生的背景
51 是嵌入式学习中一款入门级的精典 MCU, 因其结构简单, 易于教学, 且可以通过串口编程而不需要额外的仿真器, 所以在教学时被大量采用, 至今很多大学在嵌入式教学中用的还是 5151 诞生于 70 年代, 属于传统的 8 位单片机, 如今, 久经岁月的洗礼, 既有其辉煌又有其不足现在的市场产品竞争越来越激烈, 对成本极其敏感, 相应地对 MCU 的性能要求也更苛刻: 更多功能, 更低功耗, 易用界面和多任务面对这些要求, 51 现有的资源就显得得抓襟见肘所以无论是高校教学还是市场需求, 都急需一款新的 MCU 来为这个领域注入新的活力
基于这样的市场需求, ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3 微控制器内核紧随其后, ST(意法半导体) 公司就推出了基于 Cortex-M3 内核的 MCUSTM32STM32 凭借其产品线的多样化极高的性价比简单易用的库开发方式, 迅速在众多 Cortex-M3 MCU 中脱颖而出, 成为最闪亮的一颗新星 STM32 一上市就迅速占领了中低端 MCU 市场, 受到了市场和工程师的无比青睐, 颇有星火燎原之势
作为一名合格的嵌入式工程师, 面对新出现的技术, 我们不是充耳不闻, 而是要尽快吻合市场的需要, 跟上技术的潮流如今 STM32 的出现就是一种趋势, 一种潮流, 我们要做的就是搭上这趟快车, 让自己的技术更有竞争力
4.2 STM32 能做什么
STM32 属于一个微控制器, 自带了各种常用通信接口, 比如 USARTI2CSPI 等, 可接非常多的传感器, 可以控制很多的设备现实生活中, 我们接触到的很多电器产品都有 STM32 的身影, 比如智能手环, 微型四轴飞行器, 平衡车移动 POST 机, 智能电饭锅, 3D 打印机等等下面我们以最近最为火爆的两个产品来讲解下, 一个是手环, 一个是飞行器
4.2.1 智能手环
图 41 三星 GearFit 智能手环
红圈: STM32F439ZIY6S 处理器, 2048KB FLASH ,256KB RAM ,WLCSP143 封装
橙圈: Macronix MX69V28F64 16 MB 闪存, 基于 MCP 封装的存储器, 是一种包含了 NOR 和 SRAM 的闪存, 这在手环手机这种移动设备中经常使用, 优点是体积小, 可以减小 PCB 的尺寸这个闪存用的 439 的 FSMC 接口驱动
黄圈: InvenSense MPU-6500 陀螺仪 / 加速度计, 用 439 的 I2C 接口驱动
绿圈: 博通 BCM4334WKUBG 芯片, 支持 802.11n, 蓝牙 4.0+HS 以及 FM 接收芯片, 用 439 的 SDIO 或者 SPI 接口驱动
显示: 1.84" 可弯曲屏幕 (Super AMOLED),432 x 128 像素触摸部分用 439 的 I2C 接口驱动, OLED 显示部分用 LTDC 接口驱动
表格 41 三星 Gear Fit 和秉火 STM32F429 至尊版资源对比
资源 | 三星 Gear Fit | 秉火 STM32F429 至尊版 |
CPU | STM32F439ZIY6S,WLCSP143 封装 | STM32F429IGT6,LQPF144 封装 |
存储 | NOR+SRAM 16MB,FSMC 接口 | SDRAM 8MB,FMC 接口 |
显示 | 1.84 寸的 & nbsp;AMOLED,RGB 接口,LTDC 驱动 | 5 寸电容屏,RGB 接口,LTDC 驱动 |
陀螺仪 | MPU6050,I2C 接口 | MPU6050,I2C 接口 |
无线通信 | 蓝牙: 博通 BCM4334,SDIO 或者 SPI 接口 | WIFI: 美满 W8782,SDIO 接口 |
除了这几个重要资源的对比, 我们的 429 开发板上还集成了以太网, 音频, CAN,485,232,USB 转串口, 蜂鸣器, LED, 电容按键等外设资源, 可以充分的学习 429 这个芯片在板子上面, 还可以跑系统 ucosiii, 学习图形界面 emwin 如果功夫所至, 学完之后, 自己都可以做一个类似 Gear Fit 这样的手环可很多人又会说, Gear Fit 涉及硬件和软件, 整个系统这么复杂, 并不是一个人可以完成的说的没错, 我们可以做不了, 但是我们的能力可以无限接近, 多学点, 技多不压身嘛
图 42 ucosiii+emwin 做的系统界面 (429 开发板的开机界面)
4.2.2 微型四轴飞行器
现在无人机非常火热, 高端的无人机用 STM32 做不来, 但是小型的四轴飞行器用 STM32 还是绰绰有余的如图 43 所示飞行器的基本都可以用 STM32 搞定
图 43 微型四轴飞行器
上面的是属于产品, 如果想自己 DIY, 可以在入门 STM32 之后, 买一本飞行器 DIY 的书, 边做边学入门级的书籍推荐四轴飞行器 DIY 基于 STM32 微控制器, 见图 44
图 44 四轴飞行器 DIY 基于 STM32 微控制器
4.2.3 淘宝众筹
学会了 STM32, 想自己做产品, 如何实现自己的梦想, 淘宝众筹吧做出产品原型, 用别人的钱为自己的梦想买单
淘宝众筹科技类网址: 这里面有很多小玩意都可以用 STM32 实现, 只要你的创意到了, 就会有人买单, 前提是我们要先学会 STM32
https://hi.taobao.com/market/hi/list.php?spm=a215p.1596646.1.8.LbVyJk#type=121288001
图 45 淘宝众筹科技类
4.3 STM32 怎么选型
4.3.1 STM32 分类
STM32 有很多系列, 可以满足市场的各种需求, 从内核上分有 Cortex-M0M3M4 和 M7 这几种, 每个内核又大概分为主流高性能和低功耗具体的见表格 42
单纯从学习的角度出发, 可以选择 F1 和 F4,F1 代表了基础型, 基于 Cortex-M3 内核, 主频为 72MHZ,F4 代表了高性能, 基于 Cortex-M4 内核, 主频 180M
之于 F1,F4(429 系列以上) 除了内核不同和主频的提升外, 升级的明显特色就是带了 LCD 控制器和摄像头接口, 支持 SDRAM, 这个区别在项目选型上会被优先考虑
表格 42 STM8 和 STM32 分类
CPU 位数 | 内核 | 系列 | 描述 |
32 | Cortex-M0 | STM32-F0 | 入门级 |
STM32-L0 | 低功耗 | ||
Cortex-M3 | STM32-F1 | 基础型,主频 72M | |
STM32-F2 | 高性能 | ||
STM32-L1 | 低功耗 | ||
Cortex-M4 | STM32-F3 | 混和信号 | |
STM32-F4 | 高性能,主频 180M | ||
STM32-L4 | 低功耗 | ||
Cortex-M7 | STM32-F7 | 高性能 | |
8 | 超级版 6502 | STM8S | 标准系列 |
STM8AF | 标准系列的汽车应用 | ||
STM8AL | 低功耗的汽车应用 | ||
STM8L | 低功耗 |
4.3.2 STM32 命名方法
这里我们以秉火 F429 至尊版用的型号 STM32F429IGT6 来讲解下 STM32 的命名方法
表格 43 STM32F429IGT6 命名解释
- | STM32 | F | 429 | I | G | T | 6 |
家族 | STM32 表示 32bit 的 MCU | ||||||
产品类型 | F 表示基础型 | ||||||
具体特性 | 429 表示高性能且带 DSP 和 FPU | ||||||
引脚数目 | I 表示 176pin,其他常用的为 C 表示 48,R 表示 64,V 表示 100,Z 表示 144,B 表示 208,N 表示 216 | ||||||
FLASH 大小 | G 表示 1024KB,其他常用的为 C 表示 256,E 表示 512,I 表示 2048 | ||||||
封装 | T 表示 QFP 封装,这个是最常用的封装 | ||||||
温度 | 6 表示温度等级为 A :-40~85° |
有关更详细的命名方法见图 46
图 46 STM8 和 STM32 命名方法, 摘自 STM8 和 STM32 选型手册
4.3.3 选择合适的 MCU
了解了 STM32 的分类和命名方法之后, 就可以根据项目的具体需求先大概选择哪类内核的 MCU, 普通应用, 不需要接大屏幕的一般选择 Cortex-M3 内核的 F1 系列, 如果要追求高性能, 需要大量的数据运算, 且需要外接 RGB 大屏幕的则选择 Cortex-M4 内核的 F429 系列
明确了大方向之后, 接下来就是细分选型, 先确定引脚, 引脚多的功能就多, 价格也贵, 具体得根据实际项目中需要使用到什么功能, 够用就好确定好了引脚数目之后再选择 FLASH 大小, 相同引脚数的 MCU 会有不同的 FLASH 大小可供选择, 这个也是根据实际需要选择, 程序大的就选择大点的 FLASH, 要是产品一量产, 这些省下来的都是钱啊有些月出货量以 KK(百万数量级) 为单位的产品, 不仅是 MCU, 连电阻电容能少用就少用, 更甚者连 PCB 的过孔的多少都有讲究项目中的元器件的选型的水深着啊, 很多学问
1. 如何分配原理图 IO
在画原理图之前, 一般的做法是先把引脚分类好, 然后才开始画原理图, 引脚分类具体见表格 44
表格 44 画原理图时的引脚分类
引脚分类 | 引脚说明说明 |
电源 | (VBAT),(VDD VSS),(VDDA VSSA),(VREF+ VREF-) 等 |
晶振 IO | 主晶振 IO,RTC 晶振 IO |
下载 IO | 用于 JTAG 下载的 IO:JTMS,JTCK,JTDI,JTDO,NJTRST |
BOOT IO | BOOT0,BOOT1,用于设置系统的启动方式 |
复位 IO | NRST,用于外部复位 |
上面 5 部分 IO 组成的系统我们也叫做最小系统 | |
GPIO | 专用器件接到专用的总线,比如 I2C,SPI,SDIO,FSMC,DCMI 这些总线的器件需要接到专用的 IO |
普通的元器件接到 GPIO,比如蜂鸣器,LED,按键等元器件用普通的 GPIO 即 | |
如果还有剩下的 IO,可根据项目需要引出或者不引出 |
2. 如何寻找 IO 的功能说明
要想根据功能来分配 IO, 那就得先知道每个 IO 的功能说明, 这个我们可以从官方的数据手册里面找到在学习的时候, 有两个官方资料我们会经常用到, 一个是参考手册 (英文叫 Reference manual), 另外一个是数据手册 (英文叫 Data Sheet) 两者的具体区别见表格 45
表格 45 参考手册和数据手册的内容区别
手册 | 主要内容 | 说明 |
参考手册 | 片上外设的功能说明和寄存器描述 | 对片上每一个外设的功能和使用做了详细的说明,包含寄存器的详细描述.编程的时候需要反复查询这个手册. |
数据手册 | 功能概览 | 主要讲这个芯片有哪些功能,属于概括性的介绍.芯片选型的时候首先看这个部分. |
引脚说明 | 详细描述每一个引脚的功能,设计原理图的时候和写程序的时候需要参考这部分. | |
内存映射 | 讲解该芯片的内存映射,列举每个总线的地址和包含有哪些外设. | |
封装特性 | 讲解芯片的封装,包含每个引脚的长度宽度等,我们画 PCB 封装的时候需要参考这部分的参数. |
一句话概括: 数据手册主要用于芯片选型和设计原理图时参考, 参考手册主要用于在编程的时候查阅官方的这两个文档可以从官方网址里面下载: http://www.stmcu.org/document/list/index/category-150, 也可以从我们配置的光盘资料里面找到
在数据手册中, 有关引脚定义的部分在 Pinouts and pin description 这个小节中, 具体定义见表格 46
表格 46 数据手册中对引脚定义
表格 47 对引脚定义的解读
名称 | 缩写 | 说明 |
① 引脚序号 | 阿拉伯数字表示 LQFP 封装,英文字母开头的表示 BGA 封装.引脚序号这里列出了有 8 种封装型号,具体使用哪一种要根据实际情况来选择. | |
② 引脚名称 | 指复位状态下的引脚名称 | |
③ 引脚类型 | S | 电源引脚 |
I | 输入引脚 | |
I/O | 输入 / 输出引脚 | |
④ I/O 结构 | FT | 兼容 5V |
TTa | 只支持 3V3,且直接到 ADC | |
① | B | BOOT 引脚 |
① | RST | 复位引脚,内部带弱上拉 |
⑤ 注意事项 | 对某些 IO 要注意的事项的特别说明 | |
⑥ 复用功能 | IO 的复用功能,过 GPIOx_AFR 寄存器来配置选择.一个 IO 口可以复用为多个功能,即一脚多用,这个在设计原理图和编程的时候要灵活选择. | |
⑦ 额外功能 | IO 的额外功能,通过直连的外设寄存器配置来选择.个人觉得在使用上跟复用功能差不多. |
3. 开始分配原理图 IO
比如我们的 F429 至尊版使用的 MCU 型号是 STM32F429IGT6, 封装为 LQFP176, 我们在数据手册中找到这个封装的引脚定义, 然后根据引脚序号, 一个一个复制出来, 整理成 excel 表具体整理方法按照表格 44 画原理图时的引脚分类即可分配好之后就开始画原理图
4.3.4 PCB 哪里打样
设计好原理图, 画好 PCB 之后, 需要把板子做出来, 进行软硬件联调首先得 PCB 打样, 这里我推荐一家我经常打样的厂家, 深圳嘉立创 (JLC), 行业标杆, 良心价格, 网址: http://www.sz-jlc.com 一块 10CM*10CM 以内的板子, 三天做好, 50 块就可以搞定, 还包邮, 简直便宜到掉渣如果你足够懒, 不想自己焊接电阻电容二三极管什么的, 嘉立创还可以帮你把 PCB 样板上的阻容贴好给你, 打样贴片一条龙
样品做好了, 软硬件什么都 OK, 要小批量怎么办? 还是找 JLC
来源: http://www.bubuko.com/infodetail-2487633.html