RP2040(树莓派Pico) USB
RP2040的C SDK中的USB基本上是用TinyUSB框架实现的,关于这个框架,建议到框架的GitHub页面去查看,因为都是USB,实际上都很通用,不妨参照下我之前写的<使用STM32CubeMX编写USB复合设备>这篇文章. 使用STM32CubeMX编写USB复合设备...
RP2040的C SDK中的USB基本上是用TinyUSB框架实现的,关于这个框架,建议到框架的GitHub页面去查看,因为都是USB,实际上都很通用,不妨参照下我之前写的<使用STM32CubeMX编写USB复合设备>这篇文章. 使用STM32CubeMX编写USB复合设备...
这次拿来开刀的是WS2812,具体代码可见 => https://github.com/raspberrypi/pico-examples/blob/master/pio/ws2812/ws2812.pio .program ws2812 .side_set 1 .define public T1 2 .define public T2 5 .define public T3 3 .lang...
之前已经说过,PIO支持的多条指令. JMP命令 => JMP (条件) [地址],条件可以是如下数值: 000 = 无条件(默认)!X = X 寄存器为0X-- = X 寄存器在减1后非零!Y = Y 寄存器为0Y-- = Y 寄存器在减1后非零X!=Y = 两者不等PIN = 引脚...
RP2040中有2个相同的PIO块,每个PIO块都有专用的连接到总线结构,GPIO和中断控制器.单个PIO块的示意图如图所示. PIO是一种通用的硬件接口,它可以支持多种IO标准.包括实现以下功能: 8080/6080 并行接口I2CI2SSDIOSPI/DSPI/QSP...
定时器功能也很基础,而且只有一个,主要功能如下: 64位计数器 (频率固定1MHz,所以要好几千年才能溢出!)4个闹钟 (闹钟是只匹配低32B,最大间隔4295秒.)寄存器自带映射,所以多个处理器同时访问也不用考虑竞争问题. (无需考虑竞争问题....
这个芯片内置看门狗,但是只是最基础的看门狗,不过RP2040的很多外设都是很基础的配置,按照手册来说,他可以定时范围从你绝对喂不上狗(1个WDG周期)到16秒左右,但是根据SDK限制,你最短是50ms,最长是8秒,为什么8秒?又是一个芯片设计BUG......
树莓派PWM几乎可以用在每一个IO上,有8对,文档里写是16个CH,但其实是8对(但是并不互补,也没有死区功能.),对于传统单片机只会说自己是8个CH,不知道树莓派是怎么说自己16的... 感觉有点扯,另外B输入可以选择很多条,当选择多条时候是OR逻...
这可以说是三个最常用的通信外设,他们的本质都一样,发送字节(这不是废话,以太网也是发送字节啊,只不过有规范.),他们只需要暴漏几个函数,读/写以及其他辅助函数,例如初始化/中断. I2C技术参数: 主从模式 (默认主机,从机地址0x55...
SIO是利用Cortex-M0的辅助总线IOPORT进行32B访问的,目的就是为了节约访问时间,做一些高速计算任务,也可以用于两个核心之间的通信. SIO的读写操作均为1个周期完成,最常用的就是双核心FIFO,互相交换数据,CPUID识别目前工作核心,...
GPIO可以用来操作任何东西,只要你愿意,并且GPIO反应速度够,就可以模拟出任何时序,并且GPIO一般可以复用于其他功能,可以从以前的图中看到. 不过Pico的GPIO能力还真是非常基础的,具体如下: GPIO 输入/输出/翻转GPIO 中断(上...