【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多mcu的频率其实是不高的,从24M,到36M、48M、72M不等。以前我都是认为,mcu只能用在消费领域,或者是工业领域,直到有一次看到f103被用到了医疗领域,其实还是很吃惊的。不过,后来也慢慢想通了,相比较性能,医疗产品的稳定性要求还是很高的。这里面的佼佼者,就是stm32f103c8t6,它是一款非常好的入门芯片。学好了它,不仅有利于其他芯片的学习,还可以进一步用到国产化mcu上面。
很多的国产mcu号称,不仅可以pin对pin兼容f103,甚至是寄存器兼容,不需要改一行代码,就可以让固件跑起来。 这对客户就很有吸引力。相对而已,pin对pin兼容通常容易做到,也很快。但是软件兼容,这个需要点功夫的。
1、最小系统
mcu的最小电路基本都大同小异,大家可以在网上很容易找到电路图。就算不好找,也可以在电商网站上面购买到核心板,通过购买的方式也可以从厂家那边拿到电路图。
2、基础电源
很多的核心板都是通过usb输入电源。这主要是因为usb的基础电压就是5v,不过和51芯片不一样的是,stm32的芯片电压是3.3v,所以这里面需要分成两步。第一步,输入5v电压,
有了电压之后,就可以通过转换芯片转成3.3v,
3、晶振
MCU要想启动起来,晶振肯定是少不了的。stm32的晶振一般有两种,一种是cpu运行的晶振,这个需要进行倍频处理的。另外一个是rtc晶振,这个要比之前那个准一点,当然也和外界温度有关系。
4、复位电路
复位相当于让MCU从一个确定的初始状态开始跑起来。也就是说,从这一刻开始,MCU开始读取代码、执行代码,所有的软件都是我们自己写的。之前的状态如果说是未知的,那么现在开始,后续的软件逻辑必须是详尽且可靠的。
5、启动模式
熟悉stm32开发的同学都知道,stm32支持flash启动,也支持sram启动。前者一般是产品发布的时候使用;后者一般是产品调试的时候使用。毕竟,在mcu调试的时候,很多时候都需要频繁烧入hex文件的,这个时候如果用sram烧入,速度要快得多。当然缺点也很明显,如果是sram烧录,一掉电,就什么也没有了。
6、版本烧入
较早之前,版本烧入一般还是jtag的形式。不过目前来说,大家基本都支持swd烧入。swd只有两根pin,一个是swdio,一个是swdclk,类似于i2c总线,使用非常方便。不仅stm32支持swd烧入,很多国产化的mcu也支持swd烧入。
7、去耦电容
在mcu上面,有很多的vdd和vss。其中每一个vdd旁边,默认推荐加一个去耦电容,这也是为了保证mcu的正常使用。一个电路里面,除了vdd,还有vcc、vdda、vbat等形式,大家可以找一下这些电压有什么区别。
8、最简单的gpio输出
为了确认上电后,stm32核心板是否ok,一般需要做两步。第一步是确认电源ok,还有一步是确认程序真的可以跑起来,所以会准备一个简单的gpio输出电路。
9、双排针引出
本身很多的mcu核心板是要作为其他用途使用的,因此mcu上面的信号都要通过排针引出去。这样对应的spi、iic、pwm、ttl信号才能被外界所使用。
10、mcu的真容
本身stm32的系列非常多,有1、4、7等很多很多的细分系列。每一个系列下面还可以再分,比如说以1为例,可以进一步分成103、105、107。这还没完,子系列里面可以根据ram、flash、gpio、封装的不同继续分下去。比如我们今天用的是stm32f103c8t6,类似的mcu还有stm32f103c6t6、stm32f103zet6等等。所以,整个mcu的家族非常多,也分的非常细。
11、学习和准备pcb布线
本身stm32f103c8t6学习资料就很多,不管是硬件,还是软件,都很容易找到对应的电路和代码。本身芯片好焊接,引脚只有48个,不算多所以非常建议大家可以拿过来学习、测试和应用。有了它做硬件基础,可以进一步发展其他电路,也可以帮助自己快速掌握mcu的代码开发流程。