RP2350-PiZero 使用教程

说明

产品概述

RP2350-PiZero 是一款微雪 (Waveshare) 设计的高性能、高性价比的微控制板,板载 DVI 接口、Micro SD 卡座和 PIO-USB 接口,引出兼容树莓派 40PIN GPIO 接口,并预留一个PSRAM焊盘,便于开发和集成到产品中。

产品特性

  • 采用 Raspberry Pi 设计的 RP2350B 微控制器芯片
  • 独特的双核、双架构,搭载了双核 ARM Cortex-M33 处理器和双核 Hazard3 RISC-V 处理器,时钟运行频率均高达 150MHz,支持用户在两种架构间灵活切换
  • 内置 520KB 的 SRAM 和 16MB 的片上 Flash,并预留一个PSRAM焊盘
  • 采用 Type-C 接口,无需纠结正反插
  • 板载 DVI 接口,可驱动绝大多数 HDMI 屏幕 (需要兼容 DVI 接口)
  • 板载 PIO-USB 接口,可作为 USB 主机与从机
  • 板载 Micro SD 卡座,可读写 Micro SD 卡
  • 板载锂电池充放电接口,有利于移动场景使用
  • USB1.1 主机和从设备支持
  • 支持低功耗睡眠和休眠模式
  • 可通过 USB 识别为大容量存储器进行拖放式下载程序
  • 引出 5 个多功能的 GPIO 引脚
  • 2 个 SPI、2 个 I2C、2 个 UART、2 个 12 位 ADC 和 16 个可控 PWM 通道
  • 精确的片上时钟和定时器
  • 温度传感器
  • 片上加速浮点库
  • 12 个可编程 I/O (PIO) 状态机,用于自定义外设支持

尺寸图


Pico快速上手

固件下载


MicroPython固件下载



C_Blink固件下载


基础介绍

Raspberry Pi Pico的基础介绍

MicroPython系列

安装Thonny IDE

为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE


  • 配置Micrpython环境及选择Pico/Pico2端口
    • 先将Pico/Pico2接入电脑,左键点击Thonny右下角的配置环境选项--》选择configture interpreter
    • 在弹出的窗口栏中选择MicroPython(Raspberry Pi Pico),同时选择对应的端口



烧录固件

  • 点击ok后返回到Thonny主界面,下载对应的固件库并烧录到设备中,然后点击停止按钮,在Shell窗口中即可显示当前使用到的环境
  • 注意:烧录Micropython官方提供的Pico2固件可能导致无法识别设备,请使用下方或程序包中的固件
  • Pico/Pico2在windows下载固件库方法: 按住BOOT键后连接电脑后,松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可
  • RP2040/RP2350在windows下载固件库方法: 连接电脑后,同时按下BOOT键跟RESET键,先松开RESET键再松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可(用Pico/Pico2的方式也可以)


讲解视频

【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解

C/C++系列

对于 C/C++,建议使用 Pico VSCode 进行开发,这是一款 Microsoft Visual Studio Code 扩展,旨在让您在为 Raspberry Pi Pico 系列开发板创建、开发和调试项目时更加轻松。无论您是初学者还是经验丰富的专业人士,此工具都可以帮助您自信而轻松地进行 Pico 开发。下面我们介绍如何安装该扩展并使用。

安装VSCode

  1. 首先,点击下载 pico-vscode 程序包,解压并打开程序包,双击安装 VSCode

    注意:如果已安装 vscode 注意检查版本是否为 v1.87.0 或更高版本


安装扩展

  1. 点击扩展,选择从 VSIX 安装

  2. 选择 vsix 后缀的软件包,点击安装

  3. 随后 vscode 会自动安装 raspberry-pi-pico 及其依赖扩展,可以点击刷新查看安装进度

  4. 右下角显示完成安装,关闭 vscode

