在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的开发板的更多相关文章

  1. 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?

    一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计硬件积木的! ...

  2. 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  3. 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  4. 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  5. 如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)

    当前进展: 一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计 ...

  6. 一款兼容IE6并带有多图横向滚动的jquery特效

    一款兼容IE6并带有多图横向滚动的jquery特效,自动切换多个图片的jquery特效效果, 为大家分享这个的原因是,这款特效在兼容IE6上面很完美,实用性就广很多了. 适用浏览器:IE6.IE7.I ...

  7. jQuery编写的一款兼容IE6的图片轮播幻灯片

    jQuery编写的一款兼容IE6的图片轮播幻灯片,很不错的一款jquery特效.大家可以下载下来研究研究. 每隔几秒就自动切换一波图片,此效果兼容性还做的不错,适合居多的浏览器. 适用浏览器:IE6. ...

  8. 如何设计一款优秀的短视频 SDK

    2017 年,短视频成为了创业的新风口,各种短视频 App 如雨后春笋般先后上线,视频越来越像文字.图片一样,成为每一个 App 不可或缺的一部分. 1. 包体一定要尽可能小 如何做到尽可能的减小 S ...

  9. .Net架构篇:思考如何设计一款实用的分布式监控系统?

    前言 无论从最早期的unix操作系统,还是曾经大行其道的单体式应用,还是现在日益流行的微服务架构,始终都离不开监控的身影.如windows的任务管理器,linux的top命令,都可以看作是监控的面板. ...

随机推荐

  1. mysql批量刷新用户密码

    不知道用户密码,并且不改变用户密码的情况下,批量刷新MySQL数据库用户的密码 select concat('alter user \'',user,'\'@\'',host,'\' identifi ...

  2. JavaSE05-数组

    1.概念 同一种类型数据的集合.其实数组就是一个容器. 2.优点 可以自动给数组中的元素从0开始编号,方便操作这些元素. 3.格式 1 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...

  3. 思想无语言边界:以 cglib 介绍 AOP 在 java 的一个实现方式

    0. 前言 上接:基于 Source Generators 做个 AOP 静态编织小实验 作为第三篇,我们基于cglib在java做一个简单的aop例子, 以此简单作为例子说一个思路在什么样的语言里面 ...

  4. Oracle数据导入Mysql中

    一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...

  5. Vue 修改成功之后我做了什么

    Vue 修改成功之后我做了什么 背景:前端将修改的数据传递到后端,后端返回成功之后,我们要将数据及时显示出来. 霸道方法一:重新请求接口 柔和方法二:修改成功之后的数据传递到源数据中,进行双向绑定显示 ...

  6. js 获取某月第一天和最后一天

    1.获取某月第一天和最后一天日期 function getDateByMonth (timeStamp) { let inDate = new Date(timeStamp) let year = i ...

  7. 5分钟看懂系列:Python 线程池原理及实现

    概述 传统多线程方案会使用"即时创建, 即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器 ...

  8. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  9. Ext CheckBoxGroup使用

    一.效果图展示 我这里主要是为了实现选择周期时间.如周一.周二.周三等 二.界面界面代码 下面就是我实现的代码,包含了界面.数据处理.回填数据等.可能架构的方式,您的代码和我的代码有差异,但是大体就是 ...

  10. svn忽略idea生成的本地配置文件

    为根目录添加svn属性svn:global-ignores 值为 *.iml .idea 多个值之间用换行分隔