01 RASPBERRY PICO


1.简介

RaspBerry Pi Pico是一款低价格、高性能的微控制器电路板,具有丰富灵活的数字接口,主要特点包括有:

  • RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom
  • Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz
  • 264KB of SRAM, and 2MB of on-board Flash memory
  • Castellated module allows soldering direct to carrier boards
  • USB 1.1 with device and host support
  • Low-power sleep and dormant modes
  • Drag-and-drop programming using mass storage over USB
  • 26 × multi-function GPIO pins
  • 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × controllable PWM channels
  • Accurate clock and timer on-chip
  • Temperature sensor
  • Accelerated floating-point libraries on-chip
  • 8 × Programmable I/O (PIO) state machines for custom peripheral support

▲ 管脚定义

▲ 不同种类管脚定义对应的颜色

  • 相关资料链接:
  1. RP2040 DataSheet
  2. Raspberry Pi Pico 数据手册
  3. Pico Python SDK

▲ PI PICO 电路图

2.实验电路板

今天刚刚从 RASPBERRY淘宝购买(¥:44.99)的 RP2040刚刚到货了。

两个购买的连接:

  • https://item.taobao.com/item.htm?spm=a1z09.2.0.0.7dfc2e8dr0gXNj&id=637379855715&_u=onvskcd1abb :¥:39.99
  • RASPBERRY 淘宝购买(¥44.99)

▲ 购买到的RP2040
vsa

相关的资料可以在 RaspBerry PI PICO官方网站 寻找。

02 初步测试


1.焊接排针

▲ 焊接排针之后的PICO

焊接之后,使用USB电缆连接到电脑,会出现一个名字为:RPI-RP2磁盘号码。其中包括有:

其中包括有两个文件:
F:\INDEX.HTM
F:\INFO_UF2.TXT

2.初步使用PICO

根据 Getting started with MicroPython 中的的Drag and Drop MicroPython的操作步骤,将下载 Download UF2 File 的pico_micropython_20210121.uf2拷贝到RPI-RP2磁盘,对于PI PICO进行处世王MicroPython解释器。

RPII-RP2磁盘消失。不过计算器出现了一个初始化错误的USB设备:

▲ 下载UF2之后,设备出现了一个USB其它设备

3.供PICO 5V电源

根据PICO数据手册介绍,VSYS是供给电路板5V电源的引脚。按照下面连接方式在面包板上给PICO施加5V电源。

▲ 供电示意图

错误:在一开始的时候,给PICO出现正负极性相反。在限流DC+5V作用下,供电电流别限制在1A的幅值。

▲ 面包板上给PICO供电

  • 静态电路板工作电流: 16.5mA。
  • 3V3 OUT(PIN36) : 3.258V
  • RUN(PIN30):3.3V
  • TX(PIN1) :0V 奇诡
  • RX(PIN2) : 0V 奇诡

注意: 既然已经初始化成立MicroPython工作的状态,为什么TX0,RX0初始化后的电压为0V?*

4.测试TX,RX

利用STM32的下载传宝连接PICO的 UART0的TX(PIN1),RX(PIN2)测试它对于外部发送的信号的相应。

▲ 测试串口

在PICO上电过程中在TX没有测量到任何字符输出。

03 安装Board CDC 驱动


1.下载MicroPytho Firmware

MicroPython 网站下载 Firmware for Raspberry PI Pico 最新的UF2。根据前面的操作方式,按住BOOTSEL按键将RASPBERRY接入PC的USB(Mini-USB)。将下载的Firmware拷贝进入出现的新的U盘内。系统重新启动,出现新的设备。

但是在Win7下,CDC无法自动安装驱动。根据 树莓派 PI Pico 安装 MicroPython 后会出现 Board CDC 未知设备 的说法:

树莓派 PI Pico 安装 MicroPython 后会出现 Board CDC 未知设备的解决办法
https://files.cnblogs.com/files/czcbzc/Board_CDC_RP2_pico-serial.zip
然后在设备管理器中手动安装
自动安装不了

▲ 其它设备:Board CDC

在https://files.cnblogs.com/files/czcbzc/Board_CDC_RP2_pico-serial.zip下载: Board CDC Driver

▲ 安装驱动之后

2.测试串口

使用STM32Bootload界面测量Pi Pico Serial Port。但是并没有接收到任何对应的反馈响应信息。

3.使用Python测试

使用Python直接对串口进行操作,可以得到对应的结果。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-02-24
#
# Note:
#============================================================from head import *
import serial
from _ast import Or
from serial.serialutil import SerialException#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 115200
sport.timeout = 0.05
try:sport.port = 'COM6'
except:printf('Set sport port COM6 error. ')try:sport.open()
except serial.serialutil.SerialException:printf('Open sport port COM6 error.')
else:printf('Open sport port COM6 Ok.')
#------------------------------------------------------------sport.write(b"2**3\r\r\r")printf(sport.read(100).decode('utf-8'))#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

