【前言】
hello 大家周一好,今天钛叔给大伙讲讲有关STM32单片机系统板的一些设计经验,好像还是头一次讲MCU哈,之前一直在讲功能模块。STM32在国内可谓是火了很长很长段时间了,这应该是ST公司在国内卖的芯片中最受欢迎之一了吧,还记得以前学生时候玩了51单片机之后就玩的STM32,印象不可谓不深刻~ STM32要讲的东西太多太多,钛叔今天主要以STM32F103Cx(48管脚)为例,给大伙讲讲STM32小系统硬件设计。
【硬件电路设计】
以下是钛叔STM32小系统的原理图和PCB,以及是兼容该小系统的OLED屏的原理图和PCB,原理图将设计注意事项注明了设计注意事项,PCB上注明了相关丝印,希望大家也养成这些好习惯~ 做的东西越多你越会发现 硬件设计大多数地方都不难,主要就在于细节上,谁能考虑的细节越多就能避免后期不必要的调试麻烦,所以建议大家一开始就养成注重细节、谨慎的好习惯!
1、关于芯片外围。芯片外围设计比较简单,主要注意几个地方:
第一是晶振,晶振的谐振电容焊接的时候注意容值,如果误焊过大容值,将导致单片机无法正常工作;
第二是BOOT1和BOOT0的电平设置,参照下图可以,BOOT1和BOOT0决定了三种启动模式, BOOT[1:0]=11的情况是不支持烧写的,因此这里钛叔将BOOT1默认为零,通过BOOT0的高低电平来选择两种模式,BOOT0为我们常用的模式,即正常启动烧写的程序,而BOOT0=1启动片内引导程序的意思表明此时可以通过串口烧写程序。
第三是各个供电管脚记得放置一个小电容。
在我们调试MCU小系统硬件的时候,首先第一步是确认电源是否正确,第二是确定时钟是否正确,第三确定复位是否正确。从该步骤排查问题,一般都能找出线索~
另外钛叔设计了一片AT24C02,该芯片是一个2K位串行CMOS E2PROM用于存储掉电需要保护的信息。
2、关于电源以及USB接口。USB接口采用的是Mini USB,在Mini USB和Micro USB之间建议大家选择Mini USB,Micro USB虽然体积更小,但在使用的时候容易出现接触不良的情况,这可能很市场上元器件供货质量也有关系。USB数据交互引脚D+、D-,注意D+一定要加上拉电阻,否则电脑会读取失败。对于供电,USB进来5V之后经过一个500mA自恢复保险丝,通过一个自锁开关控制电源的闭合,板载AMS1117-3.3V的LDO将5V电源转换为系统所需的3.3V,该系统所需电流不大,所以完全能够满足。
3、关于其他接口。钛叔这里设计了一个TFT屏接口和OLED屏接口,都是网上很常用的接口线序,大家可以自己的需求来调整该接口。注意这里屏的复位引脚,钛叔是将该引脚连到MCU的复位引脚,也就是说每当MCU上电复位的时候屏也是同步复位,这样子可能对于一些屏初次上电会有问题,再次上电就正常的情况,因此大家也可以将屏的复位引脚连到MCU的普通IO口,在程序初始化里边去控制屏的复位以此来避免上述问题。
其他JTAG接口以及复位按键等都很简单,参照下图,另外钛叔用排针引出了5V以及3.3V,可以对外部设备供电,也可以通过外部给系统供电,对外供电注意电流大小即可。 除此之外,钛叔通过排针将MCU基本所有IO均引出,作为初学者建议也可以这样子设计,方便后期软件使用。BOOT0因为需要控制电平,所以大家可以在该引脚旁设置3.3V和GND,通过排针来选择模式。
4、关于PCB布局布线。对于该系统来说布局布线都相对比较简单,退耦电容尽量靠近管脚,晶振尽量靠近管脚,尽量使地平面完整。其他一些器件摆放合理不相互干涉即可,下面是钛叔的布局布线,大家可以参考参考
5、关于OLED,钛叔这里顺便简单讲讲OLED的原理图设计,第一是模式的选择,通过电阻的选焊可以实现IIC模式以及4SPI和3SPI模式;另外对于电源输入,钛叔这里设计了XC6206作为LDO,该芯片的Dropout-Voltage为0.25V,OLED屏一般最小支持3V供电,此时VCC_IN可以支持3.3V/5V输入。如果所用的OLED屏仅支持3.3V,那么这里的VCC_IN就需要尽量≥(3.3V+0.25V)电压。
以下是设计源文件,仅供参考:
链接:https://pan.baidu.com/s/10dgcKFDxWVJAeanLfQYuRA
提取码:hkyx