硬件说明与开始验证
基本介绍
ColorEasyPICO2 是一款轻便、强大且易于使用的开发板,基于树莓派 RP2350A 微控制器,专为嵌入式开发、物联网项目和教育领域设计。它集成了丰富的功能模块,无论是快速原型开发还是打造创意项目,都给创客、开发者和工程师提供了一个强大的创意平台。
基本参数
引脚分布
板载资源
RP2350芯片介绍
RP2350系统概述
RP2350A的引脚描述
仅截图展示本项目使用的 QFN-60 (RP2350A)。
Name | Description |
---|---|
GPIOx | General-purpose digital input and output. Can connect internal peripherals or be controlled directly from software. |
GPIOx/ADCy | General-purpose digital input and output, with analogue-to-digital converter function. The RP2350 ADC has an analogue multiplexer to select these pins for voltage sampling. |
QSPIx | Interface to SPI, Dual-SPI, or Quad-SPI flash or PSRAM device, with execute-in-place support. Can be used as software-controlled GPIOs if not required for flash access. |
USB_DM and USB_DP | USB controller, supporting Full Speed device and Full/Low Speed host. Requires 27Ω series termination resistor on each pin. Bus pullups and pulldowns are provided internally. Can be used as GPIOs if USB is not required. |
XIN and XOUT | Connect a crystal to RP2350’s crystal oscillator. XIN can also be a CMOS clock input. Defaults to 12 MHz crystal or clock input for USB bootloader. Configurable via OTP. |
RUN | Global asynchronous reset pin. Reset when driven low, run when driven high. Can be tied directly to IOVDD if no external reset is needed. |
SWCLK and SWDIO | Access to internal Serial Wire Debug bus for debug access and code download. |
GND | Single external ground connection, bonded to internal ground pads. |
IOVDD | Power supply for digital GPIOs, nominal voltage 1.8V to 3.3V. |
USB_OTP_VDD | Power supply for internal USB Full Speed PHY and OTP storage, nominal voltage 3.3V. |
ADC_AVDD | Power supply for analogue-to-digital converter, nominal voltage 3.3V. |
QSPI_IOVDD | Power supply for QSPI IOs, nominal voltage 1.8V to 3.3V. |
VREG_AVDD | Analogue power supply for internal core voltage regulator, nominal voltage 3.3V. |
VREG_PGND | Power-ground connection for internal core voltage regulator, tie to ground externally. |
VREG_LX | Switched-mode output for internal core voltage regulator, connected to an external inductor. Max current 200 mA, nominal voltage 1.1V after filtering. |
VREG_VIN | Power input for internal core voltage regulator, nominal voltage 2.7V to 5.5V. |
VREG_FB | Voltage feedback for internal core voltage regulator, connect to filtered VREG output (e.g., to DVDD, if used to supply DVDD). |
DVDD | Digital core power supply, nominal voltage 1.1V. Must be connected externally, either to the voltage regulator output or an external board-level power supply. |
硬件设计
电源
TYPE-C部分
通过type-c输入5V电源VBUS,而有一些电源带有电源诱骗功能,为了让带有该功能的电源模块能够正确输出5V,因此在CC1和CC2中增加5.1K电阻,既R2和R8。
R4\R5这两个27欧姆的电阻,是参考自树莓派在RP2350设计指南中USB部分的设计。USB_D+和USB_D-是接入到了主控RP2350的USB引脚。USB2_D-和USB2_D+是为了方便工厂批量烧录测试引出的USB测试点,可以通过测试架进行快速的批量烧录。
D2与D3是ESD器件,保护USB线不被静电损坏。
D1是一个防反接二极管,选择了一个正向导通压降为310mV\1A的二极管。VBUS通过这个二极管后输出的电压为VSYS。
R3和R6组成一个USB检查电路。其实就是分压电路,将VBUS分压到3V3以下让主控RP2350通过GPIO24引脚检查电平情况。如果GPIO24为高电平则表示TYPE-C有输入;如果GPIO24为低电平则表示TYPE-C没有输入。
5V降压3.3V部分
通过一个LDO器件
ME6217C33M5G
,将输入的VSYS降压到3.3V,该3.3V将为主控RP2350的核心电压。该LDO最高输入7V,输出电流800mA,其他详细信息请参考其数据手册。C12\C13\C10\C11均为电源滤波器件,建议是100nF和10uF搭配组成简易的滤波。
PWR_LED表示的是power LED电源灯,通过一个2k的电阻进行限流。实测该LED在接入2K限流电阻的情况下,亮度不刺眼也不昏暗,刚刚合适。
R11是一个上拉电阻,是为了让LDO器件的3号引脚CE端默认为高电平,该端为高电平时LDO会正常工作。需要注意的是3V3_EN这个信号,该信号接入到了外部排针上,当3V3_EN被接入低电平时,该LDO输出器件将会停止工作,需要用户将自己的3.3V电压通过排针输入。
主控
在RP2350的每一个电源输入引脚都加了对应的滤波电容100nF。
IOVDD是3.3V,DVDD是1.1V。其中1.1V是由RP2350的内部电源稳压器输出。需要通过一个3.3uH的电感。这个3.3uH的电感一定要使用由树莓派在RP2350的设计指南中给出的特殊的、带极性方向的电感。并且必须一比一的使用参考设计中的电感布局,不然会影响到RP2350的电源性能。
内存
内存使用的是W25Q32,其内存大小为4MB。
在电源输入处增加一个100nF的滤波电容。
R13为不使用、不贴器件。
R14是防止短路电阻,它连接到了一个BOOT按键,该BOOT按键可以控制RP2350进入升级模式,可以重新刷新固件等操作。如果不加该R14电阻,当QSPI_SS输入高电平,然后BOOT按键又按下时,就会触发短路。
时钟
RP2350使用的是12MHz的无源晶振输入。该晶振器件选择的是RP2350设计指南中的对应参考器件:ABM8-272-T3。
C23\C22为晶振的匹配电容15pF,协助晶振起振,以及让晶振更加稳定的输出。
复位
在原本的RP23050参考设计中,并且没有该按钮。该按钮的功能就是让RP2350复位,重新工作。同时,通过复位按键和BOOT按键的操作,可以更加方便用户让RP2350进入升级模式,也方便用户调试。
LED
RP2350的GPIO25引脚接入了一个LED电路。15K的限流电阻,让该LED的亮度接近电源灯的亮度,实测确实如此。
ADC
板载的ADC功能测试电路。具体情况请看:
IO引出
RUN为主控复位引脚,当输入低电平时让RP2350复位重新工作。
ADC_VREF为ADC功能的外部参考电压输入引脚,如果认为板载的ADC精度不高干扰大,请自行输入稳定的3.3V参考电压。
PCB设计注意事项
主控的稳压器电感请务必参考RP2350设计指南中的参考设计布局。建议直接将布局复制。
该开发板的丝印层使用了JLCPCB的特殊工艺,彩色丝印工艺。可以对丝印层上的字符、线条、图片等设计为彩色。
可以通过3D展示功能,查看彩印效果。
开发板使用
MicroPython环境
下载PY固件
下载 .UF2 文件,该文件就是适配了PICO2的microPython固件。下载地址:
MicroPython官方最新下载地址: https://micropython.org/download/RPI_PICO2/
安装PY固件
按住 PICO2 开发板上的 BOOT 按钮,然后将 PICO2 插入 电脑 的 USB 接口,最后松开 BOOT 按钮。如果该操作正确完成,电脑就会显示插入了一个U盘,并被识别为大容量存储设备。
将下载的 MicroPython UF2 文件放入 电脑识别出来的 RP2350 盘上。放入后你的 PICO2 开发板将自动重启,然后 MicroPython 固件就算是安装完成了。
安装执行PY的IDE
Thonny 是一款简单而强大的集成开发环境 (IDE),专门为初学者和教育者设计。它提供了一种简洁的方式来编写、调试和执行程序代码。
使用 Thonny,可以轻松地编写和运行 MicroPython 代码,以控制 PICOx 开发板。MicroPython 是一种精简版的 Python 解释器,专门用于嵌入式设备的编程。它提供了易于理解和编写的语法,使得初学者或非专业开发者也能快速上手。
在 Thonny 中,可以创建和编辑 MicroPython 脚本,然后将其上传到开发板上运行。Thonny 还提供了一组调试工具,可帮助定位和修复代码中的错误。我们可以在 Thonny 中设置断点、单步执行代码并监视变量的值,以深入了解程序的运行过程。
总的来说,Thonny 提供了一个友好的界面和强大的功能,让您能够更轻松地使用 MicroPython 编程语言来控制开发板。无论你是初学者还是已经有一定开发经验,Thonny 都是一个值得尝试的工具。
Thonny的下载地址:https://thonny.org/
需要注意的是鼠标要移动到windows处,才会显示对应的信息
一路默认安装即可。(建议修改安装路径)
环境搭建验证
将开发板通过type-c线接入电脑,打开Thoony的 配置解释器(Configure interpreter...),在解释器中选择 MicroPython(通用);
端口选择连接了PICO2开发板的端口;(每一个人的端口都不一样,请自行测试连接PICO2开发板的端口是哪一个)
点灯测试
在Thonny中,新建一个文件命名为test.py,随便保存到一个路径下;
在文件中编写以下代码:
from machine import Pin
import time
# 初始化GPIO 25引脚为输出模式
led = Pin(25, Pin.OUT)
while True:
# 打开LED
led.value(1)
time.sleep(1) # 等待1秒
# 关闭LED
led.value(0)
time.sleep(1) # 等待1秒
2
3
4
5
6
7
8
9
10
11
12
13
14
在设置好 配置解释器 后,点击STOP键,下方 shell 出现 MicroPython 版本说明连接开发板成功;
点击绿色箭头,开始运行当前脚本代码。运行成功之后可以看到板载LED在闪烁;
Arduino环境
下载 Arduino 所必须的 开发板支持包。放到 用户文件夹 \AppData\Local\Arduino15\
下,如果没有相关文件夹请自行建立。
例如我的电脑用户名是win
,则我的路径是:
C:\用户\win\AppData\Local\Arduino15
AppData
文件夹是隐藏文件夹,需要用户自行配置显示隐藏文件夹
下载 rp2040-版本号.zip,注意版本号要正确。 下载地址:https://github.com/earlephilhower/arduino-pico/releases
也可以通过百度网盘下载。请前往左侧边栏找到
资料下载
里的百度网盘链接。
> 我当前使用的是4.1.1
将下载下来的支持包,全部放入 ~\Arduino15\staging\packages
。
打开 Arduino 附加开发板管理器网址。Arduino IDE > 文件 > 首选项 > 其他开发板管理器网址 中加入开发板包地址:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
安装开发板软件包:Arduino IDE > 工具 > 开发板 > 开发板管理器,搜索RP2350,安装来自Earle F. Philhower, III
的Raspberry Pi Pico/RP2040/RP2350
开发板。
要选择跟离线下载的开发板包一样的版本号
安装验证
代码:
// 定义连接LED的GPIO引脚
const int ledPin = 25;
void setup() {
// 初始化GPIO引脚为输出模式
pinMode(ledPin, OUTPUT);
}
void loop() {
// 打开LED
digitalWrite(ledPin, HIGH);
// 等待一秒钟
delay(1000);
// 关闭LED
digitalWrite(ledPin, LOW);
// 等待一秒钟
delay(1000);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
配置:
注意,COM端口请使用自己电脑识别到的RP2350的端口。
烧录:
在第一次上传烧录程序时,需要让开发板进入升级模式,而进入升级模式要两个方法:
- 需要一直按住BOOT键,再按一下RST键,直到电脑弹出
插入了一个U盘
,就可以松开手。 - 将开发板断开电的情况下,按住BOOT键,保持按住的情况下,接入TYPE-C数据线,这个时候正常电脑会弹出
插入了一个U盘
,这个时候就可以松开手。
在进入了升级模式后,点击arduino 的上传按钮,这样程序应该就会烧录到开发板中了。在第一次上传之后,就正常是不用执行上面的操作的,因为arduino-pico核心有自动重置支持。在Arduino 的 工具->端口菜单中选择相应的串口即可(此设置将保持不变,并且多次上传时不需要修改)。这样的选择可以让自动复位工具识别正确的设备进行复位。这样在点击上传按钮时,你的程序应该会上传并运行。
但是据官方所说,在某一些情况下,PICO的USB端口不会响应自动复位请求。如果发生这个情况,只需重新进入升级模式再来一遍即可。
其他说明
Zadig
Zadig可以帮助用户装载通用驱动,解决设备无法连接电脑的问题,保证外设可以正常访问电脑。点击Options→List All Devices,选择修改时需要注意不要选到系统驱动程序。
BootLoader模式
- RP2 Boot(interface 0) → USB Serial(CDC)
- RP2 Boot(interface 1) → WinUSB
normal普通模式
- Raspberry Pi Pico(interface 0) → USB Serial(CDC)
- USB连接传输不起作用,没有弹出RP2350磁盘管理器或串口号
- 检查是否没有按住BOOT按键,或者中间松开过;
- TYPE C必须是数据线(充电线不带数据传输功能),TYPE-C的DP/DN未连接好(虚焊);
- 晶振不起振(虚焊或者损坏了)。
- 烧录初始UF2固件后设备管理器无法识别/未知USB设备(设备描述符请求失败)
- 托拽刷入flash_nuke.uf2清除固件,将Flash中原有内容清除,然后再次刷入初始UF2固件;
- RP2350芯片虚焊或者损坏了,焊接QFN封装时一定得先在引脚处上锡再焊接或加热。
- 使用了Zadig导致Pico在bootloader mode(引导加载程序模式)下不会枚举作为存储数据驱动器
- 在设备管理器中找到所有RP2的引导驱动;
- 右键选择“卸载设备”,勾选“删除此设备的驱动程序软件”(如果弹出询问时);
- 点击卸载,一定要卸载所有RP2相关的引导。