上手 Raspberry Pi Pico
什么是 PICO
Raspberry Pi Pico 是树莓派推出的一块基于 Arm Cortex-M0+ 内核的 MCU 的开发板,使用的 MCU 是树莓派自己研发的 Arm Cortex-M0+ 双核 RP2040。长这样子:

可以看到板子上外设非常少,可以说是 RP2040 的最小系统板,除了引出来的 IO,板子上有 USB、一个 BOOTSEL 按键、一个LED,一个用于存储固件的 Flash,然后就没有了。
先看看板子
上电,使用一根 micro USB 接口连上电脑:

上电后,看板子,一点反映都没有,灯没亮,看了下原理图,LED 是由 MCU IO 控制,不是直接接到电源,不是用作电源指示灯。有可能这板子没有控制 LED 的出厂程序,如果是这样的话,没反应也许就是最好的,不会冒烟、冒火花什么的,也不会有爆鸣声。

pico 在PC(win10)上
接下来,既然板子连接到了电脑,就看下电脑端吧,来,切换一下:

刚把板子插进电脑,什么都不做的话,如果是Win10 系统,可以看到电脑弹出如下:

点击下该对话框,打开的界面看到相关设备为:

驱动程序无法使用?什么情况? 吓得我赶紧打开设备管理器,看到一个应该是没安装成功驱动的设备:

不管先,我还看到了其他东西,一个大容量存储设备,通俗点就是 U 盘,如下:

里面的内容为:

打开 INFO_UF2.TXT 后看到内容为:
UF2 Bootloader v1.0
Model: Raspberry Pi RP2
Board-ID: RPI-RP2
如果用浏览器打开 INDEX.HTM 文件的话,会自动跳转到树莓派官网中的 rp2040/getting-started 页面:

既然是 USB 设备的话,我就想用 UVCView 软件看下该设备的 USB 相关信息:

我把用该软件看到的内容放到下面:
[Port2] : USB Composite Device
---===>Device Information<===---
English product name: "RP2 Boot"
ConnectionStatus:
Current Config Value: 0x01 -> Device Bus Speed: Full
Device Address: 0x13
Open Pipes: 4
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x03 -> Direction: OUT - EndpointID: 3
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x84 -> Direction: IN - EndpointID: 4
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0110
bDeviceClass: 0x00 -> This is an Interface Class Defined Device
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 = (64) Bytes
idVendor: 0x2E8A = Vendor ID not listed with USB.org as of 03-19-2008
idProduct: 0x0003
bcdDevice: 0x0100
iManufacturer: 0x01
English (United States) "Raspberry Pi"
iProduct: 0x02
English (United States) "RP2 Boot"
iSerialNumber: 0x03
English (United States) "E0C912D24340"
bNumConfigurations: 0x01
===>Configuration Descriptor<===
bLength: 0x09
bDescriptorType: 0x02
wTotalLength: 0x0037 -> Validated
bNumInterfaces: 0x02
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80 -> Bus Powered
MaxPower: 0xFA = 500 mA
===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x08 -> This is a Mass Storage USB Device Interface Class
bInterfaceSubClass: 0x06
bInterfaceProtocol: 0x50
iInterface: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x01
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0xFF -> Vendor Specific Device
bInterfaceSubClass: 0x00
*!*CAUTION: This appears to be an invalid bInterfaceSubClass
bInterfaceProtocol: 0x00
iInterface: 0x00
*!*CAUTION: 0xFF is a prerelease Class ID
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x03 -> Direction: OUT - EndpointID: 3
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x84 -> Direction: IN - EndpointID: 4
bmAttributes: 0x02 -> Bulk Transfer Type
wMaxPacketSize: 0x0040 = 0x40 bytes
bInterval: 0x00
这只能看到 pico usb 设备的配置信息,从上面信息可以看到这是个复合设备,有 2 个接口(bNumInterfaces: 0x02):
- Mass Storage USB Device Interface,大容量存储设备,也就 U盘
- Vendor Specific Device 自定义设备
这两个接口都有2个端点,都是 Bulk Transfer Type,正好对于上面看到的没安装成功驱动的设备跟 F 盘。
Hello World
从网络了解到的信息,可以通过拖拽烧录程序,也就是说把固件拖拽到 raspberry pico 生成的 U盘里就可以烧录程序了,来测试下,树莓派官方提供一个 raspberry pico 闪灯的例程,下载连接为:blink.uf2,官方描述为:

