167浏览
查看: 167|回复: 1

[讨论] 树莓派 PICO 2 简介、MicroPython程序测试

[复制链接]
本帖最后由 无垠的广袤 于 2025-4-14 15:01 编辑

树莓派 PICO 2 测试

本文介绍了树莓派 PICO 2 的基本参数特点、原理图等,包括开发环境搭建、工程测试等流程。

介绍

树莓派官方于 2024 年 8 月 发布了 RP2350 微控制器,并同步发布了树莓派 Pico 2。这是树莓派的第二代微控制器板,基于 RP2350 设计的新型高性能、安全的微控制器。
树莓派 PICO 2 简介、MicroPython程序测试图1
凭借更高的内核时钟速度、两倍的内存、更强大的 ARM 内核、新的安全功能和升级的接口功能,Pico 2 提供了显著的性能和功能提升,同时保留了与 Pico 系列早期成员的硬件和软件兼容性。

特点
RP2350 具有比 RP2040 复杂得多的设计
树莓派 PICO 2 简介、MicroPython程序测试图2
  • – 两个 150MHz Arm Cortex-M33 内核,支持浮点和 DSP
  • – 内置 520KB SRAM
  • – 围绕 Arm TrustZone for Cortex-M 构建的综合安全架构
  • – 内置开关模式电源和低静态电流 LDO
  • – 12 个升级的 PIO 状态机
  • – 用于高速数据传输的新型 HSTX 外设
  • – 支持外部 QSPI PSRAM

参数
  • – 双核 Arm Cortex-M33 或双核 Hazard3 处理器 @ 150MHz
  • – 520 KB 片上 SRAM
  • – 软件和硬件与树莓派 Pico 1 代兼容
  • – 通过 USB 使用大容量存储进行拖放式编程
  • – 齿形模块允许直接焊接到载板上
  • – 强大且完整记录的安全功能
  • – 受保护的 OTP 存储,用于可选的启动解密密钥
  • – 基于 Arm 或 RISC-V 安全/权限级别的全局总线过滤
  • – 外设、GPIO 和 DMA 通道可单独分配给安全域
  • – 故障注入攻击的硬件缓解措施
  • – 硬件 SHA-256 加速器
  • – 2 × UART
  • – 2 × SPI控制器
  • – 2 × I2C 控制器
  • – 24 × PWM 通道
  • – 4 个 ADC 通道
  • – 1 × USB 1.1 控制器和 PHY,支持主机和设备
  • – 12 × PIO 状态机
  • – 开源 C/C++ SDK,MicroPython 支持
  • – 工作温度 -20°C 至 +85°C
  • – 支持的输入电压 1.8–5.5V DC

官方称 RP2350 与 RP2040 在软件和硬件上都是向前兼容的(RP2350 兼容 RP2040 的软件和硬件),这可能意味着针对 RP2040 设计的外设模块,仍然可以直接在 RP2350 上使用。

实物
Top view
树莓派 PICO 2 简介、MicroPython程序测试图3
Bottom view
树莓派 PICO 2 简介、MicroPython程序测试图4


管脚定义
树莓派 PICO 2 简介、MicroPython程序测试图5


原理图
树莓派 PICO 2 简介、MicroPython程序测试图6
开发环境搭建
介绍了针对树莓派 PICO 2 的 MicroPython 安装流程。

Thonny IDE
电脑需安装最新版 Python 软件;
下载并安装 Thonny IDE
运行 Thonny 软件,右下角选择 MicroPython (Raspberry Pi Pico) 解释器,并选择 Pico 对应的端口号。
  • 下载 MicroPython 的 UF2 文件;
  • 按住 Pico 开发板上的 BOOTSEL 按钮,给 Pico 上电连接电脑,松开 BOOTSEL 按钮;
  • Pico 会被识别为大容量存储设备;
  • 将下载的 MicroPython 固件 UF2 文件拖入 RPI-RP2 卷内,之后 Pico 自动重启,MicroPython 开始运行


工程测试
介绍了使用 MicroPython 对树莓派 Pico2 进行工程测试的主要流程,包括 Blink 和 PWM 呼吸灯的代码和效果展示。


闪灯

