RP2350-GEEK 使用教程

说明

产品概述

RP2350-GEEK 是一款微雪 (Waveshare) 为极客设计的开发板,板载USB-A公口、1.14寸LCD屏幕、Mirco SD卡槽等外设,使用不同固件可以提供 SWD 接口、UART 接口和 I2C 接口,可以为你的项目提供无限可能

产品特性

  • 采用 Raspberry Pi 官方自主设计的 RP2350 微控制器芯片
  • 独特的双核、双架构,搭载了双核 ARM Cortex-M33 处理器和双核 Hazard3 RISC-V 核处理器,运行频率均高达 150MHz 灵活时钟
  • 内置 520KB 的 SRAM 和 16MB 的片上 Flash
  • 板载 1.14 英寸 240×135 像素的 65K 彩色 IPS LCD 显示屏
  • 板载 3PIN SWD 接口,用于连接被调试的目标板
    • 标准 CMSIS-DAP 接口,可用于调试大部分基于 ARM 的微控制器
    • 适用 OpenOCD 和其他支持 CMSIS-DAP 的调试工具
    • 采用树莓派同类型的 3PIN 调试接口规范
  • 板载 3PIN UART 接口,可用于实现 USB 串口转接器的功能
  • 板载 4PIN I2C接口,可用于测试目标板
  • 配备塑料外壳以及相关连接线材
  • 使用开源固件,升级固件更方便

尺寸图


Pico快速上手

文字教程

基础介绍

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窗口中即可显示当前使用到的环境
  • 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 VS Code 进行开发,这是一款 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. 创建工程成功
  3. 选择SDK版本

  4. 选择 Yes 进行高级配置

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

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

  7. Ninja 版本选择 Default

  8. 选择开发板

  9. 点击 Complie 进行编译

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

导入工程

  1. 导入工程的 Cmake 文件不能有中文(包括注释),否则可能导致导入失败
  2. 导入自己的工程需要在 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,点击左上角的文件,选择首选项 File>Preferences

  2. 在附加开发板管理器网址中添加如下链接,然后点击OK
    https://github.com/earlephilhower/arduino-pico/releases/download/4.0.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.0.2/package_rp2040_index.json
  3. 点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装

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


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

第一次上传程序

  1. 按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
    Pico连接数据线.gif
  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/C++例程

01-LCD

  1. LCD刷一张图片并等待2.5秒
  2. LCD刷GUI示例

02-picoprobe

  • 该例程基于开源程序picoprobe
  • RP2350-GEEK运行picoprobe例程,将模拟出一个USB TO SWD 和 USB TO UART设备
  1. 通过UART接作为USB转串口工具,可用于与设备通讯
  2. 通过SWD接口作为debug工具,配合openocd可调试大部分arm芯片
  • 具体使用方法可参考下文《picoprobe使用教程》

03-FATFS

  1. 例程实现了一个命令行界面,类似于 busybox 或 DOS。可以实现挂载SD卡,创建、查看文件等操作。命令 help 可以查看所有可用的命令

  • 注意sd卡文件格式为FAT32

Micropython例程

01-LCD

使用方法

  1. 通过thonny上传将文件下的所有py和bmp文件上传到RP2350-GEEK中

例程效果

  • LCD刷出GUI画面,等待几秒,刷出bmp图片

02-SD

使用方法

  • 通过thonny上传将文件下的所有py文件上传到RP2350-GEEK中,并复位

例程效果

  • RP2350-GEEK复位后会根据boot.py的程序,自动将SD挂载到sd文件下

  • 双击打开SD文件夹,可以看到SD卡中存放的文件


picoprobe使用教程

安装OpenOCD

Linux (and Raspberry Pi)

下载依赖库

sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev

获取并编译

git clone https://github.com/raspberrypi/openocd.git
cd openocd
./bootstrap
./configure
make -j4
sudo make install

Windows

  1. 因为OpenOCD自编译在windows环境下比较复杂,推荐使用已经编译好的版本
  2. 解压并存放在比较短的目录中,如直接存放在C盘中

添加环境变量

  1. 点击“开始”菜单,搜索“环境变量”。

  2. 点击“编辑系统环境变量”

  3. 双击“path”变量,进入编辑界面。

  4. 添加新的路径

    • ①创建新变量地址
    • ②输入OpenOCD的存放地址
    • ③点击 确定进行保存
  5. 点击“确定”保存更改。

  6. 重启电脑

