嵌入式电路设计(stm32电路设计)
Posted 费晓行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式电路设计(stm32电路设计)相关的知识,希望对你有一定的参考价值。
【 声明:版权,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
在立创开源硬件平台上面,stm32可以说是使用最多的mcu芯片。它的核心是arm core。一方面,工业上比较认可stm32,另外一方面,我们也不得不承认意法半导体在校园推广mcu方面确实做的很好。当然,目前芯片普遍比较紧俏,之前便宜的几块钱的stm32,都要几十甚至上百了,这已经是后话了。
stm32用的比较多的stm32f103、stm32f3、stm32f4这些。现在,除了上面说的这些,又出现了stm32f7系列,就我的认知来说,目前用的还不多。目前,stm32多用在工业上,电机、仪表、运动控制、采集方面,都有很多的应用场景。
此外,stm32还容易使用rtos,在一些实时要求比较高的地方,用它是非常方便的。很多时候,除了实时控制,还需要人机交互,所以这个时候,stm32旁边还会搭配一个linux soc,这都是很正常的现象。当然,要是遇到图像处理方面的内容,或者并发要求比较多的场合,stm32配合fpga,也不是很稀奇的情况。当然,用了rtos也不代表stm32就是实时控制了,这个等有机会再说。
为了说明stm32的最小电路,可以找一个电路图来学习下。比如这,https://oshwhub.com/gxt_0/STM32F103C8T6hu-xin-ban
1、整体观察
图片仅仅给出了2d图,所以也不知道后来是不是真正的打样出来了。整体的功能还是比较简单的,就是一个核心板,把所有的功能都用排针引出来了。
2、主芯片
主芯片就是stm32f103c8t6,48个引脚,qfn封装,比较简洁。
3、时钟
stm32f103的时钟可以多说一说,它有两个时钟。一个是32.768k这个,主要用于定时;另外一个是8M这个,是执行指令需要用到的时钟。
4、电压
和stc不一样,stm32芯片多采用3.3v,所以需要一个降压芯片。常用的芯片有ams1117。一个电路中出现多种电压是很常见的,比如在fpga或者soc中,可能同时有5v、3.3v、2.5v、1.8v、1.2v等等。
5、启动方式
stm32支持多种启动方式,也就是说stm32执行的第一条指令可能来自于不同的地方。比如说,可能来自于sram,可能来自于内部flash,可能来自于外部flash,这个都取决于BOOT0、BOOT1的配置。有的同学说,stm32第一条指令怎么可能来自于sram呢,其实只要jtag或者swd加载进去就可以。
6、调试和程序烧入接口
这是stm32特有的debug和烧入接口,类似于jtag。外部连接stlink即可,软件上搭配keil,就可以调试或者烧入程序了。
7、其他和stc差不多的电路
7.1 复位电路
7.2 usb电路,一部分用来供电,一部分stm32作为pc的usb device,可以模拟u盘
7.3 led,一个是上电后点亮,一个需要程序编程才能解决
7.4 电源滤波电路
7.5 连接接口
8、美中不足的地方
应该安排一个usb2uart的芯片,比如ch330n,主要可以方便进行调试。使用stm32的时候最好发挥它的强项,也就是运动控制这块。如果只是做一点简单的采集、显示、按钮这些,还不如用stc51。另外在实时性方面,这也是mcu的强项,不是说大的soc做不到,而是不划算。linux本身是个很大的软件平台,上面的软件包很多,但也很消耗资源,所以就专门的运动控制这块,尤其是电机控制这块,可以考虑一下stm32。当然,如果买不到,国产的gd32也是不错的选择。
以上是关于嵌入式电路设计(stm32电路设计)的主要内容,如果未能解决你的问题,请参考以下文章