设计一款兼容ST207和GD207的开发板
在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
02、boot
下图见:STM32F207用户参考手册,编号RM0033
boot0可以不下拉电阻的,片内有下拉电阻,实际项目中,还是需要下拉电阻,保证在复杂电磁环境下从Flash启动;
采用跳电阻的形式选择,实际项目,只需要BOOT0就好,学习的板子,两个都设计吧。

STM32F207官方评估板电路:
03、复位电路
下图见datasheet
上图看出,官方建议下拉0.1uF电容,再接复位按键,当管脚是低电平的时候复位,官方评估板电路采用电阻降压,注释donot fit,
04、晶振
采用3225封装的无源贴片晶振。
晶振资料
Load Capacitance:负载电容
个人一般配18PF电容
下图是ST的评估板原理图
其中,低速时钟为了片内RTC
05、JTAG
根据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
点击查看本文所在的专辑,STM32F207教程
免责声明:上述设计仅供学习参考使用,在普通室温环境下使用没问题,对于参考电路造成商业产品或工业产品故障,本人概不负责。
设计一款兼容ST207和GD207的开发板的更多相关文章
- 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?
一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计硬件积木的! ...
- 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)
当前进展: 一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计 ...
- 一款兼容IE6并带有多图横向滚动的jquery特效
一款兼容IE6并带有多图横向滚动的jquery特效,自动切换多个图片的jquery特效效果, 为大家分享这个的原因是,这款特效在兼容IE6上面很完美,实用性就广很多了. 适用浏览器:IE6.IE7.I ...
- jQuery编写的一款兼容IE6的图片轮播幻灯片
jQuery编写的一款兼容IE6的图片轮播幻灯片,很不错的一款jquery特效.大家可以下载下来研究研究. 每隔几秒就自动切换一波图片,此效果兼容性还做的不错,适合居多的浏览器. 适用浏览器:IE6. ...
- 如何设计一款优秀的短视频 SDK
2017 年,短视频成为了创业的新风口,各种短视频 App 如雨后春笋般先后上线,视频越来越像文字.图片一样,成为每一个 App 不可或缺的一部分. 1. 包体一定要尽可能小 如何做到尽可能的减小 S ...
- .Net架构篇:思考如何设计一款实用的分布式监控系统?
前言 无论从最早期的unix操作系统,还是曾经大行其道的单体式应用,还是现在日益流行的微服务架构,始终都离不开监控的身影.如windows的任务管理器,linux的top命令,都可以看作是监控的面板. ...
随机推荐
- rhel6.4搭建rac前共享存储配置(iscsi+multipath+udev)
rhel6.4搭建rac前共享存储配置(iscsi+multipath+udev) server: IP配置: 192.168.12.30 192.168.12.40 添加一个100G磁盘/dev ...
- centos下配置Apache的https强制跳转
vim /etc/httpd/conf/httpd.conf 新增如下三行 RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) ...
- java中对象的简单解读
对象=属性(int double之类都是变量的属性)+方法(想要实现内容,所做的一套算法) 属性=变量的所有数据 方法(c语言中叫做函数)=算法 总而言之 对象就是 给他所需要的的数据-->& ...
- Intellij idea 创建java web
https://blog.csdn.net/qq_41592771/article/details/80577791 将tomcat服务器lib目录下面的servlet-api.jar复制到lib文件 ...
- flink连接器-流处理-读写redis
写入redis resultStream.addSink(new RedisSink(FlinkUtils.getRedisSinkConfig(parameters),new MyRedisMapp ...
- MySQL的修仙者之旅,不来看看你的修为如何吗?
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写 ...
- python之代码重构
在撸码过程中,总有很多代码需要重构,码一个问候用户的小例子,加深对代码重构的印象. 原始代码: 1 import json 2 3 filename = 'username.json' #定义文件名 ...
- MySQL:判断逗号分隔的字符串中是否包含某个字符串 && 如何在一个以逗号分隔的列表中的一个字段中连接MySQL中的多对多关系中的数据
需求: sql语句中,判断以逗号分隔的字符串中是否包含某个特定字符串,类似于判断一个数组中是否包含某一个元素, 例如:判断 'a,b,c,d,e,f,g' 中是否包含 'a',sql语句如何 ...
- 深入浅出!阿里P7架构师带你分析ArrayList集合源码,建议是先收藏再看!
ArrayList简介 ArrayList 是 Java 集合框架中比较常用的数据结构了.ArrayList是可以动态增长和缩减的索引序列,内部封装了一个动态再分配的Object[]数组 这里我们可以 ...
- Spring事务管理?
事务管理方式: 1.编码方案,不建议使用,具有侵入性,在原有的业务代码基础上去添加事物管理代码 2.声明式事务控制,基于AOP对目标进行代理,不具有侵入性,不需要修改原来的业务代码