代码
  1. from machine import Pin
  2. from utime import sleep
  3. import utime
  4. led = Pin(25, Pin.OUT)
  5. if __name__ == '__main__':
  6.     while True:
  7.         # led点亮
  8.         led.value(1)
  9.         utime.sleep_ms(100)
  10.         # led熄灭
  11.         led.value(0)
  12.         utime.sleep_ms(100)
复制代码

定时器
  1. from machine import Pin, Timer
  2. led = Pin("LED", Pin.OUT)
  3. tim = Timer()
  4. def tick(timer):
  5.     global led
  6.     led.toggle()
  7. tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)
复制代码


效果
树莓派 PICO 2 简介、MicroPython程序测试图7
呼吸灯

代码
  1. import utime
  2. from machine import Pin,PWM
  3. PWM_PulseWidth=0
  4. pwm_LED=PWM(Pin(25))
  5. pwm_LED.freq(500)
  6. while True:
  7.     while PWM_PulseWidth<65535:
  8.         PWM_PulseWidth=PWM_PulseWidth+50
  9.         utime.sleep_ms(1)   #延时1ms
  10.         pwm_LED.duty_u16(PWM_PulseWidth)
  11.     while PWM_PulseWidth>0:
  12.         PWM_PulseWidth=PWM_PulseWidth-50
  13.         utime.sleep_ms(1)
  14.         pwm_LED.duty_u16(PWM_PulseWidth)
复制代码


Code
  1. from machine import Pin, Timer, PWM
  2. import utime
  3. led = PWM(Pin(25))
  4. # 设置频率值
  5. led.freq(1000)
  6. led_value = 0
  7. # led以5%增长/减少的速度变化亮度
  8. led_space = 5
  9. if __name__ == '__main__':
  10.   while True:
  11.     led_value += led_space
  12.     if led_value >= 100:
  13.       led_value = 100
  14.       led_space = -5
  15.     elif led_value <= 0:
  16.       led_value = 0
  17.       led_space = 5
  18.     # 设置占空比,需在0-65535之间
  19.     led.duty_u16(int(led_value * 500))
  20.     utime.sleep_ms(100)
复制代码


效果
树莓派 PICO 2 简介、MicroPython程序测试图8


UART


代码
  1. from machine import UART, Pin
  2. import time
  3. uart1 = UART(1, baudrate=115200, tx=Pin(8), rx=Pin(9)) #设置串口1和波特率,TX--8,RX--9
  4. uart0 = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1)) #设置串口0和波特率,TX--0,RX--1
  5. txData = b'hello world\n\r'
  6. uart1.write(txData)
  7. time.sleep(0.1)
  8. rxData = bytes()
  9. while uart0.any() > 0:
  10.     rxData += uart0.read(1)
  11. print(rxData.decode('utf-8'))
复制代码

硬件连接
  1. GPIO8 -> GPIO1
  2. GPIO9 -> GPIO0
复制代码

树莓派 PICO 2 简介、MicroPython程序测试图9
效果
树莓派 PICO 2 简介、MicroPython程序测试图10
参考:树莓派官方文档 raspberry-pi-pico-python-sdk-2

ADC

代码
  1. import machine
  2. import utime
  3. sensor_temp = machine.ADC(4)
  4. conversion_factor = 3.3 / (65535)
  5. while True:
  6.     reading = sensor_temp.read_u16() * conversion_factor
  7.     # The temperature sensor measures the Vbe voltage of a biased bipolar diode, connected to the fifth ADC channel
  8.     # Typically, Vbe = 0.706V at 27 degrees C, with a slope of -1.721mV (0.001721) per degree.
  9.     temperature = 27 - (reading - 0.706)/0.001721
  10.     print(temperature)
  11.     utime.sleep(2)
复制代码

效果
树莓派 PICO 2 简介、MicroPython程序测试图11

总结
本文介绍了树莓派 PICO 2 的基本参数特点、原理图等,包括开发环境搭建、工程测试等流程,为后续深入开发和应用扩展作铺垫,也为相关产品的应用提供了参考。





木子哦  管理员

发表于 2025-4-14 14:59:49

感谢分享!好内容
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail