发作品签到
专业版

异形RP2040开发板

工程标签

186
0
0
0

简介

异形RP2040开发板,双核CortexM0+@133MHz,具有LCD排线接口,SD卡槽,WS2812B灯,6轴陀螺仪,拨轮按键,调试接口串口引出等特点

简介:异形RP2040开发板,双核CortexM0+@133MHz,具有LCD排线接口,SD卡槽,WS2812B灯,6轴陀螺仪,拨轮按键,调试接口串口引出等特点

开源协议

MIT License

创建时间:2024-09-24 20:35:25更新时间:2025-01-27 20:57:10

描述

异形RP2040开发板

因为想做一些异形的开发板,这个双排针引出并不适用于面包板

RP2040这个芯片个人觉得很有意思的,五块钱一片,价格便宜功能强,社区也比较强大(但是主要是外网),B站有不少教程

RP2040的参数:

RP2040 芯片是 7×7mm QFN-56 封装的,具体规格参数如下:
– 双核 Arm Cortex-M0 + @ 133MHz
– 芯片内置 264KB SRAM 和 2MB 的板载闪存
– 通过专用 QSPI 总线支持最高 16MB 的片外闪存
– DMA 控制器
– 30 个 GPIO 引脚,其中 4 个可用作模拟输入
– 2 个 UART、2 个 SPI 控制器和 2 个 I2C 控制器
– 16 个 PWM 通道
– USB 1.1 主机和从机支持
– 8 个树莓派可编程 I/O(PIO)状态机,用于自定义外围设备支持
– 支持 UF2 的 USB 大容量存储启动模式,用于拖放式编程

屏幕采用了容易买到的插接式1.44寸240*135像素的ST7789屏幕

屏幕购买链接:1.14寸lcd 液晶屏 显示屏tft lcd彩色液晶高清ips st7789 135x240

使用62.5MHZ(最大)的SPI+DMA驱动LVGL,效果还可以,跑分结果如下:

LVGL v8.3.5  Benchmark (in csv format)
Weighted FPS: 50
Opa. speed: 84%
Rectangle,101
Rectangle + opa,63
Rectangle rounded,46
Rectangle rounded + opa,33

...

加速度计采用ST的LSM6DS3,但是不知道为什么发热非常大

而且我买过两次全新正版芯片都读不出来数据,不知道是哪的问题,后来我买的模块从模块上拆下来的加速度计能用,如果没有这个需求的建议空焊加速度计这部分

 

开发环境:编译&下载

我用的是树莓派官方的C/C++ SDK,没有使用MicroPython,但是官方的树莓派Pico1的MicoPython固件在这里仍然适用

关于C SDK,资料还是不少的,因为我用的是C,所以我这里着重介绍一下C SDK,B站也有教程,可以参考这位大佬的:用C和C++玩树莓派PICO

SDK分为1和2两个大版本,1更新到1.5.1就停止了,2还在更新,目前的教程大多数1.5.1的,也是够用了,SDK:https://github.com/raspberrypi/pico-sdk

开发环境主要是VSCode或者CLion,VSCode有树莓派官方的插件,但是官方插件下载SDK还有工具链的时候受限于网络原因可能不很好用,CLion主要是手动搭建,因为这个SDK完全采用CMake组织编译,CLion本身就是支持CMake的

总体的流程就是CMake调用arm-none-eabi-gcc编译,再由openocd烧录,调试器就用Daplink就行,树莓派官方那个Debug Probe本质也是个Daplink

与STM32每个工程都自带底层驱动库不同的是,一般的rp2040的每个工程都有一个pico_sdk_import.cmake用于导入一个固定位置的sdk,每个工程仅包含用户代码

如果嫌麻烦可以找VSCode的环境搭建教程,相比于CLion会更简单一些,树莓派官方也有很多环境搭建教程,但是缺点是都是英文的:Getting Started with the C/C++ SDK

国内的CSDN上也有教程RP2040 VSCode C/C++开发环境快速部署

 

板子背面有一个1.25mm间距8p的座子,引出来了5V供电3.3V供电(两组供电任选一组都可以保证芯片正常运行,但是板子上只有5V降压3.3v的电路,如果外围设备需要5V供电的话还是建议接上5V,不然还得插C口)调试接口(SWDIO,SWCLK)串口(TX,RX)

使用一根8p的线就能实现基本的调试所需的功能,所以建议各位使用带虚拟串口的daplink,整体开发非常干净舒适,

我用的是ABrobot的超小daplink:超迷你高速DAPLink下载器仿真器 合宙AIR32F103芯片性能超ST-LINK

1.25排线购买链接:1.25mm 2/3/4/5/6/7/8/9/10P 单头电子线 端子线 长10CM连接线

 

树莓派官方支持FreeRTOS的普通版本的和SMP版本(对称多处理器,支持双核调度),我也在尝试用这个板子学习FreeRTOS,CLion内置对RTOS的调试支持

命中断点时可以显示任务状态,队列信息,定时器信息等

 

其他内容

RP2040内置两个PIO(Programmable I/O,可编程IO),每个PIO有4个状态机,相当于8个小单片机(更像是FPGA),每个PIO内部可以存储32条16bit的汇编指令,这些状态机可以独立于CPU执行用户的汇编程序(虽然最多只有32条代码,但是已经非常够用了),用户可以使用PIO自定义通信协议,或者I2C SPI等外设不够用时模拟成这些外设(官方有PIO版本的I2C,SPI,UART),我尝试过使用PIO来驱动8位并口的GC9A01屏幕,速度非常快,而且本来并口刷屏就快,pio还支持使用dma传输数据,我测试下来用PIO+DMA刷一张200*200的图片连刷屏纹路都看不到!

(放不了视频,各位可以在附件里查看)但是受限于CPU瓶颈,LVGL跑分也就是50帧左右,对于这个240*240的屏幕来说我感觉很够了

 

树莓派官方给的例程非常多,几乎包含了所有外设和功能,参考:https://github.com/raspberrypi/pico-examples

ST7789驱动移植自:https://github.com/Floyd-Fish/ST7789-STM32

有问题欢迎各位指出,感谢大家

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
[工程]rp2040_Blink.zip
0
2
[工程]rp2040_lvgl_v8_dma.zip
0
3
[工程]rp2040_sd_fatfs.zip
0
4
[工程模板]template.zip
0
5
PIO刷屏测试视频.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航