配置扩展

  1. 打开目录 C:\Users\用户名,将整个 .pico-sdk 拷贝至该目录

  2. 拷贝完成

  3. 打开 vscode,对 Raspberry Pi Pico 扩展中各个路径进行配置

    配置如下:
    Cmake Path:
    ${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake.exe
    
    Git Path:
    ${HOME}/.pico-sdk/git/cmd/git.exe    
    
    Ninja Path:
    ${HOME}/.pico-sdk/ninja/v1.12.1/ninja.exe
    
    Python3 Path:
    ${HOME}/.pico-sdk/python/3.12.1/python.exe             
    

新建工程

  1. 配置完成,测试新建工程,输入工程名、选择路径后点击 Creat 创建工程
    测试官方示例,可以点击工程名旁的 Example 进行选择

  2. 创建工程成功

编译工程

  1. 选择SDK版本

  2. 选择 Yes 进行高级配置

  3. 选择交叉编译链,13.2.Rel1 适用 ARM 核,RISCV.13.3 适用 RISCV 核,这里根据您的需求任意选择其中一个即可

  4. CMake 版本选择 Default(前面配置的路径)

  5. Ninja 版本选择 Default

  6. 选择开发板

  7. 点击 Complie 进行编译

  8. 成功编译出 uf2 格式文件即可

烧录固件

这里提供两种方法烧录固件

  1. 使用pico-vscode插件烧录固件
    将开发板连接到电脑上,点击Run直接烧录固件

  2. 手动烧录固件
    1.按住Boot按键
    2.将开发板连接到电脑上     
    3.然后会电脑会将开发板识别成一个U盘设备
    4.将.uf2文件复制到U盘中,设备就会自动重启,程序烧录成功
    

导入工程

  1. 选择工程目录,导入工程

  2. 导入工程的 Cmake 文件不能有中文(包括注释),否则可能导致导入失败
  3. 导入自己的工程需要在 Cmake 文件中加一行代码,才能正常切换 pico 和 pico2,否则即使选择 pico2,编译得到的固件仍是适用于 pico 的

    set(PICO_BOARD pico CACHE STRING "Board type")
    

更新扩展

  1. 离线包中的扩展版本为0.15.2,安装完成后,您也可以选择更新至最新版本

Arduino IDE 系列

安装Arduino IDE

  1. 首先到Arduino官网下载Arduino IDE的安装包。

  2. 这里选择仅下载就可以了。

  3. 下载完成后,点击安装。

    注意:安装过程中会提示你安装驱动,我们点击安装即可

Arduino IDE中文界面

  1. 第一次安装完成后,打开Arduino IDE全是英文界面,我们可以在File>Preferences切换成简体中文。

  2. 在Language里面选择简体中文,点击OK。

在Arduino IDE中安装Arduino-Pico Core

  1. 打开Arduino IDE,点击左上角的文件,选择首选项

  2. 在附加开发板管理器网址中添加如下链接,然后点击OK
    该链接已包含RP2040、RP2350等版型,最新版型文件请访问arduino-pico获取
    https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json


    注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:

    https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
  3. 点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装


国内用户
  • 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过在线的过程
  • 安装包适用于RP2040、RP2350
  • 若已经成功配置了pico环境,可以直接跳过本章
  1. 下载rp2040压缩包,将解压的rp2040文件夹复制到如下路径下
    C:\Users\[username]\AppData\Local\Arduino15\packages


    注意:将里面用户名:[username]替换成自己的用户名

第一次上传程序

  1. 按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。

  2. 下载程序,打开arduino\PWM\D1-LED路径下的D1-LED.ino
  3. 点击工具>端口,记住已有的COM,不需要点击这个COM(不同电脑显示的COM不一样,记住自己电脑上已有的COM)

  4. 用USB线将驱动板和计算机连接起来,再点击工具>端口,第一次连接选择uf2 Board,上传完成后,再次连接就会多出一个COM口

  5. 点击工具>开发板>Raspberry Pi Pico>Raspberry Pi Pico或Raspberry Pi Pico 2


  6. 设置完成后,点击向右箭头将上传程序

  • 如果期间遇到了问题,需要重新安装或者更换Arduino IDE版本时,卸载Arduino IDE需要卸载干净,卸载软件后需要手动删除C:\Users\[name]\AppData\Local\Arduino15这个文件夹内的所有内容(需要显示隐藏文件才能看到) 再重新安装

开源例程

MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)


示例程序

C例程

01-DVI

主要目录解析

  • apps目录:例程源码
  • assets目录:原始图片与图片头文件
  • include目录:默认引脚配置头文件
  • libdvi目录:有关DVI驱动源码
  • libgui目录:有关GUI源码

Hello DVI例程说明

  • Hello DVI例程位于apps目录下的hello_dvi文件下
  • 以640x480p 60Hz DVI模式,滚动显示一张分辨率为320x240p RGB565测试图片

Gui Demo例程说明

  • Gui Demo例程位于apps目录下的gui demo文件下
  • 以640x480p 60Hz DVI模式,依次刷出白、红、黄、绿、青、蓝、紫、黑,再刷GUI图像

02-USB

主要目录解析

  • examples:例程源码
  • src:有关PIO-USB驱动源码

capture_hid_report例程说明

  • capture_hid_report例程位于examples目录下的capture_hid_report
  • PIO-USB将作为一个USB主机,用于接收并打印USB设备发送的HID报告

usb_device例程说明

  • usb_device例程位于examples目录下的usb_device
  • PIO-USB将模拟为一个鼠标并每0.5s移动一次鼠标光标

Host_hid_to_device_cdc例程说明

  • Host_hid_to_device_cdc例程位于examples目录下的Host_hid_to_device_cdc
  • Host_hid_to_device_cdc类似于capture_hid_report,从主机端口打印鼠标/键盘报告到设备端口的cdc

03-MicroSD

主要目录解析

  • tests:测试使用的源码
  • FatFs_SPI:MicroSD有关驱动源码

