【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
从linux卡片电脑转到mcu领域,第一个需要适应的估计就是原理图。之前学习linux的时候,我们大概只需要知道一些接口就好了,比如电源键、usb、网口、hdmi口、音频口、tf卡槽等等,整个学习的过程和使用电脑差不多,比较容易。但是现在转到mcu上面,就稍微复杂一点了,我们除了知道一些接口,还需要知道电路的基本原理是啥,比如说输入、输出、晶振、复位、下载、电源这些。
今天我们趁着学习stm32f103核心板的机会,不妨学习下应该如何看mcu原理图。
1、首先看mcu本身
mcu是一个电路的核心,它是最应该被关注的。这里mcu比较简单,总共只有48pin。复杂的电路中,soc会分成多个bank进行介绍的,比如bank0、bank1等等,因为pin脚实在是太多了。
2、电源电路
mcu本身需要的是3.3v,所以这里需要一个ldo芯片,把5v降压成3.3v。至于5v的来源很多,可以是usb输入,也可以是外接接口输入,都是可以的。
3、晶振
大部分mcu都有两个晶振,一个是给mcu工作使用的,比如这里的8M晶振;还有一个是给RTC使用的。做的好的mcu电路,都会带一个纽扣电池,这样即使pcb下电了,还会保持住mcu里面的时钟电路。
4、reset电路
复位电路相当于是系统上电后,给一个初始状态。启动之后,后续系统的执行就取决于firmwar固件的状态了。我们在给mcu下载好固件之后,如果希望板子立即开始运行,一般也要手动复位一下。
5、下载电路
mcu编译好的固件,都是需要通过swd接口下载到开发板上面。这里的电路,只是把swd接口扇出而已。**真正下载的时候,我们还需要外接一个dap、st-link v2、jlink这样的下载设备。**在keil里面选择好,就可以下载了。
6、启动方式选择
mcu一般自带两个pin,一个是BOOT0、一个是BOOT1,如果不做特别大的修改,一般把BOOT0和BOOT1设置为0即可。当然,设置为0,还是设置为1,这个取决于自己的需求。可以通过一个短接针来解决。
7、最简单的点灯电路
一切都准备好之后,就可以点灯了。电路中有两个led,一个是电源灯,这个不需要我们控制;还有一个是pc13控制的led。如果pc13设置为0,那么led亮起;反之led熄灭。
8、usb口
本身stm32f103其实是支持usb接口,只不过大家用的不多而已,直接把它当成是电源的供给者罢了。当然,这里的usb为了小巧,一般都是用micro usb代替的。
9、外接pin
既然是核心板,那么几乎所有的信号都要给出来的,只是一些设置好的信号就不再输出了,比如说BOOT信号、晶振信号、下载信号等等。本身mcu的电路不复杂,熟能生巧,一开始看的时候可能有点不明白,不过时间长了,总能弄明白的,不必过于担心。