输出结果:

Open sport port COM6 Ok.
2**3
8
>>>
>>>
>>>

输入“help()”最终输出内容:


help()
Welcome to MicroPython!For online help please visit https://micropython.org/help/.For access to the hardware use the 'machine' module.  RP2 specific commands
are in the 'rp2' module.Quick overview of some objects:machine.Pin(pin) -- get a pin, eg machine.Pin(0)machine.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode pmethods: init(..), value([v]), high(), low(), irq(handler)machine.ADC(pin) -- make an analog object from a pinmethods: read_u16()machine.PWM(pin) -- make a PWM object from a pinmethods: deinit(), freq([f]), duty_u16([d]), duty_ns([d])machine.I2C(id) -- create an I2C object (id=0,1)methods: readfrom(addr, buf, stop=True), writeto(addr, buf, stop=True)readfrom_mem(addr, memaddr, arg), writeto_mem(addr, memaddr, arg)machine.SPI(id, baudrate=1000000) -- create an SPI object (id=0,1)methods: read(nbytes, write=0x00), write(buf), write_readinto(wr_buf, rd_buf)machine.Timer(freq, callback) -- create a software timer objecteg: machine.Timer(freq=1, callback=lambda t:print(t))Pins are numbered 0-29, and 26-29 have ADC capabilities
Pin IO modes are: Pin.IN, Pin.OUT, Pin.ALT
Pin pull modes are: Pin.PULL_UP, Pin.PULL_DOWNUseful control commands:CTRL-C -- interrupt a running programCTRL-D -- on a blank line, do a soft reset of the boardCTRL-E -- on a blank line, enter paste modeFor further help on a specific object, type help(obj)
For a list of available modules, type help('modules')
>>>

4.闪烁LED(PIN25)

sport.write(b"from machine import Pin\r")
sport.write(b"led = Pin(25, Pin.OUT)\r")for i in range(100):sport.write(b"led.value(1)\r")time.sleep(.5)sport.write(b"led.value(0)\r")time.sleep(.5)printf(sport.read(10000).decode('utf-8'))

▲ 闪烁PIN25

5.上载完整程序

上载一个执行程序,需要将前面运行的程序中断,然后输入程序,最后执行。

下面给出了对应的过程:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-02-24
#
# Note:
#============================================================from head import *
import serial
from _ast import Or
from serial.serialutil import SerialException#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 115200
sport.timeout = 0.05
try:sport.port = 'COM6'
except:printf('Set sport port COM6 error. ')try:sport.open()
except serial.serialutil.SerialException:printf('Open sport port COM6 error.')
else:printf('Open sport port COM6 Ok.')
#------------------------------------------------------------
sport.write(b'\x04')sport.write(b"from machine import Pin, Timer\r")
sport.write(b"led = Pin(25, Pin.OUT)\r")
sport.write(b"tim = Timer()\r")
sport.write(b"def tick(timer):\r")
sport.write(b"global led\r")
sport.write(b"led.toggle()\r")sport.write(b"\r")
sport.write(b"\r")
sport.write(b"\r")sport.write(b"tim.init(freq=10, mode=Timer.PERIODIC, callback=tick)\r")printf(sport.read(10000).decode('utf-8'))#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

程序执行后的结果返回:

Open sport port COM6 Ok.MPY: soft reboot
MicroPython v1.14 on 2021-02-24; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> from machine import Pin, Timer
>>> led = Pin(25, Pin.OUT)
>>> tim = Timer()
>>> def tick(timer):
...     global led
...     led.toggle()
...
...
...
>>> tim.init(freq=10, mode=Timer.PERIODIC, callback=tick)
>>>

▌结论


对于刚刚到货的Raspberry PI Pico 电路板焊接相关外接的引脚,并通过Micro USB 线缆对于电路板初始化成对应的MicroPython状态。

通过实验发现遇到了两个问题:
1) USB对应的CDC出现了初始化错误:这部分通过 第3部分,下载对应的Board-CDC驱动解决了。
2)电路板初始化对应的串口输出电平是低电平,说明电路板实际上并没有工作在MicroPython的 REPL状态。这部分根据手册给出,说明内核需要重新进行编译之后才能够将REPL落实在对应的串口上。

此时,这两个电路板还无法进行相应的实验。