例程说明

  1. 使用putty或者mobaxterm等终端工具,打开RP2350-PiZero对应的USB串行端口
  2. 输入回车,会显示以下信息
    >
  3. 输入help指令可以得到可用指令,如下
    setrtc <DD> <MM> <YY> <hh> <mm> <ss>:
      Set Real Time Clock
      Parameters: new date (DD MM YY) new time in 24-hour format (hh mm ss)
    	e.g.:setrtc 16 3 21 0 4 0
    
    date:
     Print current date and time
    
    lliot <drive#>:
     !DESTRUCTIVE! Low Level I/O Driver Test
    	e.g.: lliot 1
    
    format [<drive#:>]:
      Creates an FAT/exFAT volume on the logical drive.
    	e.g.: format 0:
    
    mount [<drive#:>]:
      Register the work area of the volume
    	e.g.: mount 0:
    
    unmount <drive#:>:
      Unregister the work area of the volume
    
    chdrive <drive#:>:
      Changes the current directory of the logical drive.
      <path> Specifies the directory to be set as current directory.
    	e.g.: chdrive 1:
    
    getfree [<drive#:>]:
      Print the free space on drive
    
    cd <path>:
      Changes the current directory of the logical drive.
      <path> Specifies the directory to be set as current directory.
    	e.g.: cd 1:/dir1
    
    mkdir <path>:
      Make a new directory.
      <path> Specifies the name of the directory to be created.
    	e.g.: mkdir /dir1
    
    ls:
      List directory
    
    cat <filename>:
      Type file contents
    
    simple:
      Run simple FS tests
    
    big_file_test <pathname> <size in bytes> <seed>:
     Writes random data to file <pathname>.
     <size in bytes> must be multiple of 512.
    	e.g.: big_file_test bf 1048576 1
    	or: big_file_test big3G-3 0xC0000000 3
    
    cdef:
      Create Disk and Example Files
      Expects card to be already formatted and mounted
    
    start_logger:
      Start Data Log Demo
    
    stop_logger:
      Stop Data Log Demo
    

Arduino例程

01-DVI

Hello Dvi例程说明

  • Hello Dvi例程位于Hello Dvi目录下
  • 以640x480p 60Hz DVI模式,滚动显示一张分辨率为320x240p RGB565测试图片

02-USB

依赖库安装

本程序需要安装 Pico PIO USB 库使用,具体安装步骤如下:

  1. 安装 Pico PIO USB 库

  2. 选择"全部安装"

  3. 安装成功

  4. 更改USB Stack配置

device_info例程说明

  • device_info例程位于device_info目录下
  • PIO-USB将作为一个USB主机,用于接收并打印USB设备的描述符信息
  • 程序上传成功后打开串口监视器,接入USB设备,按下"RUN"按键重启RP2350-PiZero
Core1 setup to run TinyUSB host with pio-usb
Device attached, address = 1
Device 1: ID 05ac:0256
Device Descriptor:
  bLength             18
  bDescriptorType     1
  bcdUSB              0110
  bDeviceClass        0
  bDeviceSubClass     0
  bDeviceProtocol     0
  bMaxPacketSize0     64
  idVendor            0x05ac
  idProduct           0x0256
  bcdDevice           0310
  iManufacturer       1     CX
  iProduct            2     2.4G Wireless Receiver
  iSerialNumber       0     
  bNumConfigurations  1
TinyUSB Dual Device Info Example

03-MicroSD

例程说明

  • 插入SD卡,运行程序,实现向SD卡写入数据
Hello, world!
V2-Version Card
R3/R7: 0x1aa
R3/R7: 0x40ff8000
R3/R7: 0xc0ff8000
Card Initialized: High Capacity Card
SD card initialized
SDHC/SDXC Card: hc_c_size: 30475
Sectors: 31207424
Capacity:    15238 MB
Goodbye, world!
TAG: 树莓派Zero RJ45 DeepSeek豆包ESP32-AI小智教程 CAN FD逻辑分析仪 Type-C 兼容T-Embed-CC1101 ESP32-S3 1.9寸LCD PN532开发板兼容LILYGO 树莓派5 DSI教程 STM32电子墨水屏驱动板 工业级USB转RS232/485串口转换器原装FT232RNL T-Display-S3教程资料程序代码PDF手册 树莓派3.7寸e-Paper电子墨水屏(G) 红黄黑白 416x240适用于Arduino /Jetson /STM32 DDSM210直驱伺服轮毂电机 一体化 UART串口通信 手册 资料 工业级4路RS485 Modbus RTU 4-ch 大电流继电器模块带保护导轨 T-Watc ABS ESP32-P4开发板ESP32-C6 RISC-V WiFi6 MIPI DSI 7/10.1寸显示屏/CSI摄像头/音频喇叭/RJ45 ETH以太网口/USB外形兼容树莓派5 7.3寸电子墨水屏模块E彩色6色ePaper适用于Arduino树莓派STM32/Jetson ESP32 S3开发板1.43寸AMOLED显示屏触摸SD槽6轴传感器兼容Arduino 树莓派UGV Rover ROS2 四驱六轮 开源AI云台机器人小车OpenCV