树莓派Pico开发板硬件扩展接口及电源模块解析

本博文根据树莓派基金会2021年1月21日公开的两部最新官方英文技术文献[1]、[2]以及博主最近使用树莓派Pico开发板的一些思考与应用实践整理。
一、树莓派Pico开发板硬件扩展接口解析
树莓派Pico开发板(以下简称Pico/Pico开发板)硬件扩展接口物理引脚编号及引脚分配如图1所示。Pico引脚设计为直接输出尽可能多的RP2040(Pico MCU采用RP2040芯片) GPIO和内部电路功能,同时还要提供适当数量的接地引脚来减少EMI(Electro Magnetic Interference, 电磁干扰)和信号串扰。这对于40nm硅工艺制程的RP2040芯片来说显得尤为重要,因为其数字IO边缘速率极快。
树莓派Pico开发板硬件扩展接口及电源模块解析
图1 Pico开发板硬件扩展接口引脚排列顶视图
Pico开发板硬件扩展接口通过两边的引脚与硬件进行连接通信。这些引脚大多用作GPIO (General-Purpose Input/Output,通用输入/输出)引脚,这意味着有些引脚可以编程为输入或输出,而不是某种固定用途;有些引脚具有多功能或替换模式,可用于更复杂的硬件通信;另一些引脚则是固定的用途,如为电源提供连接等。Pico硬件扩展接口40引脚在Pico开发板底部做了标记,其中3个引脚编号1、2、39在开发板顶部做了标记。这些引脚顶部标记有助于记住这些引脚编号顺序:将micro-USB接口朝上,从Pico顶部看引脚排列,引脚1位于左上角,左侧引脚19到左下角的引脚20,右上角下方为引脚39,右上角引脚40未做标记。
需要说明的是,在Pico开发板硬件接口引脚中,有一些专门用于Pico开发板内部功能的RP2040芯片GPIO引脚,它们是:
1)GPIO29: 用于ADC模式(ADC3)测量VSYS/3
2)GPIO25: 连接到用户LED
3)GPIO24: VBUS感知-如果VBUS电源存在,则为高电平,否则为低电平
4)GPIO23: 板载SMPS芯片节电控制引脚
Pico开发板硬件扩展接口40个引脚中,除了26个GPIO引脚(GP0~GP22, GP26_A0, GP27_A1, GP28_A2)和5个GND接地引脚外,还有另外7个引脚,其物理引脚及对应名称如下:
1)PIN40: VBUS(5V电源)
2)PIN39: VSYS(2~5V电源)
3)PIN37: 3V3_EN(板载SMPS芯片使能)
4)PIN36: 3V3(3.3V电源)
5)PIN35: ADC_VREF(ADC参考电压)
6)PIN33: AGND(模拟地)
7)PIN30: RUN(启动/禁止Pico)
我们可把Pico硬件接口信号引脚分成几种类型,每种引脚类型都有其特定功能,见表1所示。
树莓派Pico开发板硬件扩展接口及电源模块解析
Pico开发板将RP2040 GPIO 30个引脚中的26个引脚通过布线直接连接到Pico硬件扩展接口。GP0~GP22作为数字GPIO专用;GP 26~GP28可用作数字GPIO或ADC(模数转换器)输入,它们可通过编程进行选择。大多数GPIO引脚还为SPI、I2C或UART通信协议提供辅助功能。
Pico硬件扩展接口GPIO引脚还可作为PWM(Pulse Width Modulation, 脉宽调制)引脚,共计有16个可以同时使用的PWM通道(见图2)。
树莓派Pico开发板硬件扩展接口及电源模块解析
图2 Pico开发板硬件扩展接口的PWM引脚
Pico为我们提供了丰富PWM引脚,我们可以利用Pico提供的PWM功能及PWM技术来实现LED呼吸灯[3]、电机调速控制,以及无人机、机器人等创新设计应用与原型产品开发等。
如果需要[比如使用表面安装模块(Surface Mount Module)],我们还可以使用以下6个测试点(TP1-TP6):
TP1: Ground (用于差动USB信号的紧耦合接地)
TP2: USB D-
TP3: USB D+
TP4: GPIO23/SMPS节电引脚(不使用)
TP5: GPIO25/LED (不推荐使用)
TP6: BOOTSEL(引导选择,用于引导程序的烧写)
TP1、TP2和TP3可用于取代micro-USB接口访问USB信号。TP6可用于将系统驱动到海量存储USB编程模式(通过上电对TP6接地短路)。注意,TP4不适合外部使用;TP5不推荐使用,因为它仅从0V变化到LED正向导通电压(因此需特别谨慎用于输出)。
下面对信号引脚做进一步说明:
■VBUS: VBUS是连接到micro-USB接口引脚1的micro-USB输入电压。VBUS是micro-USB输入电压,它连接到micro-USB接口引脚1,其标称值为5V(如果未连接USB或未通电,则为0 V)。
■VSYS: VSYS是主系统输入电压,可在1.8 V~5.5 V范围变化,由板载SMPS(Switch Mode Power Supply,开关电源)为RP2040 MCU芯片及其GPIO产生3.3V电压。
■3V3_EN: 3V3_EN连接到板载SMPS使能引脚,并通过100kΩ电阻上拉至VSYS。若禁用3.3 V(撤消RP2040电源),请将3V3_EN引脚与低电平短路。
■3V3: 3V3是RP2040 MCU及其I/O接口的主要3.3 V电源,由板载SMPS产生。此引脚可用来为外部电路供电(最大输出电流取决于 RP2040 负载和VSYS 电压,建议将该引脚上的负载保持在300 mA以下)。
■ADC_VREF: ADC_VREF是ADC电源(和基准)电压,通过对3.3V电源进行滤波在树莓派Pico上产生。若需要更好的ADC性能,则可将该引脚与外部基准一起配合使用。
■AGND: AGND模拟地专门用于GPIO26-GPIO29信号的参考接地;单独的模拟接地层连接至AGND引脚。若不使用ADC或ADC性能不是特别关键,则可将该引脚直接接到数字地GND。
■RUN: RUN是RP2040 MCU芯片使能引脚,它有一个连接到3.3V的内部(片上)上拉电阻,该电阻为50kΩ。将此引脚与低电平短路将对RP2040 MCU进行复位。
Pico的GPIO由板载3.3V电源供电。RP2040 MCU芯片可用的30个GPIO引脚中的26个引脚通过电路布线引入到Pico开发板硬件扩展接口。GPIO0至GPIO22仅为数字GPIO引脚,而GPIO 26-28可用作数字GPIO引脚或用作ADC输入引脚(软件选择)。
提醒注意的是,具有ADC功能的GPIO26-29引脚在VDDIO(3V3)端之间分别接有内部反向二极管,其输入电压不能超过VDDIO+ 300mV。另外,如果RP2040芯片未加电,对这些GPIO引脚输入电压将通过二极管“泄漏”到VDDIO端。普通数字GPIO 0-25引脚(以及调试引脚)则没有此限制,因此,当RP2040 MCU上电时,可以安全地向这些引脚输入电压。
二、Flash编程/程序烧写
我们可通过SWD(Serial Wire Debug)串口或专用USB海量存储方式对Pico板载2MByte Flash进行(重新)编程。
对树莓派Pico Flash进行重新编程/烧写程序的最简洁方法是使用USB海量存储方式。首先拔下Pico开发板连接电脑侧的USB电缆线(Pico断电),然后按下Pico开发板的[BOOTSEL]按钮并保持;再次将Pico开发板USB电缆线连接到已开机的电脑后,然后松开[BOOTSEL]按钮,Pico开发板将以USB海量存储设备模式呈现,可以看到电脑上添加了一个新U盘;将一个专门的扩展名为“. uf2”的文件拖拽到新U盘,该文件将被烧写到Flash并重新启动Pico。
USB引导程序代码(USB Boot code)被存储在RP2040 MCU片内ROM中。
三、树莓派Pico开发板电源模块解析
树莓派Pico开发板电源电路见图3所示,可使用电脑USB接口为Pico供电。Pico电源设计采用简单而灵活的结构,我们可以十分容易使用电池或外部电源其其供电,将Pico与外部充电电路进行整合也十分方便。
树莓派Pico开发板硬件扩展接口及电源模块解析
图3 树莓派Pico开发板模块硬件原理图
VBUS是来自Micro USB接口的5V输入电源,它通过肖特基二极管D1馈电产生VSYS,VBUS到VSYS二极管(D1)采用多电源选择功能的Oring电源架构来增加其灵活性。
VSYS是主系统的“输入电压”,它为RT6150降压-升压型SMPS(Switching Mode Power Supply,开关电源)芯片供电,RT6150输出固定的3.3V电源,该电源可用于RP2040 MCU芯片及其GPIO(可用作外部电路供电)。
注意:Pico开发板RP2040 MCU芯片内部有一个片上低压差稳压器(LDO, Low Dropout Regulator)模块,它用于将3.3V电源转换成1.1V标称电源为MCU数字核供电,该电源模块没有在图3中呈现出来。
VSYS经R5、C3滤波并除以3[即:VSYS×R6/(R5+R6)=3.3V/3=1.1V,见图4左下角的R5、R6和C3]后,可通过ADC3(GPIO29)进行监视,比如可用作简单的电池电压监测。
树莓派Pico开发板硬件扩展接口及电源模块解析
图4 VSYS滤波及其电压监测电路
要说明的是,这里的ADC GPIO引脚有二极管与VDDIO连接,而其他GPIO引脚则无二极管连接。
当3V3电源断开时(存在VSYS电源但3V3_EN为低电平),FET(Q1)阻止通过ADC3引脚所接的二极管泄漏到3V3电源网络。
顾名思义,降压-升压型SMPS(The buck-boost SMPS)可以从降压模式无缝切换到升压模式,因此可以保持在大约1.8V至5.5V的各种输入电压范围内提供3.3V的输出电压,这为电源选择提供了很大的灵活性。
GPIO24监控VBUS是否存在,R10(=5.6kΩ)和R1(=10kΩ)将VBUS分压拉低,如果VBUS不存在,则其电压值为0V。
GPIO23控制RT6150 PS(节电)引脚。当PS为低电平(Pico的默认设置)时,稳压器工作于脉冲频率调制(PFM,Pulse Frequency Modulation)模式,在轻载条件下仅偶尔打开MOSFET使电容器充电以降低功耗。将PS设置为高电平将使调节器进入脉宽调制(PWM,Pulse Width Modulation)模式。PWM模式强制SMPS连续切换,在轻载条件下使输出纹波大为降低(这对某些应用可能不错),但是却以牺牲效率为代价。注意,在大负载条件下,无论PS引脚状态如何,转换器都将工作于PWM模式。SMPS开关电源芯片EN引脚通过100K电阻R2上拉至VSYS,该引脚在Pico开发板扩展接口引脚37上可以使用,对应的扩展接口引脚名称为3V3_EN。将该引脚接地短路将禁用转换器并将其置于低功耗状态。
参考文献:
[1] 树莓派Pico官方数据手册. Raspberry Pi Pico Datasheet-An RP2040-based microcontroller board, Raspberry Pi Trading Ltd, 2021-01-21.
[2] Gareth Halfacree, Ben Everard. Get started with MicroPython on Raspberry Pi Pico, Raspberry Pi Trading Ltd, 2021-01-21.
[3] 博主CSDN博文. 运用PWM技术及MicroPython实现树莓派Pico板上LED呼吸灯视觉效果.

(Email联系:yuanzywhu@163.com)
发布日期:2021年02月19日

上一篇:ESP8266|RPi pico 通过ESP8266搭建web服务器(树莓派pico通过esp8266联网)


下一篇:【micropython】用Raspberry Pi PICO学micropython