设计一款兼容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命令,都可以看作是监控的面板. ...
随机推荐
- Cloudera Manager API使用
Cloudera Manager提供了很多API供用户进行访问,因此可以利用其提供的API进行大数据集群中各种服务的状态检测.监控以及服务的启停操作. 版本信息 Cloudera Manager 6. ...
- Eureka系列(六) TimedSupervisorTask类解析
为什么要单独讲解TimedSupervisorTask这个类呢?因为这个类在我们DiscoveryClient类的initScheduledTasks方法进行定时任务初始化时被使用得比较多,所以我 ...
- Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938
Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938 漏洞描述 2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020- ...
- ecshop v2 v3 EXP
import requests import binascii def get_v2Payload(code): '''Ecshop V2.x payload''' code = "{$ab ...
- XCTF EasyHook
无壳,使用IDA直接分析主函数 逻辑很简单,问题的关键是Hook,题目也是EasyHook, 会发现在生成文件后,文件内容是被加密后的,那就怀疑加密函数参与Hook 动态调试一步步来看,先进入4012 ...
- "Date has wrong format. Use one of these formats instead: %, Y, -, %, m, -, %, d." DateField使用input_formats参数
错误写法 : publish_date = serializers.DateField(format="%Y-%m-%d", input_formats="%Y-%m-% ...
- Jquery Ajax如何添加header参数
转自网络 1 $.ajax({ 2 type: "POST", 3 url: "http://192.168.0.88/action.cgi?ActionID=WEB_R ...
- codeblocks opengl glew freeglut 2020.11.15
https://wenku.baidu.com/view/28cd5ebfaf1ffc4fff47accf.html 一下为测试代码 /* ============================== ...
- JPA 缓存
JPA有两种类型的缓存: EntityManager自身就是一种缓存.事务中从数据库获取的和写入到数据库的数据会被缓存(什么样的数据会被缓存,在后面有介绍).在一个程序中也许会有很多个不同的Entit ...
- Mac电脑jsp连接mysql
四个步骤教你如何用jsp代码连接mysql 第一步:下载jdbc驱动 进入mysql官网:https://dev.mysql.com/downloads/connector/ 找到Connect/J ...