安装GDB

Linux (and Raspberry Pi)

  1. 安装gdb-multiarch
    sudo apt install gdb-multiarch

Windows

  1. 如果你已经正确安装了pico-sdk相关的环境,则跳过此步骤,因为GDB已经被Arm GNU Toolchain包含
  2. 如果你未安装pico-sdk相关的环境,建议使用官方提供pico安装程序进行安装

使用Raspberry Pi Debug Probe烧录程序

  • Pico Debug Probe 可让您通过 SWD 端口和 OpenOCD 加载二进制文件
  • 每次将新二进制文件推送到 Pico 时,您无需拔下然后按住 BOOTSEL 按钮
  1. 以对RP2350使用为例,烧录程序指令为
    sudo openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000" -c "p​​rogram {你的elf文件名}.elf verify reset exit"
  2. 如你当前文件夹下有一个blink.elf的文件
    sudo openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000" -c "p​​rogram blink.elf verify reset exit"

使用Raspberry Pi Debug Probe调试程序

打开OpenOCD服务器

  • 你可以让openocd在服务器模式下使用,并连接 GDB,从而为您提供断点和“正确”调试。
    • 这里也是以调试RP2350为例,Linux 输入以下指令
      sudo openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000"
    • windows,使用powershell,输入以下指令

      此时开始监听本机的3333接口则表明OpenOCD服务器已经成功开启了

使用GDB命令行

  • 本例程基于pico-sdk环境搭建完成,并且pico-example编译完成
  1. 打开powershell并进入对应的build文件夹,这里以blink例程为例

  2. 打开gbd,输入以下指令
    • 如果为windows输入指令为
      arm-none-eabi-gdb blink.elf
    • 如果为linux输入指令为
      gdb blink.elf

  3. 依次输入以下指令
    target remote localhost:3333
    load
    continue
    


    执行成功后,可以看到pico执行blink,led闪烁

使用VSCode调试(进阶)

  1. 首先打开OpenOCD服务器

  2. 使用VSC打开pico-examples文件夹并打开blink例程
  3. 使用快捷键F1并输入以下指令
    open 'launch.json'
  4. 打开后将下文放入其中

    • 若为Windows系统则输入
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Pico Debug",
                "type":"cortex-debug",
                "cwd": "${workspaceRoot}",
                "executable": "${command:cmake.launchTargetPath}",
                "request": "launch",
                "servertype": "external",
                // This may need to be arm-none-eabi-gdb depending on your system
                "gdbPath" : "gdb",
                // Connect to an already running OpenOCD instance
                "gdbTarget": "localhost:3333",
                "svdFile": "${env:PICO_SDK_PATH}/src/rp2350/hardware_regs/rp2350.svd",
                "runToMain": true,
                // Work around for stopping at main on restart
                "postRestartCommands": [
                    "break main",
                    "continue"
                ]
            }
        ]
    }
    
    • 若linux系统则输入
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Pico Debug",
                "type":"cortex-debug",
                "cwd": "${workspaceRoot}",
                "executable": "${command:cmake.launchTargetPath}",
                "request": "launch",
                "servertype": "external",
                // This may need to be arm-none-eabi-gdb depending on your system
                "gdbPath" : "arm-none-eabi-gdb",
                // Connect to an already running OpenOCD instance
                "gdbTarget": "localhost:3333",
                "svdFile": "${env:PICO_SDK_PATH}/src/rp2350/hardware_regs/rp2350.svd",
                "runToMain": true,
                // Work around for stopping at main on restart
                "postRestartCommands": [
                    "break main",
                    "continue"
                ]
            }
        ]
    }
    
    • 两者区别为调用的gdb不同
  5. 进入运行与调试界面 快捷键 Ctrl+Shift+D

    • ①将pico debug选为 调试器
    • ②将CMake选为 debug模式
    • ③开始调试按键,快捷键F5
    • ④选择调试对象选为blink
  6. 点击调试按键进入调试模式,快捷键F5

  7. 出现调试工具栏

    • ①重启设备
    • ②继续运行程序
    • ③执行一步
    • ④进入函数运行
    • ⑤跳出函数运行
    • ⑥停止调试
  8. 点击继续运行程序 快捷键F5,即可看到pico运行blink例程


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841