把固件下载下来,然后拷贝到 pico 生成的对 U盘里面,拷贝完成后,文件浏览器会自动关闭,pico 对应的 USB 设备都没有了,板子上的 LED 灯会闪烁了
后记
我尝试了下按住板子上的按键,然后再把板子插入电脑,出现的情况跟第一次上电一样,这也许,可能,pico 出厂的时候 Flash 是空的(没有 RP2040 能运行的固件的),pico 上的 flash 是空的的话,pico 就直接运行 boot 程序。
来,总结下,买到的 pico 是没有出厂测试程序的,给板子上电,板子看不到任何反映,直接进入了 boot。
上手 Raspberry Pi Pico的更多相关文章
- 在 raspberry pi pico 上体验 MicroPython
raspberry pi pico 官方提供 2 种开发方式,其中一种是使用 python3 开发,树莓派提供了 MicroPython 固件,把这个固件烧录进去,就可以 在 pico 上跑 pyth ...
- Raspberry Pi上手
2013-05-21 买的树莓派终于到手了,嘿嘿.我在官方代理ICKEY买的,是英国版,B型. 上手教程可以根据Getting Started with Raspberry Pi(网上有电子版免费下载 ...
- 2016 最新的 树莓派3 Raspberry Pi 3 上手评测 图解教程 新手必看!(VNC 安装,启动,关闭)
1.png . 官方教程: INSTALLING OPERATING SYSTEM IMAGES: https://www.raspberrypi.org/documentation/installa ...
- 树莓派(Raspberry Pi)上手小记
引言 本日志中有不少软广告,博主并没有收他们任何好处,完全是给想入手的小伙伴们指条路而已.不喜勿看,不喜勿闻,不喜勿喷. 介绍 之前两三个月突然听说了这么个东西,也没有留意,某天突然在一个微信公众号上 ...
- Raspberry Pi 学习笔记之一
记录几个搭建服务器教程: [教程] 将树莓派变成网络打印机服务器(更新PC和手机端设置)!http://www.eeboard.com/bbs/thread-8818-1-1.html[心得] [分享 ...
- 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi
个人总结: Arduino就是个AVR单片机,个人觉得更适合玩电子的,社区也很活跃. BeagleBone是ARM Cortex-A8,属于嵌入式,价格高于Pi,但是许多方面拥有超越 Pi 的优 势, ...
- (0)开始 Raspberry Pi 项目前需要知道的 10 件事
https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...
- 让Mono 4在Raspberry Pi上飞
最近公司有项目想要在树莓派上做,代替原来的工控机(我们是把工控主机当作小的主机用,一台小的工控主机最少也要600左右,而树莓派只要200多).于是,公司买了一个Raspberry Pi B+和一个Ra ...
- Kali v2.1.2 for Raspberry Pi 3B
最新的下载地址是: https://www.offensive-security.com/kali-linux-arm-images/ 按照官网的说法是找不到树莓派版本的SHA1SUM和SHA1SUM ...
随机推荐
- 【BUAA软工】第一次团队作业——团队介绍
项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:团队介绍与采访往届团队 团队作业-团队介绍和采访 Part I 团队成员介绍 有图有真(jia)相 大名 个人介绍 角色意向 李PX 来 ...
- 源码安装Python3
源码安装Python3 一.安装Python3需要的依赖包 [root@localhost ~]# yum install -y gcc make wget openssl openssl-devel ...
- 使用cockpit管理kvm虚拟机
在Centos8.2主机上部署kvm,使用cockpit管理 首先检测cpu是否支持虚拟化 [root@localhost ~]# cat /proc/cpuinfo | grep vmx flags ...
- Fedora镜像下载地址
Fedora镜像下载地址 Fedora 7核心源码包在: http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/7/F ...
- Cron 定时任务命令-配置文件详解
定时任务 定时任务的作用 1.系统级别的定时任务 临时文件清理 系统信息采集 日志文件切割 2.用户级别的定时任务 定时向互联网同步时间 定时备份系统配置文件 定时备份数据库的 ...
- KEIL-C下数组指针与指针数组实验
http://blog.csdn.net/men_wen/article/details/52694069 第一个: 数组指针的小实验 用指针传递参数 结果: 第二个: 数组指针实验 定义一个指针 ...
- Day30 BigInteger和BigDecimal
BigInteger与BigDecimal BigInteger类 Integer类作为int的包装类,能存储的最大整型值为2 31-1,Long类也是有限的, 最大为2 63-1.如果要表示再大的整 ...
- Java,用户刷屏检测\相似字符串检测
背景 近期有几个业务方提出一需求,期望判断一个用户在短期内是否存在刷屏现象,出现后能对其做出限制,并上报. 刷屏定义:取出用户近期20条评论,如果有50%的评论是"相似"的,则认为 ...
- python基础知识笔记(二) (出现语法以及颜色问题)
以下是在学习Python时需要尤其要注意的点: 1.程序中出现中文,运行的时候出现如下错误: SyntaxError: Non-UTF-8 code starting with '\xc1' 则是编码 ...
- Mapper注解与MapperScan注解
1.Mapper注解 在接口类上添加@Mapper,在运行时动态代理生成实现类 @Mapper public interface UserDao { // User getUser(); } 如果想要 ...