■ 相关文献链接:

  • RP2040 DataSheet
  • Raspberry Pi Pico 数据手册
  • Pico Python SDK
  • RASPBERRY淘宝购买
  • Getting started with MicroPython
  • Download UF2 File
  • Getting Started with Raspberry Pi Pico using MicroPython and C
  • Raspbery PI RP2040
  • Download Firmware.uf2
  • 史上最全ASCII码对照表0-255(%d)

RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片相关推荐

  1. 树莓派Pico W无线开发板MQTT协议通信MicroPython编程实践

    本博文介绍采用Thonny+MicroPython和umqtt.simple库MQTTClient类的对象方法编制树莓派Pico W无线开发板MQTT协议通信程序,将Pico W无线开发板.电脑或An ...

  2. 基于Raspberry Pi(树莓派)的MCC数据采集卡应用

    编者按:工业上用的数据采集方案普遍基于 Windows 系统,而在Raspberry Pi(树莓派)被越来越多地应用到工业领域时,数据采集领域也终于出现了基于树莓派的产品和应用.我们之前有介绍过两款适 ...

  3. raspberry pi 3B 树莓派 安装tensorflow

    raspberry pi 3B 树莓派 安装tensorflow 这两天买了raspberry pi 3b回来折腾着玩,拿到手装好系统后就开始安装树莓派版本的TensorFlow,这个安装过程也是踩了 ...

  4. 【合集】用Raspberry Pi(树莓派)打造各种服务器

    [合集]用Raspberry Pi(树莓派)打造各种服务器 Raspberry Pi(树莓派)有很多的应用,其中搭建服务器是大家应用比较多的,今天就整理一个合集用Raspberry Pi(树莓派)打造 ...

  5. micropython开发板性能_MicroPython支持的开发板:高性能、低成本创客首选

    原标题:MicroPython支持的开发板:高性能.低成本创客首选 Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到 ...

  6. Raspberry Pi(树莓派)试用小记

    近期入手一树莓派卡片机,体验了一下它的强大,写篇报告,推广一下哈! 机器截图: 基础参数: CPU:700 MHz, ARM11 内存:512M(还有一种是256M的) 支持GPU加速(高清视频无压力 ...

  7. Raspberry Pi 4 树莓派4 支持操作系统

    2019 年推出以来,Raspberry Pi 4 一直很受欢迎,但它的默认系统一直是 Debian, Fedora 可能会为这款热门的开发板提供官方支持. Raspberry Pi 4 与 Fedo ...

  8. <第0章>树莓派4B开发板概述

    树莓派 4 代 B 型(Raspberry Pi 4 Model B) 树莓派 (Raspberry Pi)基金会于 2019 年 6 月 25 日正式发布了Raspberry Pi 4 Model ...

  9. 如何在5美元的Raspberry Pi上构建个人开发服务器

    In this article, you'll learn how to build a personal dev server by installing Git, Node.js, Rust, a ...

最新文章

  1. web框架总结(django、flask)
  2. 查看服务器配置信息prtdiag与systeminfo实用命令
  3. php non numeric,PHP 7.1 的 A non-numeric value encountered 错误和解决方法
  4. python自学网站 知乎-如何自学Python拿到25K的薪资?非常感谢这11个站点!
  5. linux重设mysql密码是多少_Linux学习:重设mysql root密码
  6. SpringMVC表单验证器的使用
  7. linux之x86裁剪移植---ffmpeg的H264解码显示(420、422)
  8. SQLAlchemy中filter_by()和filter()的用法不同
  9. C语言的struct和C++的class的区别
  10. 作者:靳小龙,中国科学院计算技术研究所副研究员,博士生导师。
  11. busybox date 时间的加减
  12. mui框架从0到1【webapp开发教程】
  13. Deepin 与 Win10 双系统 Deepin无法启动且没有引导项问题
  14. SUN SPARC T4-4电源故障引起的宕机
  15. 程序员需要了解的先秦文学
  16. Zabbix5.0前端个性化设置,手把手教你定制Logo
  17. 云计算实战应用案例精讲-【深度学习】多模态融合(论文篇三)
  18. Lua进行二进制文件的位操作
  19. 「文献」杂合基因组的策略思路
  20. Carson带你学Android:RxJava过滤操作符

热门文章

  1. linq查询语句转mongodb
  2. Linux 文件系统权限(一)
  3. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
  4. VS 2019要来了,是时候了解一下C# 8.0新功能
  5. 递归函数和预处理学习总结
  6. Android多线程断点下载
  7. 【已更新内测入口】阿里云宣布开放开源 AliSQL 数据库 性能可提升 70%
  8. 云计算安全解决方案白皮书(二)
  9. cluster maintain manager Software群集管理软件
  10. Java多线程协作(wait、notify、 notifyAll)