如何做一块属于自己的最小系统板c8t6
组成电路
网上成熟的原理图,板子一抓一大把,所以本文章重点在授人以渔。
既然是要做,自然是要明确需要做哪些部分,一个最小系统板包含以下电路
- 稳压电路
- 晶振电路
- 外部高速时钟源(8MHz)
- 外部低速时钟源(32.768kHz)
- 复位电路
- 下载调试电路
- BOOT启动电路
稳压电路
由于一般使用usb接口(5v),而stm32芯片的电压需要3.3v,使用一般采用线性稳压(LDO)芯片进行降压处理。值得注意的一点是,LDO是将多余的电压通过发热消耗掉,所以工作时芯片发热会根据流过的电流增大而增加,其发热功率计算公式为 (输入电压 - 输出电压)* 经过电流
。
常用的LDO芯片为AMS1117,这个芯片有多种型号,能实现输出5v、3.3v、1.8v、1.5v、1.2v等。需要注意阅读芯片的数据手册,一般要留意几个常用参数:输出电压、最大输入电压、输出电流能力、最小压差(输入与输出之间的电压差)。
下图为AMS1117的经典电路,电容用于滤波,一大一小两个在滤波效果上更佳。
- 大电容:大电容具有较高的电容值,通常以微法(uF)或毫法(mF)为单位。它们在滤波电路中主要用于降低低频信号的通透性,从而过滤掉高频噪声和干扰。大电容可以存储能量,并在需要时释放,从而平滑电源电压。它们在稳压电源和电源去纹波方面非常有效。
- 小电容:小电容具有较低的电容值,通常以皮法(pF)或纳法(nF)为单位。它们在高频滤波中发挥重要作用,用于去除高频噪声和干扰。小电容可以提供低通滤波效果,帮助确保高频信号不会通过滤波器传递。
在许多滤波电路中,通常会同时使用大电容和小电容,以实现更全面的滤波效果。这种组合被称为"分频滤波"或"多级滤波",其中大电容用于降低低频噪声,小电容用于去除高频噪声,以提供更有效的滤波性能。
晶振电路
晶振对于芯片来说,就如同心脏对于人类,因此晶振的正常工作是一个很重要的事情。
尽管stm32芯片中有内部高速时钟,但RC振荡电路的精度相比于使用外部晶振,还是差了许多,所以还是建议外接晶振的。
那么精度差会导致什么问题?会导致延时不对,串口波特率有误差无法正常通信等等。
两个电容为耦合电容,在不同的芯片中,可能会不一样。一般在芯片手册会给出计算公式与典型电路。
还有晶振电路的pcb布局需要注意以下的点:
- 晶振与耦合电容、芯片的接线越短越好,并且要求等长对称
- 晶振底下不要布线
- 晶振不要放在pcb的边缘
- 晶振周围较粗的地线围起来
- 晶振外壳有条件可以考虑接地
复位电路
在Stm32官方的数据手册是有建议的复位引脚电路的
下载调试电路
对于stm32的下载调试分为两种:
- 使用stlink能实现烧录与调试功能
- 使用Stm32的ISP实现烧录,不能调试
如果是日常使用是推荐方案1,如果是属于商业产品对外发售则可以选择方案2。
这部分电路其实就是引出对应的引脚,没什么好介绍,但选择的方案会影响BOOT启动电路的设计。
BOOT启动电路
Stm32中存在两个BOOT引脚,分别是BOOT1与BOOT2,在上电的时候会根据两个BOOT引脚的电平进入对应的启动模式。
- 从主闪存存储器启动:主闪存存储器被映射到启动空间(
0x0000 0000
),但仍然能够在它原有的地址(0x0800 0000
)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000
或0x0800 0000
。 - 从系统存储器启动:系统存储器被映射到启动空间(
0x0000 0000
),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000
,其它产品原有地址为0x1FFF F000
)访问它。 - 从内置SRAM启动:只能在
0x2000 0000
开始的地址区访问SRAM。
这里用简单的话解释一下三种启动模式:
主闪存存储器:其实就是Flash,是正常启动、运行烧录进去的代码
系统存储器:其实就是Bootloader(引导程序),这个是芯片出厂时写入,不可改写、擦除的程序。一般功能是解析串口1收到的数据,并且写入Flash。(常被成为 ISP程序)
内置SRAM:非常少使用,一般用于调试。
如果选择使用STLINK进行烧录调试,是不需要改变BOOT引脚电平的,因此这部分其实可以省去的,就只需要将BOOT0接地即可。
但如果选择使用Stm32的ISP实现烧录,那么就要使用 按键 / 跳线帽 / 预留上拉电阻
实现BOOT0引脚电平的切换功能。