earlephilhower / arduino-pico安装和使用详细指南

906 阅读7分钟

ReleaseGitter

Raspberry Pi Pico Arduino核心,适用于所有RP2040板子

这是一个将RP2040(Raspberry Pi Pico处理器)移植到Arduino生态系统中的项目。它使用裸露的Raspberry Pi Pico SDK和一个自定义的GCC 10.3/Newlib 4.0工具链。

文档

更详细的使用信息请参见https://arduino-pico.readthedocs.io/en/latest/,以及例子。

支持的板子

  • Raspberry Pi Pico
  • Adafruit Feather RP2040
  • Adafruit ItsyBitsy RP2040
  • Adafruit KB2040
  • Adafruit Macropad RP2040
  • Adafruit QTPy RP2040
  • Adafruit STEMMA Friend RP2040
  • Adafruit Trinkey RP2040 QT
  • Arduino Nano RP2040 Connect
  • 骏马制造者Pi RP2040
  • 骏马制造者Nano RP2040
  • DeRuiLab FlyBoard2040 Core
  • DFRobot 甲壳虫 RP2040
  • Invector Labs Challenger RP2040 WiFi
  • Invector Labs Challenger RP2040 WiFi/BLE
  • Invector Labs Challenger NB RP2040 WiFi
  • Invector Labs Challenger RP2040 LTE
  • Invector Labs Challenger RP2040 LoRa
  • Invector Labs RPICO32
  • Melopero Shake RP2040
  • 思德晓 RP2040
  • Solder Party RP2040印章
  • SparkFun ProMicro RP2040
  • SparkFun Thing Plus RP2040
  • uPesy RP2040 DevKit
  • WIZnet W5100S-EVB-Pico
  • WIZnet W5500-EVB-Pico
  • WIZnet WizFi360-EVB-Pico
  • 通用型(可配置闪存,I/O引脚)

通过Arduino Board Manager安装

