首页
/ Arduino-Pico项目中RP2350芯片UART引脚功能扩展解析

Arduino-Pico项目中RP2350芯片UART引脚功能扩展解析

2025-07-02 17:22:44作者:昌雅子Ethen

在嵌入式开发领域,灵活配置硬件接口是提升设计灵活性的关键。近期在Arduino-Pico项目中发现了一个关于RP2350系列芯片UART引脚配置的重要功能扩展点,本文将深入分析这一技术细节及其实现方案。

背景分析

RP2350系列芯片(包括RP2350A和RP2350B型号)相比前代产品提供了更丰富的UART引脚映射选项。芯片设计上新增了GPIO功能选择寄存器F11(GPIO_FUNC_UART_AUX),允许开发者将更多GPIO引脚配置为UART通信接口。这一特性在现有Arduino-Pico核心库中尚未完全支持。

技术细节

传统RP2040芯片仅支持有限的UART引脚组合:

  • UART0:TX(0/12/16/28), RX(1/13/17/29)
  • UART1:TX(4/8/20/24), RX(5/9/21/25)

而RP2350系列通过F11功能选择扩展了支持范围:

  • RP2350A新增引脚:
    • UART0:TX(2/14/18), RX(3/15/19)
    • UART1:TX(6/10/22/26), RX(7/11/23/27)
  • RP2350B进一步扩展:
    • UART0:TX(30/32/34/44/46), RX(31/33/35/45/47)
    • UART1:TX(36/38/40/42), RX(37/39/41/43)

实现方案

核心修改涉及两个方面:

  1. 引脚定义扩展:在SerialUART类的setRX/setTX方法中增加对新引脚的支持
  2. 功能选择逻辑:在初始化时自动识别并设置GPIO_FUNC_UART或GPIO_FUNC_UART_AUX

关键实现代码如下:

// 针对RP2350B的扩展引脚定义
constexpr uint64_t valid[2] = { 
    __bitset({0,2,12,14,16,18,28,30,32,34,44,46}), // UART0 TX
    __bitset({4,6,8,10,20,22,24,26,36,38,40,42})   // UART1 TX
};

实际应用价值

这一改进为开发者带来三大优势:

  1. 布局灵活性:在复杂PCB设计中提供更多布线选择
  2. 外设兼容性:可避开与其他功能冲突的引脚
  3. 设计扩展性:为未来可能添加的外设预留更多接口选项

验证与稳定性

修改方案已经过实际硬件测试,验证了以下场景:

  • 标准UART引脚(GPIO_FUNC_UART)通信
  • 扩展UART引脚(GPIO_FUNC_UART_AUX)通信
  • 不同波特率下的数据传输稳定性
  • 多UART实例并行工作情况

结语

这一改进充分体现了开源硬件平台的演进特性。通过持续完善对芯片特性的支持,Arduino-Pico项目为开发者提供了更强大的硬件抽象层,使得基于RP2040/RP2350的开发工作能够更加高效灵活。建议使用RP2350系列芯片的开发者及时更新核心库以获取这一功能增强。

登录后查看全文
热门项目推荐

项目优选

收起
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
52
461
kernelkernel
deepin linux kernel
C
22
5
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
349
381
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
131
185
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
873
517
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
336
1.09 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
264
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
608
59
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4