利用STM32F405RG制作pyBoard实验板
▌01 pyBoard实验板
1.pyBoard
pyBoard是可以通过 MicroPython 进行编程的实验板。由于它板子不太适合在面包板上实验,主要原因是它太宽了,无法做到向 RaspBerry Pi Pico 那样窄,可以直接插在 面包板 上进行实验。并且现在的价格臭脚昂贵,所以通过自行设计来制作小型的实验板。
在 pyBoard 基于MicroPython开发STM32FXX单片机 给出了基于STM32F405RG单片机制作pyBoard实验板的第一版本。并且实验了实验板的固件通过DFU烧制的过程,并通过 Thonny 环境,进行了 pyBoard基本实验 ,证实了整个开发过程的可行性。
▲ pyBoard管脚定义
2.设计合理接口
由于pyBoard本身具有很多端口,为了设计适合在面包板上进行实验的实验pyBoard,需要对于pyBoard外部接口进行适当的精简,选择种类丰富的一组(10个管脚)作为外部引脚输出。
采用单排针适合将实验板插在面包板上,但也可以使用双排插针的形式。
一种最基本的方式,就是利用pyBoard右侧单排插针设计即可。其中保罗有IO,Timer,SPI,I2C,DAC, ADC等端口。再配上对应的地线与+5V电源线。
▲ pyBoard右侧单排插针
▌02 制作实验板
1.设计电路板1
根据pyBoard 基于MicroPython开发STM32FXX单片机的实验,对其进行一定的简化,形成下面的实验电路板的设计。
▲ 实验电路板的原理图
通过快速制版形成测试电路板。
在STM32F405RG芯片上有两个小圆斑,较小的圆斑是管脚1的标记圆斑。
▲ 芯片上的管脚1标志
2.焊接调试
a)电路板上锡
在快速制版的PCB上预先对于引线上锡,便于后期的元器件焊接。
▲ 快速制版上锡之后的PCB
b)焊接元器件
▲ 焊接元器件之后的PCB
注:在第一版测试的时候将原来的用于时钟的晶体保留,而将12MHz的系统时钟晶体去掉。造成电路板无法被识别DFU。
▲ 电路板焊接局部
3.烧录固件
a)下载固件软件
从 Firmware for pyboard v1 或者 01Studdio pyBoard(STM32F405)资料下载 下载STM32F405RG固件。
实际烧录固件:
D:\zhuoqing\DesignCenter\MicroPython\PyBoard\ÁãÒ»¿Æ¼¼£¨01Studio£©MicroPython¿ª·¢Ì×¼þ£¨»ùÓÚpyboard STM32F05ƽ̨£©ÅäÌ××ÊÁÏ_2021-2-5\03-Ïà¹Ø¹Ì¼þ\03-pyBoard Plus\pybplus-20200916-v.12.dfu
b)短接Boot0与3.3V
▲ 使用短路子将BOOT0与VCC短接
重新将电路板接入微机的USB之后,计算机中出现STM Device in DFU Mode设备。
▲ 出现STM Device in DFU Mode
c)下载固件
使用 DfuSe 程序下载MicroPython固件:
▲ 烧录固件
d)重新启动测试版
将Boot0的短路子去除之后,重新将电路板接入微机的USB,则系统会出现:“PyBoard USB Comm Port(COM23)”。
▲ 重新接入USB,会出现COM(23)
同时计算机出现“PYBFLASH”磁盘,其中具有四个文件。
如果计算机对于PyBoard USB COMM Port 驱动没有安装,可以通过PYBFLASH安装虚拟串口的驱动程序。
▲ 出现的PYBFLASH磁盘
使用 Thonny 软件通过虚拟串口连接开发板。
▲ 使用Thonny连接pyBoard
使用测试LED简单程序,实验电路板的功能。
▲ 测试LED闪烁程序
import pyb
import time
led = [pyb.LED(i) for i in range(1,5)]
print(led)
while True:for l in led:l.on()time.sleep(.25)for l in led:l.off()time.sleep(.25)
▌03 实验板性能测试
1.测量端口最短访问时间
(1)利用LED测量
import pyb
import time
led = pyb.LED(1)
while True:led.toggle()led.toggle()led.toggle()led.toggle()time.sleep(.1)
▲ 利用LED测量端口最短访问时间
(2)利用GPIO测量
import time
from pyb import Pin
p_out = Pin('X1', Pin.OUT)
while True:p_out.high()p_out.low()time.sleep(.2)
2.测量DAC
from pyb import Pin,DAC
import time
dac = DAC(Pin('X5'))
out = 0
while True:dac.write(out)out += 1if out > 255: out = 0time.sleep(.01)
▲ DAC输出波形
3.PWM
from pyb import Pin,Timer
p = Pin('X1')
tim = Timer(2, freq=50)
ch = tim.channel(1, Timer.PWM, pin=p)
ch.pulse_width_percent(1.5/20*100)
while True:pass
▲ 输出50Hz Servo信号
▲ 输出50Hz Servo 的脉宽:1.5ms
4.更多的实验
下面链接中给出了更多的相关的实验。
- 自制pyBoard的I2C实验,应用MicroPython
▌附录
■ 相关文献链接:
- MicroPython
- RASPBERRY PI PICO 开发板 基础测试
- 面包板
- pyBoard 基于MicroPython开发STM32FXX单片机
- 安装 Thonny 软件环境开发PI Pico
- pyBoard Mini从安装到简单测试
- Firmware for pyboard v1
- 01Studdio pyBoard(STM32F405)资料下载
实验电路板AD工程文件:AD\Test\2021\PYBOARD\PYBOARD ↩︎
利用STM32F405RG制作pyBoard实验板相关推荐
- vue页面绘图_利用vue制作在线涂鸦板
效果展示 Canvas API简介 调用方法 getImageData() 返回ImageData对象,该对象为画布上指定的矩形复制像素数据 putImageData() 把图像数据(从指定的 Ima ...
- 串行口实验 编写程序利用PC机控制单片机实验板上的数码管设备工作
编写程序利用PC机控制单片机实验板上的数码管设备工作 在pc上输入fe,第一个数码管显示1. 在pc上输入fa第五个数码管显示5 程序: #include<reg51.h> #define ...
- 设计带有SD卡的 MM32F3277 MicroPython 实验板
简 介: 本文测试了基于MM32F3277下的MicroPython电路板设计.其中包含有SD卡接口,常用外设接口等.验证了现在的移植的MicroPython的对文件的基本操作功能.通过测试发现现在的 ...
- 单片机小白学步系列(七) 准备实验板——萝卜青菜,各有所爱
单片机的学习,最重要的一点就是多实践.站在岸上学不会游泳.没有实践,恐怕永远也学不好单片机.我将和大家一起,选择一款适合自己的单片机实验板. 我们主要有三个可选方案: 1.自己动手搭建学习板: 2.购 ...
- 51单片机入门 - 自己动手搭建实验板
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- 用python做头像_如何利用python制作微信好友头像照片墙?
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...
- 北邮实验:ARM实验板移植Linux操作系统,LCD显示汉字
ARM实验板移植Linux操作系统,LCD显示汉字 一. 实验目的 1. 熟悉点阵字库的使用2. 熟悉Linux操作系统的使用3. 熟悉ARM嵌入式系统开发的过程 二. 实验内容 1. pc端编写用* ...
- 做计算机实验报告的总结,制作网线实验报告与总结
<制作网线实验报告与总结>由会员分享,可在线阅读,更多相关<制作网线实验报告与总结(2页珍藏版)>请在人人文库网上搜索. 1.随着计算机技术的不断发展和普及,计算机不再只是一个 ...
- 怎样用计算机做初中物理实验,如何利用多媒体上好物理实验课
物理实验是物理教学的重要手段之一,然而由于受时间和空间等客观条件以及仪器本身因素的限制,有些实验效果不够理想.如果利用多媒体模拟辅助物理实验,将起到直观形象.重复再现.大小.远近.时空.动静.快慢都可 ...
最新文章
- 分布式计算开源框架Hadoop入门实践
- 机器学习_周志华_问题汇总_第2周
- 关于课程设计、毕业设计的一些总结与思考
- Matlab循环读取txt文件并对其中数据进行计算最后导出为excel
- java kafka 消费_java编程之Kafka_消费者API详解
- php内置类,yii2学习教程之5种内置行为类详解
- 云服务器有什么好 能让云大佬们竞争如此激烈
- android 页面无法点击,为什么点击不跳转到下一界面,哪位大神帮瞅瞅
- mybatis那些事~
- android 多点
- 【java】java 定时任务线程池 ScheduledThreadPoolExecutor 源码阅读
- HTTPS传输协议原理
- webstorage html5,HTML5-WebStorageAPIs的简述
- 车牌识别opencv_基于OpenCV 的车牌识别
- PCA、CCA、PLS
- Systrace的工作原理
- Android 中 shape 各种属性详细介绍
- 五点差分法求解偏微分方程(PDE)
- 求命题公式的真值表及主范式(栈实现)
- .pcd文件转换为.ply文件