Windows用户。请不要使用Windows商店版本的实际Arduino应用程序,因为它在检测连接的Pico板时有问题。使用 "Windows ZIP "或普通的 "Windows "可执行文件(EXE)直接从arduino.cc。并允许它安装它建议的任何设备驱动程序。否则可能检测不到Pico板。另外,如果尝试2.0测试版的Arduino,请事先安装1.8版本,以确保所需的设备驱动程序存在。(更多细节见#20)。

打开Arduino IDE,进入文件->首选项。

在弹出的对话框中,在 "Additional Boards Manager URLs "栏中输入以下URL。

github.com/earlephilho…

image

点击 "确定",关闭对话框。

在IDE中进入工具->板卡->板卡管理器

在搜索框中输入 "pico "并选择 "添加"。

image

通过GIT安装

要通过GIT安装(对于最新和最大的版本)。

mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init
cd pico-sdk
git submodule update --init
cd ../tools
python3 ./get.py

同时安装Arduino和CMake

Tom's Hardware提供了一个非常好的关于在Windows和Linux上安装arduino-pico 的文章,可在www.tomshardware.com/how-to/prog…

如果你按照Les的步骤,你也会有一个功能齐全的基于CMake 的环境,如果你超越了Arduino的生态系统,可以在上面建立Pico应用程序。

上传草图

要上传你的第一个草图,你需要按住BOOTSEL按钮,同时把Pico插到你的电脑上。然后点击上传按钮,草图应该被传输并开始运行。

在第一次上传后,这应该是没有必要的,因为arduino-pico 核心有自动复位支持。选择Arduino工具->端口->串行端口菜单中显示的适当的串行端口一次(这个设置将坚持下去,不需要为多次上传而触动)。这个选择允许自动复位工具识别适当的设备来复位。点击上传按钮,你的草图应该上传并运行。

在某些情况下,Pico会遇到硬挂,它的USB端口不会对自动重置请求作出反应。如果发生这种情况,只需按照最初的程序,在插入Pico时按住BOOTSEL按钮,进入ROM引导程序。

上传文件系统图像

Pico的板载闪存文件系统LittleFS可以让你从草图目录中上传一个文件系统图像,供你的草图使用。从以下网站下载所需的插件

要安装,请按照

关于详细的使用信息,请查看ESP8266 repo文件(忽略SPIFFS的相关说明),网址是

用Picoprobe上传sketches

如果你已经建立了Raspberry Pi Picoprobe,你可以使用OpenOCD来处理你的草图上传和用GDB进行调试。

在Windows下,本地管理用户应该能够自动访问Picoprobe端口,但在Linux下udev ,必须被告知该设备并允许普通用户访问。

要在Ubuntu(和其他使用udev 的操作系统)上设置对Picoprobes的用户级访问。

echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", GROUP="users", MODE="0666"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload

第一行创建一个带有USB供应商和Picoprobe ID的文件,并告诉UDEV允许用户完全访问它。第二行导致udev 加载这个新规则。注意,在你第一次创建这个文件时,你需要拔掉并重新插入你的设备,以使udev能够正确地建立设备节点。

一旦Picoprobe的权限设置正确,然后在工具菜单中选择板子 "Raspberry Pi Pico (Picoprobe)",像平常一样上传。

用pico-debug上传sketches

pico-debug与Picoprobe的不同之处在于,pico-debug是一个虚拟调试舱,在你运行代码的同一RP2040上并排运行;因此,你只需要一块RP2040板而不是两块。pico-debug与Picoprobe的不同之处在于,pico-debug是基于标准的;它使用CMSIS-DAP协议,这意味着即使不是专门为Raspberry Pi Pico编写的软件也可以支持它。pico-debug使用OpenOCD来处理你的草图上传,调试可以通过CMSIS-DAP功能的调试器来完成,包括GDB。

在Windows和macOS下,任何用户都应该能够自动访问pico-debug,但在Linux下udev ,必须被告知该设备并允许普通用户访问。

要在Ubuntu(和其他使用udev 的操作系统)上设置对所有CMSIS-DAP适配器的用户级访问。

echo 'ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-CMSIS-DAP.rules
sudo udevadm control --reload

第一行创建一个文件,识别所有的CMSIS-DAP适配器,并告诉UDEV让用户完全访问它。第二行使udev ,以加载这个新的规则。注意,在你第一次创建这个文件时,你需要拔掉并重新插入你的设备,以使udev能够正确地建立设备节点。

一旦CMSIS-DAP的权限设置正确,然后在工具菜单中选择板子 "Raspberry Pi Pico(pico-debug)"。

当第一次将USB端口连接到你的电脑时,你必须将pico-debug-gimmecache.uf2复制到Pi Pico上,以便将pico-debug加载到RAM中;之后,像平常一样上传。

使用Picoprobe/pico-debug、OpenOCD和GDB进行调试

安装的工具包括OpenOCD(在pqt-openocd目录下)和GDB(在pqt-gcc目录下)的一个版本。这些工具可以用来在交互式窗口中运行GDB,正如Raspberry Pi基金会的Pico入门手册中所记载的。对于pico-debug,将Pico入门手册中的raspberrypi-swd和picoprobe的OpenOCD参数"-f interface/raspberrypi-swd.cfg -f target/rp2040.cfg "或"-f interface/picoprobe.cfg -f target/rp2040.cfg "分别改为"-f board/pico-debug.cfg"。

功能介绍

  • Adafruit TinyUSB Arduino(USB鼠标、键盘、闪存驱动器、通用HID、CDC串行、MIDI、WebUSB、其他)
  • 通用的Arduino USB串口、键盘和鼠标模拟
  • 文件系统(LittleFS和SD/SDFS)
  • 多核支持(setup1()和loop1())。
  • 通过菜单进行超频和降频
  • 数字写/读、移入/移出、音调、模拟写(PWM)/读、温度
  • 外围设备。SPI主控,Wire(I2C)主/从,双路UART,模拟EEPROM,I2S音频输入,I2S音频输出,Servo
  • 通过USB串口输出printf(即调试)。

RP2040的PIO状态机(SM)用于产生无抖动。

  • 舵机
  • 音调
  • I2S输入
  • I2S输出
  • 软件UART(串行端口)

网络上的教程

这里有一些覆盖面和额外的使用教程的链接arduino-pico

许可证和信用