# 树莓派RP2040芯片介绍

树莓派基金会在2021年1月21日发布了一款新的微控制器RP2040,这款微控制器采用ARM Cortex-M0+内核,主频133MHz,内置264KB SRAM,支持USB 1.1主机/设备,支持SPI、I2C、UART、PIO、PWM、ADC、DMA等外设,支持多达30个GPIO,支持多达16MB的外部闪存,支持低功耗模式,支持多种封装,支持多种开发工具链,支持C/C++、MicroPython、Rust等多种编程语言,支持Arduino IDE、MicroPython、CircuitPython等多种开发环境,支持Windows、Linux、macOS等多种操作系统。

# 基于 RP2040 的开发板

Raspberry Pi Pico 系列由树莓派官方设计,既是开发板,也是参考设计,是基于 RP2040 的电路板系列。Pico 家族目前由 Raspberry Pi Pico(最左),Pico H(左),Pico W(右)和 Pico WH(最右)组成。

RP2040 的开发板

板上最主要的功能是一端的microUSB连接器。它既用于通信,也用于给Pico供电。

在microUSB连接器旁边安装了一个板载LED,它内部连接到GPIO针脚25。

值得注意的是,这是整个Pico板上唯一的LED。

开机按钮安装在离LED稍低一点的地方,它可以让你改变Pico的启动模式,这样你就可以在上面加载MicroPython,进行Pyrhon编程。

在板子的底部,你会看到三个连接点,这些连接点是用于串行Debug选项的,我们今天是入门,暂时不探讨这个问题,高级开发者会比较感兴趣。

在板子的中央是整个板子的“大脑”——RP2040 MCU,我们一会儿就会研究它的功能。

# RP2040开发板引脚图

RP2040开发板引脚图

# 接地引脚

板子上有好几个地线,8个地线加上3针Debug连接器上的一个附加地线。

这些引脚很容易发现,它们是均匀的,而且是方形的,而不是像其他连接的圆形。

其中一个位于33号针脚的地线也被指定为模拟地线。

# 电源引脚

Pico是一个3.3V的逻辑器件,但由于内置了电压转换器和稳压器,它可以用一系列电源供电。

所有与电源相关的引脚都被安排在了一起,靠近microUSB连接器。

VBUS - 这是来自 microUSB 总线的电源,5 V。如果Pico不是由microUSB连接器供电,那么这里将没有输出。 VSYS - 这是输入电压,范围为 2 至 5 V。板载电压转换器将为 Pico 将其改为 3.3 V。 3V3 - 这是 Pico 内部调节器的 3.3 伏输出。只要将负载保持在 300ma 以下,它就可用于为其他组件供电。 还有几个输入可以让你控制 Pico 的电源。

3V3_EN - 你可以使用此输入禁用 Pico 的内部电压调节器,从而关闭 Pico 和由其供电的任何组件。 RUN - 可以启用或禁用 RP2040 微控制器,也可以将其复位。

# GPIO引脚

树莓派 Pico板上有26个裸露的GPIO连接。

它们的排列顺序很好,在GPIO 22和GPIO 26之间有一个 "空隙"(这些 "缺失 "的引脚在内部使用)。

这些引脚都有多种功能,你可以为PWM配置多达16个引脚。

有两个I2C总线,两个UART和两个SPI总线,这些可以配置使用多种GPIO引脚。

# 模拟引脚

Pico有三个模数转换器,还有一个内部用于板载温度传感器的转换器。

ADC的分辨率为12位。

你也可以在ADC_VREF引脚上提供一个外部精密电压参考。其中一个接地点,即33脚上的ADC_GND被用作该参考点的接地点。

# RP2040微控制器

树莓派 Pico是围绕基金会的新芯片RP2040微控制器而设计的。下面是它的参数:

  • 双核32位ARM Cortex -M0+处理器
  • 运行在48MHz,但可以超频到133MHz。
  • 30个GPIO引脚(26个暴露)
  • 可支持USB主机或设备模式
  • 8 可编程I/O(PIO)状态机

RP2040能够支持高达16MB的片外闪存,不过在Pico中只有4MB。

树莓派基金会对这款芯片有很多计划,也已经授权给了很多其他厂商。

# 对RP2040进行编程

你可以使用两种编程语言之一开始使用 Pico。

  • MicroPython - 一种专门为微控制器制作的解释语言。
  • C++ - 许多微控制器用户都熟悉C++,因为它被用于Arduino和ESP32板上。

虽然我急于将C++与Pico一起使用,以榨取它的每一克性能,但还是决定与大多数人一样,使用MicroPython。

# 使用MicroPython

推荐工具:鹿戴马物联开发工具链 (opens new window)

# 安装MicroPython

我们需要做的第一件事是将MicroPython安装到RP2040上。

使用鹿戴马设备初始化工具:鹿戴马 (opens new window)

将microUSB连接到Pico上,在插入之前,先按下Pico上的BootSel(开关)按钮,然后将另一端插入电脑。

具体烧录方法移步:树莓派rp2040pico开发板烧录方式 (opens new window)

# 使用MicroPython REPL

经过上面的步骤,你的Pico现在应该已经运行MicroPython了。

打开鹿戴马物联终端工具 (opens new window)

点击连接,选择串口,点击打开串口,然后点击REPL,你就可以在REPL中输入MicroPython代码了。

默认连接后,终端窗口可能什么都不显示,这是因为芯片上的程序已经运行了,你可以按一下回车键,就可以看到提示符了。

>>>

提示符,如果没有出现,你可以再按一下Ctrl+C,就可以看到提示符了。就证明你已经成功连接并进入了REPL。你可以直接在这里执行代码。

一个简单的测试是输入以下内容(这也是查看你是否正确连接到 Pico 的好方法),然后按 Enter 键。

print(“Hello World”)

你应该在shell中看到 "Hello World "被打印出来了,当然这是你告诉Pico要做的。

# 经典案例 -- 点灯

我们来做一个经典的项目,让LED闪烁。

同样,我们先打开鹿戴马物联终端工具 (opens new window)

然后在多行输入框中输入以下代码,然后点击运行。

from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
    led.toggle()
    time.sleep(0.5)

如下图所示,你就可以看到LED闪烁了。 点击示例

此时,就可以看到LED闪烁了。

RP2040板载灯