这是一款基于树莓派基金会推出的微控制器RP2040制作的多功能硬件调试助手 - 取名为“12指神探”,意为它有12根引脚、功能灵活、搭配不同的程序,可以做成各种调试器。这主要得益于RP2040的几个特性:
内部有两个Arm Cortex M0+的内核,官方推荐时钟为133MHz,实际超频到250MHz没有问题;
每根管脚都可以独立编程(类似FPGA的状态机,可以通过汇编语言编程)使用的PIO,可以用来生成各种常用的、以及自定义的协议;
RP2040的管脚可以灵活配置后成组支持最常用的串行总线 - SPI、I2C、UART以及PWM;
原生支持MicroPython,方便对软件不是很擅长的用户根据需要从网上获取开源的程序灵活使用,而不彼此影响。
硬禾学堂迄今尝试的很多功能都可以通过这个模块实现并已经得到验证:
生成分频到不同频率的时钟信号
可调频率和占空比的PWM信号
灵活访问SPI、I2C外设 - 通过杜邦线连接LCD显示屏、传感器等
驱动LED矩阵灯板 - 8*8单色LED,可以多块板级联使用
驱动雪花灯板 - 使用WS2812B,多个雪花灯板级联使用
连接R-2R电阻网络做DAC,通过DDS机制生成高达20MHz的任意波形
通过PWM + LPF做DAC,通过DDS机制生成高达50KHz任意波形
逻辑分析仪 - 使用开源的PulseView工具,实现9位的逻辑分析仪功能,时钟频率运行在120MHz
DAPLink调试器 - 硬禾网友”2022寒假在家一起练“完成的项目
最多3个通道ADC/数据采集 - 500Ksps的采样率,这个模块上保留有了3个模拟/数字共用的管脚
除了上述我们已经尝试的功能外,这个模块还可以做的事情,而且已经有网友实现并分享了项目的:
生成VGA视频信号
生成HDMI信号
制作一个USB Host或Slave
CAN总线调试器
FPGA下载器/调试器 - 支持Lattice、Xilinx的FPGA
连接摄像头,通过TinyML做边缘计算
......
总之,你可以把它看成一个基于RP2040的最小系统,通过编程可以实现任意功能,唯一的限制是它只有9根IO管脚,好处是使用灵活。当然也可以用来学习编程 - 无论是C/C++还是MicroPython,你也可以把它当成一个小巧的学习板/开发板使用,使用起来跟Pico模块无异,通过杜邦线就可以跟各种外设进行连接。
这个模块是通过Type C的USB接口提供供电、下载以及通信的功能,板上有5V转3.3V,最高支持800mA的电压变换器,在12根引脚上也将5V和3.3V引出,方便对其它外设板供电。
在这里我采用了12根管脚的方式,除去一个3.3V、一个5V的电源管脚、一个GND管脚,还有9根IO管脚(这个板上的CH0-CH8对应于RP2040的GPIO20-GPIO28),即便用于8bit的ADC、DAC也都可以,如果采用R-2R的DAC,驱动串行的OLED、LCD显示屏(即便带触摸)都应该没有问题,连接摄像头也可以。
硬件技术规格:
基于RP2040微控制器
板上2MB Flash
板上12MHz晶体
板上有5V转3.3V 的同步降压转换芯片,提供最高800mA电流
板上一颗红色LED用来指示3.3V正常
板上一颗绿色LED用来提供给编程使用
做成双排2.54mm间距的连接器,可以方便插在面包板上或其它扩展板上,灵活地支持各种功能