摘要: 一文读懂树莓派 Pico USB:硬件原理、外设架构与 MicroPython 软件控制 树莓派 Pico 的 RP2040 芯片包含一个 USB 2.0 控制器,可以作为任何一种方式操作: * 一个全速设备(12Mbps) * 一个可以与低速(1.5Mbps)和全速设备通信的主机,包括连接到一个 USB 集线器的多个下游设备 阅读全文
posted @ 2026-09-01 19:18 FreakStudio 阅读(26) 评论(0) 推荐(0)
摘要: 一文读懂 USB 协议:大话通用串行总线,从历史、架构到端点通信(下) USB 是一种异步的串行通信方式(USB 2.0 协议为半双工通信),同一时间总线上只有一包数据在传送。在 USB 总线上,数据是小端的, 也就是说先发送最低位,再发送最高位 阅读全文
posted @ 2026-09-01 19:12 FreakStudio 阅读(31) 评论(0) 推荐(0)
摘要: 一文读懂 USB 协议:大话通用串行总线,从历史、架构到端点通信(中) * **应用层 Function Layer:** * 这一层负责 USB 设备的应用功能实现 * 它定义了不同类型设备(如鼠标、键盘、扫描仪等)的具体功能和行为 * 把设备功能抽象为接口(Interface)。用户可以通过驱动或者客户软件(Client SW), 直接访问功能接口从而实现特定应用需求,提高了 USB 设备的可扩展性和可互操作性 * 不同的接口可以封装不同的设备功能,如键盘、鼠标、音频设备等。用户可以根据需要选择合适的接口进行访问和使用 阅读全文
posted @ 2026-09-01 19:01 FreakStudio 阅读(33) 评论(0) 推荐(0)
摘要: 一文读懂 USB 协议:大话通用串行总线,从历史、架构到端点通信(上) USB(Universal Serial Bus)是一种广泛应用的通用串行总线标准,它为计算机设备和外围设备之间提供了一种标准的数据传输接口。它是一种即插即用的总线标准,允许用户在计算机上连接和使用各种外围设备,如鼠标、键盘、打印机、扫描仪等。 阅读全文
posted @ 2026-09-01 18:51 FreakStudio 阅读(41) 评论(0) 推荐(0)
摘要: 深度干货向:MY18E20 单总线协议深度解析与MicroPython驱动编写 MY18E20` 是一款高精度可编程的数字单总线温度测量芯片: * 其测温范围为-55°C 到 +125°C、最高分辨率 0.015°C * 在-10°C 到 +85°C 范围内最大差为 ±0.5°C,在极端工作温度的最大误差小于 ±1.5°C * 芯片内置 80bit 非易失性存储单元,用于保存用户自定义信息, 如高低温报警阈值、传感器节点编号、位置信息、温度校准信息等 阅读全文
posted @ 2026-09-01 18:38 FreakStudio 阅读(22) 评论(0) 推荐(0)
摘要: 单总线通信实战应用:DHT11器件原理+ 协议 + 代码全拆解 DHT11` 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有较高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个 `NTC` 测温元件,并与一个高性能 8 位单片机相连接。 阅读全文
posted @ 2026-09-01 18:14 FreakStudio 阅读(15) 评论(0) 推荐(0)
摘要: 单总线协议实战:底层驱动、时序图与 MicroPython 完整实现 **​初始化单总线通信:​**包括配置引脚为开漏上拉模式,定义失能和使能中断的方法。 * **​实现单总线复位操作:​**包括主机发送复位脉冲并判断从机是否有响应。 * **​实现单比特和单字节的读写操作:​**通过控制总线状态和延时来实现时序要求。 * **​实现多字节的读写操作:​**通过循环调用读写单字节的方法来完成。 * **​实现选择指定 ROM ID 的器件的功能:​**用于选择特定的从机设备。 * **​实现基于查表法的 CRC8 校验算法:​**用于验证从设备读取的数据是否完整和正确。 * **​实现扫描功能:​**扫描总线上所有设备,并返回所有匹配的 ROM ID 的功能。 阅读全文
posted @ 2026-09-01 17:59 FreakStudio 阅读(15) 评论(0) 推荐(0)
摘要: 单总线协议深度解析:从物理层到 ROM 寻址,一文吃透核心逻辑 1-Wire 总线仅使用一根线来发送信号和供电。通信是异步和半双工的,并且遵循严格的主/从方案。总线上可以同时连接一个或多个从设备。总线上只能连接一个主设备。 阅读全文
posted @ 2026-09-01 17:46 FreakStudio 阅读(20) 评论(0) 推荐(0)
摘要: 嵌入式通信的 “极简王者”-Onewire如何用最少的硬件做最多的事 单总线(1-Wire)是由 Dallas Semiconductor 设计的有线半双工(无法同时收发数据)串行总线,可通过单根导线提供低速 (典型通信速率为 16.3 kbit/s、最高通信速率可达 142 kbit/s) 数据通信,**它采用单个信号线来传输时钟和双向数据**​**。** 阅读全文
posted @ 2026-09-01 17:36 FreakStudio 阅读(12) 评论(0) 推荐(0)
摘要: 树莓派 Pico PIO 模拟 SPI 全解析:原理、时序与代码实战 这里,我们需要使用 `KingST` 逻辑分析仪连接**`风雅一号板-通用兼容扩展板`**上的长排针: 阅读全文
posted @ 2026-09-01 17:23 FreakStudio 阅读(21) 评论(0) 推荐(0)
摘要: 树莓派 Pico PIO 模拟 UART:任意 GPIO 实现串口通信全解析 在下面实验中,我们需要将**`风雅一号板-Grove接口扩展板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时使用 `HY2.0-4P` 接线连接**`风雅一号板-Grove接口扩展板`**的 `UART1` 接口和 `GraftSense-基于CH340K的USB转TTL模块`: 阅读全文
posted @ 2026-09-01 16:52 FreakStudio 阅读(12) 评论(0) 推荐(0)
摘要: 树莓派 Pico 步进电机控制进阶:PIO 非阻塞式实现全指南 这里,我们使用 `PIO` 实现步进电机单相驱动控制,关于单相驱动控制方法简单来说就是通过控制步进电机 4 对绕组的通断顺序和频率从而实现电机运动的精确角度和速度控制,具体内容可以查看 `第四节GPIO通用输入输出` 中关于步进电机的介绍,这里不再赘述。 阅读全文
posted @ 2026-09-01 16:33 FreakStudio 阅读(10) 评论(0) 推荐(0)
摘要: RP2040 PIO 驱动 WS2812 彩灯:从原理到 MicroPython 实现 WS2812 LED` 是 `Neopixel` 可单独寻址的 RGB LED 中的一种,我们可以通过单个数据线来实现多个 `WS2812 RGB` 三色灯的控制。**WS2812 的工作原理是通过单根数据线,将 24 bit 的 RGB 颜色数据逐个传输到每个灯珠。每个 WS2812 芯片都包含一个位移寄存器,用于接收和转发数据。当接收到一帧完整的 RGB 数据后,该灯珠就会显示对应的颜色。**通过串联多个 WS2812 灯珠,可以组成灵活可编程的 LED 灯带、 LED 矩阵等。常见的应用包括装饰照明、LED 显示屏、智能灯具等。 阅读全文
posted @ 2026-09-01 16:18 FreakStudio 阅读(26) 评论(0) 推荐(0)
摘要: 动态执行指令:解锁 RP2040 PIO 更灵活的用法 * `MOV EXEC` 可以从 `Source` 指定的某个寄存器执行指令。 * `OUT EXEC` 可以执行 OSR 移出的数据。 * 从 `SMx_INSTR` 控制寄存器执行指令,系统可以将指令直接写入该寄存器,以立即执行。 阅读全文
posted @ 2026-09-01 16:03 FreakStudio 阅读(17) 评论(0) 推荐(0)
摘要: Pico PIO 中断开发:原理、时序与实战全解析 即每次中断都会打印中断标志位的十进制值和中断标志位的 12 位二进制字符串。 将代码烧录到 `Pico` 中,远程连接中断,数据输出如下: 阅读全文
posted @ 2026-09-01 15:54 FreakStudio 阅读(16) 评论(0) 推荐(0)
摘要: PIO 入门:手把手实现板载 LED 闪烁,原理与代码全解析 以下代码可以在我们提供的资料包中 `elegance-devkit v1\Demo\29 PIO_LED` 文件夹找到。 我们首先使用 PIO 控制 Pico 的板载 LED 灯闪烁,示例代码如下 阅读全文
posted @ 2026-09-01 15:45 FreakStudio 阅读(13) 评论(0) 推荐(0)
摘要: MicroPython PIO API 深度解析:StateMachine/PIO 类方法与指令全指南 通过 MicroPython 控制树莓派 Pico 的 PIO 时,需要使用 @rp2.asm\_pio 装饰器以及 PIO 类和 StateMachine 类: * pioasm 汇编程序在 @rp2.asm\_pio 装饰器函数中编写,使用的引脚 GPIO 映射、是否启用自动推出和自动加载、合并 FIFO 等也在 rp2.asm\_pio 类中指定 * 通过 StateMachine 类配置状态机实例以运行给定的 PIO 程序,同时 StateMachine 类也提供了状态机的控制方法和状态读取方法 阅读全文
posted @ 2026-09-01 15:37 FreakStudio 阅读(15) 评论(0) 推荐(0)
摘要: PIO 深度解析:控制寄存器如何掌控状态机工作 PIO0 和 PIO1 寄存器的基地址为 0x502000000 和 0x503000000。 阅读全文
posted @ 2026-09-01 15:27 FreakStudio 阅读(28) 评论(0) 推荐(0)
摘要: PIO 底层原理硬核详解:从 side-set 到指令执行全指南 Side-set 侧集特性用于在执行主指令的同时,同步修改指定 GPIO 的电平(默认)或方向,实现主操作与 GPIO 控制的并行执行(如 SPI 中 “数据输出” 与 “时钟翻转” 同步、I2C 中 “数据传输” 与 “SCL 时钟” 同步)。 阅读全文
posted @ 2026-09-01 15:11 FreakStudio 阅读(34) 评论(0) 推荐(0)
摘要: 从数据手册出发:RP2040 PIO 指令集详解 PIO 指令集共包含 9 条指令,每条指令均为 16 位长度,按功能分为 3 个固定字段(对应指令编码表): 阅读全文
posted @ 2026-09-01 14:54 FreakStudio 阅读(77) 评论(0) 推荐(0)
摘要: Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析 PIO 汇编器(pioasm)是将 PIO 汇编源文件转换为可执行机器码的工具,其输出的汇编代码可集成到 RP2040 的应用程序中(包括 SDK 构建的 C/C++ 程序、MicroPython 程序);PIO 汇编语法的核心组成之一是标识符,用于定义程序结构、常量、配置参数等,是编写 PIO 汇编程序的基础。 阅读全文
posted @ 2026-09-01 14:36 FreakStudio 阅读(121) 评论(0) 推荐(0)
摘要: RP2040 PIO 编程模型与状态机原理:从硬件架构到工作逻辑全解析 **PIO**​**​ 外设的编程模型与通用处理器存在共性:均通过顺序执行预编写的程序实现功能,且可通过 ​**​**DMA**​**​ / 中断系统完成数据交互、通过读写控制寄存器实现状态控制。**但与通用处理器不同,PIO 是专为输入输出场景设计的硬件子系统,因此具备时序确定性强、操作精度高的特点,且与 GPIO、DMA 等固定功能硬件深度绑定。 阅读全文
posted @ 2026-09-01 14:28 FreakStudio 阅读(27) 评论(0) 推荐(0)
摘要: RP2040 PIO 可编程输入输出端口:硬件结构与工作原理速览 我们不难看到,对于树莓派 Pico 板载的 RP2040 来说,其通信外设资源非常有限,当我们需要使用的通信外设数量大于树莓派 Pico 具有的通信外设(例如需要四个 UART)或者我们需要的通信协议树莓派 Pico 上硬件不支持时(例如 VGA 视频输出),我们除了使用 GPIO 软件模拟实现通信接口外,还可以选用 PIO 可编程输入输出接口。 阅读全文
posted @ 2026-09-01 10:55 FreakStudio 阅读(23) 评论(0) 推荐(0)