在MCU的学习中,大部分人都是学习别人的开发板,例如正点原子、野火等,优点是有可靠的教程和代码,缺点是容易让人有种自己全部都学会的了错觉,听了课程编写了代码,运行正常。
这个时候,可以尝试自已做一块属于自己的开发板,尽管它的电气特性可能没有那么好,没有达到商用的标准,但这个过程中会踩到很多坑,这样对驱动的理解才会更进一步。MCU的开发板基本都是双层版,不要去仿制正点原子或野火的板子,最好自己设计,参考官方文档资料,建议提高一下动手能力,也提高了自己的软件开发水平。
本人大学期间做的东西基本都是在学长的基础上修改的。毕业了,公司产品从ST32转向国产GD32,发现自己在一些方面学习的很模糊,没有学习到精髓。所以设计一款兼容STM32F207和GD32F207的开发板,用来重温学习。
01
电源
下图来自STM32F207的datasheet。
①表示Vcap1和Vcap2接了2.2uf的电容接地,每个接1个电容;
②表示VDD1到VDD15接上VDD电源,再接电容,接地。Vss接地。PCB布局,尽量把电容离管脚近;
③表示可能有15个VDD,同理Vcap1和Vcap2只有两个方块,说明有两个电源引脚;
④表示VDDA连接VDDA,VDDA和VSSA,那么就是他们给ADC等模块供电,没有的话,就是VDD和VSS供电。其中Vref 和Vref-是ADC模块基准电压,可以直接连VDDA和VSSA;
⑤必须其中有一个VDD连接上4.7uf电容,(注意:STM32F10系列必须是VDD_3连接4.7uf电容);
⑥表示Vref 可以连接其他的基准电压,但是要连接10nf电容 1uf电容,其实就是并联。
注释:
10nf 1uf 就是并联电容
100nf = 104 10nf = 103 1uf=105
02boot
下图见:STM32F207用户参考手册,编号RM0033
boot0可以不下拉电阻的,片内有下拉电阻,实际项目中,还是需要下拉电阻,保证在复杂电磁环境下从Flash启动;
采用跳电阻的形式选择,实际项目,只需要BOOT0就好,学习的板子,两个都设计吧。
STM32F207官方评估板电路:
03复位电路
下图见datasheet
上图看出,官方建议下拉0.1uF电容,再接复位按键,当管脚是低电平的时候复位,官方评估板电路采用电阻降压,注释donot fit,
04晶振
采用3225封装的无源贴片晶振。
晶振资料
Load Capacitance:负载电容
个人一般配18PF电容
下图是ST的评估板原理图
其中,低速时钟为了片内RTC
05JTAG
根据ST的评估板,JTAG有上下拉电阻,实际应用中,使用SWD接口,只需要VCC,TMS,TCK,GND四根信号线,没有上下电阻也没有影响。
06兼容设计
1、复位采用max809
2、无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬空
3、兼容GD207和ST207,原理图上做一下图示四种处理
差异区别:
07外设资源
设计兼容STM32F207和GD32F207的开发板,其他外设资源电路直接参看原理图。
板载资源有:
USB串口
网口(RTL8201)
两颗LED
RTC
NorFlash
电源(5V转3.3V)
TF卡
触摸按键
4个独立按键
8位并口LCD
USB
ESP8266的WIFI模块
ESP8266的USB下载口
原理图和PCB源文件可使用下面链接或者点击文末“阅读原文”进行下载:
https://github.com/strongercjd/STM32F207VCT6
设计缺陷
四个角忘记放置定位孔
BOOT0和BOOT1的丝印错写为GND
很水的原理图和layout
没有纽扣电池供电给RTC
免责声明:上述设计仅供学习参考使用,在普通室温环境下使用没问题,对于参考电路造成商业产品或工业产品故障,本人概不负责。