本章参考资料:1、《STM8和STM32产品选型手册》2、SetupSTM32CubeMX-4.11.0.exe
4.1 什么是STM32
STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的32位控制器当中,STM32可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。
4.1.1 STM32诞生的背景
51 是嵌入式学习中一款入门级的精典 MCU,因其结构简单,易于教学,且可以通过串口编程而不需要额外的仿真器,所以在教学时被大量采用,至今很多大学在嵌入式教学中用的还是 51。51 诞生于 70 年代,属于传统的 8 位单片机,如今,久经岁月的洗礼,既有其辉煌又有其不足。现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对 MCU 的性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。面对这些要求,51 现有的资源就显得得抓襟见肘。所以无论是高校教学还是市场需求,都急需一款新的 MCU 来为这个领域注入新的活力。
基于这样的市场需求, ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3 微控制器内核。紧随其后,ST(意法半导体)公司就推出了基于 Cortex-M3 内核的 MCU—STM32。STM32 凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多 Cortex-M3 MCU 中脱颖而出,成为最闪亮的一颗新星。STM32 一上市就迅速占领了中低端 MCU 市场,受到了市场和工程师的无比青睐,颇有星火燎原之势。
作为一名合格的嵌入式工程师,面对新出现的技术,我们不是充耳不闻,而是要尽快吻合市场的需要,跟上技术的潮流。如今 STM32 的出现就是一种趋势,一种潮流,我们要做的就是搭上这趟快车,让自己的技术更有竞争力。
4.2 STM32能做什么
STM32属于一个微控制器,自带了各种常用通信接口,比如USART、I2C、SPI等,可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都有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至尊版资源对比
除了这几个重要资源的对比,我们的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-M0、M3、M4和M7这几种,每个内核又大概分为主流、高性能和低功耗。具体的见表格 42。
单纯从学习的角度出发,可以选择F1和F4,F1代表了基础型,基于Cortex-M3内核,主频为72MHZ,F4代表了高性能,基于Cortex-M4内核,主频180M。
之于F1,F4(429系列以上)除了内核不同和主频的提升外,升级的明显特色就是带了LCD控制器和摄像头接口,支持SDRAM,这个区别在项目选型上会被优先考虑。
表格 42 STM8和STM32分类
4.3.2 STM32 命名方法
这里我们以秉火F429至尊版用的型号STM32F429IGT6来讲解下STM32的命名方法。
表格 43 STM32F429IGT6命名解释
有关更详细的命名方法见图 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 画原理图时的引脚分类
2. 如何寻找IO的功能说明
要想根据功能来分配IO,那就得先知道每个IO的功能说明,这个我们可以从官方的数据手册里面找到。在学习的时候,有两个官方资料我们会经常用到,一个是参考手册(英文叫Reference manual),另外一个是数据手册(英文叫Data Sheet)。两者的具体区别见表格 45。
表格 45 参考手册和数据手册的内容区别
一句话概括:数据手册主要用于芯片选型和设计原理图时参考,参考手册主要用于在编程的时候查阅。官方的这两个文档可以从官方网址里面下载:http://www.stmcu.org/document/list/index/category-150,也可以从我们配置的光盘资料里面找到。
在数据手册中,有关引脚定义的部分在Pinouts and pin description这个小节中,具体定义见表格 46。
表格 46 数据手册中对引脚定义
表格 47 对引脚定义的解读
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。
上一篇:第3章 如何用DAP仿真器下载程序—零死角玩转STM32-F429系列
下一篇:第6章 新建工程-寄存器版—零死角玩转STM32-F429系列
推荐阅读
史海拾趣
在稳固国内市场的同时,Electrocube Inc公司积极开拓国际市场。公司参加了多个国际电子展会,与全球知名电子企业建立了广泛的合作关系。通过不断的市场拓展,Electrocube Inc公司的产品已经远销欧美、亚洲等多个国家和地区,实现了跨越式的发展。
随着技术的不断进步和市场的变化,EETools意识到必须不断创新才能保持竞争力。公司投入大量研发资源,对嵌入式开发工具进行技术升级和产品优化。经过数年的努力,EETools成功推出了一系列具有领先技术的嵌入式开发工具,如高性能的芯片编程器、智能调试器等。这些产品不仅提高了客户的工作效率,还降低了成本,赢得了市场的广泛认可。
在1948年,当美国民众开始大量购买电视机时,电视机的维修需求也随之增加。芝加哥的企业家卡尔·科恩(Carl Korn)和菲利普·班(Philip Ban)注意到了这一市场机会。他们发现,当时缺乏能够轻松测试电视组件的设备,于是决定自己动手制作。两位创业者从车库起步,开始制造自己的测试设备,并成立了中央电视服务公司。他们的业务迅速扩展,开始向其他电视维修店销售CRT再生器和真空管测试仪,为公司的后续发展奠定了坚实的基础。
随着市场环境的不断变化和竞争的加剧,Fibrefab面临着前所未有的挑战。为了应对这些挑战,Fibrefab开始加快转型升级的步伐。公司加大了对新兴技术的研发投入,如5G、物联网和云计算等,以打造更加智能、高效和灵活的光纤通讯解决方案。同时,Fibrefab还积极优化生产流程和提高产品质量,以满足客户对高性能、高品质产品的需求。
DS-IMP公司非常重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供丰富的培训和学习机会。同时,公司还注重团队建设和文化建设,通过组织各种团队活动和文化建设活动,增强员工的凝聚力和归属感。这些努力使得公司拥有一支高素质、专业化的团队,为公司的发展提供了坚实的人才保障。
在快速发展的过程中,Ecera Comtek Corp公司始终关注企业社会责任的践行。公司积极参与各种公益活动,为社会做出积极贡献。例如,在自然灾害发生时,Ecera Comtek Corp公司积极捐赠通信设备,帮助灾区恢复通信联系;在偏远地区,公司还捐建了多所希望小学,为当地的孩子们提供了良好的学习环境。这些公益活动不仅提升了Ecera Comtek Corp公司的品牌形象,也增强了员工的凝聚力和归属感。
ICL7107是一块应用非常广泛的集成电路。它包含3 1/2位数字A/D转换器,可直接驱动LED数码管,内部设有参考电压、独立模拟开关、逻辑控制、显示驱动、自动调零功能等。这里我们介绍一种她的典型应用电路--数字电压表的制作。其电路如附图。 制作时, ...… 查看全部问答∨ |
引 言 对于数字信号处理应用来说,数据的通信很关键。在TI公司的DSP/BIOS环境下有3种通信方式,即基于管道(PIP,pipe)的通信、基于流(SIO,stream I/O)通道的通信以及基于主机(HST,host)通道的通信。每一种通信方式都是通过调度其相应的内 ...… 查看全部问答∨ |
请问有谁懂MC9S08QE128这个芯片的使用,及程序的编写。 能给我一个简单的程序例子吗?带像51那样的引脚定义那种。 例如:51程序如下:定时器每1分钟控制继电器 希望能用MC9S08QE128编个类似以下的程序,十分感谢!!! #include <reg51.h> ...… 查看全部问答∨ |
|
(北京、上海、深圳、成都、武汉、西安) 北京华清远见科技信息有限公司(以下简称华清远见)是中国领先的嵌入式技术服务机构,公司于2004年注册于中国北京海淀高科技园区,核心业务定位在为企业和个人提供高端的嵌入式培训解决方案,为中国嵌入式 ...… 查看全部问答∨ |
|
最近做IAP升级,但是一直觉得程序下进去了(0x10000起的地址),但就是不运行新程序。我把写Flash的地方贴出: // 进行 IAP 操作 #define APP_2_ADDR 0x10000 & ...… 查看全部问答∨ |
贴出代码,大侠们帮忙看看,先谢谢了!main.c#include \"main.h\"GPIO_InitTypeDef GPIO_InitStructure;ErrorStatus HSEStartUpStatus; #define PC0_H GPIO_SetBits(GPIOC, GPIO_Pin_0) // PC3 高电 ...… 查看全部问答∨ |
单片机设计与开发硬件原理图(点击此处下载) 单片机设计与开发模拟试题(点击此处下载) 【团购】单片机设计与开发【全国电子专业人才与技能大赛】竞赛使用开发板(51单片机) https://bbs.eeworld.com.cn/viewth ... e%3D3&frombbs=1 [ 本帖 ...… 查看全部问答∨ |
#include"msp430g2553.h" //#include "io430.h" int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; //设置P1.0为输出 P1DIR|=0X01 ...… 查看全部问答∨ |