摘要:
随着AI技术持续快速发展,将智能模型集成到低级硬件架构上变得比以往任何时候都更加重要。在WIZnet,我们确保我们的产品能够跟上当前的技术发展,为客户提供更好的体验。
受小智-ESP32项目的启发,我们开发了由W55MH32Q/L-EVB开发板驱动的MCP聊天机器人。 阅读全文
随着AI技术持续快速发展,将智能模型集成到低级硬件架构上变得比以往任何时候都更加重要。在WIZnet,我们确保我们的产品能够跟上当前的技术发展,为客户提供更好的体验。
受小智-ESP32项目的启发,我们开发了由W55MH32Q/L-EVB开发板驱动的MCP聊天机器人。 阅读全文
posted @ 2026-09-03 18:53
FreakStudio
阅读(14)
评论(0)
推荐(0)
摘要:
我们需要将**`风雅一号板-环境与存储采集板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时打开**`风雅一号板-环境与存储采集板`**上 `SWITCH1` 拨码开关的 `SCL` 和 `SDA` 选项: 阅读全文
我们需要将**`风雅一号板-环境与存储采集板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时打开**`风雅一号板-环境与存储采集板`**上 `SWITCH1` 拨码开关的 `SCL` 和 `SDA` 选项: 阅读全文
posted @ 2026-09-03 18:43
FreakStudio
阅读(18)
评论(0)
推荐(0)
摘要:
SD 卡是一种广泛应用于数码设备的可移除存储设备,具有小型化、低功耗和大容量的特点,它主要用于存储数据、音乐、视频、图像等信息,广泛应用于手机、相机、平板电脑、嵌入式设备等。 阅读全文
SD 卡是一种广泛应用于数码设备的可移除存储设备,具有小型化、低功耗和大容量的特点,它主要用于存储数据、音乐、视频、图像等信息,广泛应用于手机、相机、平板电脑、嵌入式设备等。 阅读全文
posted @ 2026-09-03 18:33
FreakStudio
阅读(15)
评论(0)
推荐(0)
摘要:
前面我们讲到,MicroPython 没有提供块设备的操作方法,但是提供了一个抽象的块设备接口类,我们自定义块设备操作类需要符合 `vfs.AbstractBlockDev` 抽象类中定义的接口,才能实现在虚拟文件系统(VFS)中操作文件和存储设备。 阅读全文
前面我们讲到,MicroPython 没有提供块设备的操作方法,但是提供了一个抽象的块设备接口类,我们自定义块设备操作类需要符合 `vfs.AbstractBlockDev` 抽象类中定义的接口,才能实现在虚拟文件系统(VFS)中操作文件和存储设备。 阅读全文
posted @ 2026-09-03 17:53
FreakStudio
阅读(10)
评论(0)
推荐(0)
摘要:
在以下代码中,我们使用自定义类实现一个日志记录模块,能够实现如下功能: 阅读全文
在以下代码中,我们使用自定义类实现一个日志记录模块,能够实现如下功能: 阅读全文
posted @ 2026-09-03 17:28
FreakStudio
阅读(7)
评论(0)
推荐(0)
摘要:
在如下代码中,我们使用 MicroPython 中的 `os` 模块进行文件读写的例程,该代码从 `ADC` 内部温度传感器读取数据并将其写入文件,同时我们对文件中数据进行读取。 阅读全文
在如下代码中,我们使用 MicroPython 中的 `os` 模块进行文件读写的例程,该代码从 `ADC` 内部温度传感器读取数据并将其写入文件,同时我们对文件中数据进行读取。 阅读全文
posted @ 2026-09-03 17:08
FreakStudio
阅读(7)
评论(0)
推荐(0)
摘要:
os 模块提供了如下方法,用于文件读写、目录创建等操作: 阅读全文
os 模块提供了如下方法,用于文件读写、目录创建等操作: 阅读全文
posted @ 2026-09-03 17:00
FreakStudio
阅读(12)
评论(0)
推荐(0)
摘要:
在学习 MicroPython 的过程中,了解它的 “存储区域” 就像搞清楚我们的程序 “住” 在哪里、不同数据 “放” 在哪个柜子里,只有知道数据的存放规则,才能避免写出内存溢出、数据莫名出错的代码,也能理解程序运行的底层逻辑。 阅读全文
在学习 MicroPython 的过程中,了解它的 “存储区域” 就像搞清楚我们的程序 “住” 在哪里、不同数据 “放” 在哪个柜子里,只有知道数据的存放规则,才能避免写出内存溢出、数据莫名出错的代码,也能理解程序运行的底层逻辑。 阅读全文
posted @ 2026-09-03 16:53
FreakStudio
阅读(18)
评论(0)
推荐(0)
摘要:
这里,我们先先充几个核心 “映射” 概念(这是存储器访问的基础),再讲解存储器和 SRAM 的地址映射表,芯片里的资源(内存、寄存器、外设)要被访问,必须先 “编门牌号”,这就是 “映射” 的本质: 阅读全文
这里,我们先先充几个核心 “映射” 概念(这是存储器访问的基础),再讲解存储器和 SRAM 的地址映射表,芯片里的资源(内存、寄存器、外设)要被访问,必须先 “编门牌号”,这就是 “映射” 的本质: 阅读全文
posted @ 2026-09-03 16:45
FreakStudio
阅读(16)
评论(0)
推荐(0)
摘要:
在之前的课程中,我们已经编写了一些运行在树莓派 Pico 开发板上的 MicroPython 程序,并且使用 PyCharm 的 MicroPython 插件将编写好的代码上传到开发板(即烧录程序),代码上传后,MicroPython 虚拟机会将其编译为字节码,虚拟机的解释器也会逐行解释字节码并将其转换为低级指令,与 MCU 的硬件资源进行交互。 阅读全文
在之前的课程中,我们已经编写了一些运行在树莓派 Pico 开发板上的 MicroPython 程序,并且使用 PyCharm 的 MicroPython 插件将编写好的代码上传到开发板(即烧录程序),代码上传后,MicroPython 虚拟机会将其编译为字节码,虚拟机的解释器也会逐行解释字节码并将其转换为低级指令,与 MCU 的硬件资源进行交互。 阅读全文
posted @ 2026-09-03 16:37
FreakStudio
阅读(23)
评论(0)
推荐(0)
摘要:
在以下代码中,我们通过 DMA 传输的机制(链式触发和写入触发寄存器)实现了将多个字符串拼接到一个内存缓冲区中的操作,即 `Scatter-gather` 数据聚合操作,将多个固定大小的内存块聚集到一个内存空间中。 阅读全文
在以下代码中,我们通过 DMA 传输的机制(链式触发和写入触发寄存器)实现了将多个字符串拼接到一个内存缓冲区中的操作,即 `Scatter-gather` 数据聚合操作,将多个固定大小的内存块聚集到一个内存空间中。 阅读全文
posted @ 2026-09-03 16:27
FreakStudio
阅读(8)
评论(0)
推荐(0)
摘要:
在下面实验中,我们需要将**`风雅一号板-Grove接口扩展板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时使用 `PH2.0-4P` 接线连接**`风雅一号板-Grove接口扩展板`**的 `AIN0` 接口和**`GraftSense-滑动变阻器模块`**上的模拟输出接口: 阅读全文
在下面实验中,我们需要将**`风雅一号板-Grove接口扩展板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时使用 `PH2.0-4P` 接线连接**`风雅一号板-Grove接口扩展板`**的 `AIN0` 接口和**`GraftSense-滑动变阻器模块`**上的模拟输出接口: 阅读全文
posted @ 2026-09-03 16:17
FreakStudio
阅读(9)
评论(0)
推荐(0)
摘要:
在以下代码中,我们自定义了一个 `DMA_UART_Tx` 类,它用于在树莓派 Pico 上通过 `UART` 和 `DMA` 进行高效的串口数据发送,`DMA` 将数据从源地址(内存)传输到目的地址( `UART` 数据寄存器)中。 阅读全文
在以下代码中,我们自定义了一个 `DMA_UART_Tx` 类,它用于在树莓派 Pico 上通过 `UART` 和 `DMA` 进行高效的串口数据发送,`DMA` 将数据从源地址(内存)传输到目的地址( `UART` 数据寄存器)中。 阅读全文
posted @ 2026-09-03 16:02
FreakStudio
阅读(8)
评论(0)
推荐(0)
摘要:
以下代码可以在我们提供的资料包中的 `elegance-devkit v1\Demo\66 DMA_MemoryToMemory` 文件夹中找到。 阅读全文
以下代码可以在我们提供的资料包中的 `elegance-devkit v1\Demo\66 DMA_MemoryToMemory` 文件夹中找到。 阅读全文
posted @ 2026-09-03 15:48
FreakStudio
阅读(10)
评论(0)
推荐(0)
摘要:
rp2.DMA 类的构造方法如下: 阅读全文
rp2.DMA 类的构造方法如下: 阅读全文
posted @ 2026-09-03 15:42
FreakStudio
阅读(9)
评论(0)
推荐(0)
摘要:
RP2040 的 DMA 控制器具有独立的读写主控连接,它们分别与芯片的总线结构相连接,允许 DMA 进行并行的读写操作。具体架构特点如下 阅读全文
RP2040 的 DMA 控制器具有独立的读写主控连接,它们分别与芯片的总线结构相连接,允许 DMA 进行并行的读写操作。具体架构特点如下 阅读全文
posted @ 2026-09-03 15:35
FreakStudio
阅读(28)
评论(0)
推荐(0)
摘要:
在传统的数据传输方式中,单片机的 CPU 负责从一个外设(如 I2C、串口、ADC 等)读取数据并将其存储到内存中,或者从内存中读取数据并写入到外设中。这种方法需要 CPU 不断地处理读写操作,容易造成 CPU 负载过高,影响系统的整体性能。 阅读全文
在传统的数据传输方式中,单片机的 CPU 负责从一个外设(如 I2C、串口、ADC 等)读取数据并将其存储到内存中,或者从内存中读取数据并写入到外设中。这种方法需要 CPU 不断地处理读写操作,容易造成 CPU 负载过高,影响系统的整体性能。 阅读全文
posted @ 2026-09-03 15:16
FreakStudio
阅读(49)
评论(0)
推荐(0)
摘要:
在以下代码中,我们自定义了一个 AD9833 类用于控制 AD9833 波形发生器芯片,它通过 SPI 通信协议向 AD9833 发送配置命令以生成所需的波形。 阅读全文
在以下代码中,我们自定义了一个 AD9833 类用于控制 AD9833 波形发生器芯片,它通过 SPI 通信协议向 AD9833 发送配置命令以生成所需的波形。 阅读全文
posted @ 2026-09-03 15:03
FreakStudio
阅读(25)
评论(0)
推荐(0)
摘要:
* **初始化`__init__`****方法:**这里,我们仅需要传入 I2C 接口对象和 DS3502 的 I2C 地址,我们首先进行地址范围检查,确保地址在 `0x28` 到 `0x2B` 之间(即二进制在 0101000 到 0101011 之间),否则抛出 `ValueError` 异常;同时保存 I2C 对象和地址,并初始化 `mode` 为 `0`,`mode` 控制写入数据的模式,`0` 表示慢速模式,`1` 表示快速模式。 阅读全文
* **初始化`__init__`****方法:**这里,我们仅需要传入 I2C 接口对象和 DS3502 的 I2C 地址,我们首先进行地址范围检查,确保地址在 `0x28` 到 `0x2B` 之间(即二进制在 0101000 到 0101011 之间),否则抛出 `ValueError` 异常;同时保存 I2C 对象和地址,并初始化 `mode` 为 `0`,`mode` 控制写入数据的模式,`0` 表示慢速模式,`1` 表示快速模式。 阅读全文
posted @ 2026-09-03 14:40
FreakStudio
阅读(9)
评论(0)
推荐(0)
摘要:
在以下代码中,在树莓派 Pico 上使用 DAC 芯片 `MCP4725` 生成不同的波形信号,并通过串口输出 ADC 采集的波形电压值,元器件接线和上节内容一样: 阅读全文
在以下代码中,在树莓派 Pico 上使用 DAC 芯片 `MCP4725` 生成不同的波形信号,并通过串口输出 ADC 采集的波形电压值,元器件接线和上节内容一样: 阅读全文
posted @ 2026-09-03 14:27
FreakStudio
阅读(7)
评论(0)
推荐(0)
摘要:
**`初始化方法__init__()`:**在构造函数中初始化 MCP4725 的 I2C 通信和地址,并创建用于写入的缓冲区,这里,通过 `bytearray` 创建两个字节的连续内存区域,将数据打包成字节流发送。
* **实现写入DAC****的输出值方法 `write()`****:**首先将输入值限制在 0 到 4095 的范围内,然后将高 8 位和低 8 位分别存入 `_writeBuffer` 缓冲区,最后通过 I2C 总线将缓冲区数据写入 DAC
* **实现从DAC****读取数据的方法 `read()`****:**从 DAC 读取 5 个字节的数据,包括 EEPROM 写入忙碌状态、当前和 EEPROM 中的电源关断模式、当前和 EEPROM 中的输出值,最后以元组的形式返回。 阅读全文
**`初始化方法__init__()`:**在构造函数中初始化 MCP4725 的 I2C 通信和地址,并创建用于写入的缓冲区,这里,通过 `bytearray` 创建两个字节的连续内存区域,将数据打包成字节流发送。
* **实现写入DAC****的输出值方法 `write()`****:**首先将输入值限制在 0 到 4095 的范围内,然后将高 8 位和低 8 位分别存入 `_writeBuffer` 缓冲区,最后通过 I2C 总线将缓冲区数据写入 DAC
* **实现从DAC****读取数据的方法 `read()`****:**从 DAC 读取 5 个字节的数据,包括 EEPROM 写入忙碌状态、当前和 EEPROM 中的电源关断模式、当前和 EEPROM 中的输出值,最后以元组的形式返回。 阅读全文
posted @ 2026-09-03 14:18
FreakStudio
阅读(10)
评论(0)
推荐(0)
摘要:
MCP41010 是一款单通道、8 位分辨率的数字电位器,具有 10 kΩ、50 kΩ 和 100 kΩ 的电阻版本,采用 SPI 接口进行控制: 阅读全文
MCP41010 是一款单通道、8 位分辨率的数字电位器,具有 10 kΩ、50 kΩ 和 100 kΩ 的电阻版本,采用 SPI 接口进行控制: 阅读全文
posted @ 2026-09-03 14:08
FreakStudio
阅读(24)
评论(0)
推荐(0)
摘要:
前面我们说到,AD9833 芯片输出正弦波和三角波时波形幅度为 38mV\~650mV,当我们需要波形幅度更大的正弦波和三角波时,需要借助运算放大器来增强幅度,常见的运算放大电路有同相放大电路和反相放大电路两种,如下图所示: 阅读全文
前面我们说到,AD9833 芯片输出正弦波和三角波时波形幅度为 38mV\~650mV,当我们需要波形幅度更大的正弦波和三角波时,需要借助运算放大器来增强幅度,常见的运算放大电路有同相放大电路和反相放大电路两种,如下图所示: 阅读全文
posted @ 2026-09-03 12:26
FreakStudio
阅读(21)
评论(0)
推荐(0)
摘要:
AD9833 是由 Analog Devices 公司生产的一款低功耗数字波形发生器(DDS)芯片。它专为需要精确频率和相位控制的应用而设计,能够生成正弦波、三角波和方波,AD9833 常用于如信号源、测试设备等。 阅读全文
AD9833 是由 Analog Devices 公司生产的一款低功耗数字波形发生器(DDS)芯片。它专为需要精确频率和相位控制的应用而设计,能够生成正弦波、三角波和方波,AD9833 常用于如信号源、测试设备等。 阅读全文
posted @ 2026-09-03 12:18
FreakStudio
阅读(23)
评论(0)
推荐(0)
摘要:
MCP4725 是 Microchip 公司生产的一款单通道 12 位数字-模拟转换器 (DAC),具有非易失性 EEPROM 存储功能,它广泛用于需要精确模拟信号输出的应用中,如音频信号生成、传感器信号调节和电压基准调节。 阅读全文
MCP4725 是 Microchip 公司生产的一款单通道 12 位数字-模拟转换器 (DAC),具有非易失性 EEPROM 存储功能,它广泛用于需要精确模拟信号输出的应用中,如音频信号生成、传感器信号调节和电压基准调节。 阅读全文
posted @ 2026-09-03 12:09
FreakStudio
阅读(22)
评论(0)
推荐(0)
摘要:
在实际应用中,我们通常希望输出一个模拟信号,例如设定频率的正弦波或方波等,而非离散的电压值。我们可以使用 DAC 输出一个预先定义好的数字信号,**但是通过 DAC 直接生成的信号****波形****,其频率、幅度等特性通常是固定的或受限的;如果需要改变波形,通常需要重新生成和加载新的数字数据,这个过程比较慢,不太适合实时动态变化的应用场景。** 阅读全文
在实际应用中,我们通常希望输出一个模拟信号,例如设定频率的正弦波或方波等,而非离散的电压值。我们可以使用 DAC 输出一个预先定义好的数字信号,**但是通过 DAC 直接生成的信号****波形****,其频率、幅度等特性通常是固定的或受限的;如果需要改变波形,通常需要重新生成和加载新的数字数据,这个过程比较慢,不太适合实时动态变化的应用场景。** 阅读全文
posted @ 2026-09-03 11:59
FreakStudio
阅读(19)
评论(0)
推荐(0)
摘要:
数模转换器(DAC, Digital-to-Analog Converter)是将数字信号转换为模拟信号的电子装置。DAC 广泛应用于音频设备、信号处理、通信系统、测量仪器等领域,用于将处理后的数字信号还原为模拟信号。 阅读全文
数模转换器(DAC, Digital-to-Analog Converter)是将数字信号转换为模拟信号的电子装置。DAC 广泛应用于音频设备、信号处理、通信系统、测量仪器等领域,用于将处理后的数字信号还原为模拟信号。 阅读全文
posted @ 2026-09-03 11:51
FreakStudio
阅读(41)
评论(0)
推荐(0)
摘要:
在下面实验中,我们需要将**`风雅一号板-数据转换板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时打开**`风雅一号板-数据转换板`**上 `SWITCH1` 拨码开关的 `SCL`、`SDA` 和 `RDY` 选项: 阅读全文
在下面实验中,我们需要将**`风雅一号板-数据转换板`**插入到**`风雅一号板-通用兼容扩展板`**上,同时打开**`风雅一号板-数据转换板`**上 `SWITCH1` 拨码开关的 `SCL`、`SDA` 和 `RDY` 选项: 阅读全文
posted @ 2026-09-03 11:40
FreakStudio
阅读(9)
评论(0)
推荐(0)
摘要:
摇杆模块通常是一个包含两个电位器(用于 X 轴和 Y 轴的模拟电压信号)和一个按钮开关的电子模块。它广泛用于游戏控制器、机器人控制和各种嵌入式项目中,用于获取二维方向输入和按键按下的状态。 阅读全文
摇杆模块通常是一个包含两个电位器(用于 X 轴和 Y 轴的模拟电压信号)和一个按钮开关的电子模块。它广泛用于游戏控制器、机器人控制和各种嵌入式项目中,用于获取二维方向输入和按键按下的状态。 阅读全文
posted @ 2026-09-03 11:23
FreakStudio
阅读(13)
评论(0)
推荐(0)
摘要:
模拟电位器是电子设备中常见的组件,用于调整电压或电流。它通过物理旋转来改变电阻值,从而改变输出信号的强度。简单来说,**电位器是一个可调****电阻器****,通常有三个****引脚****:两个外侧引脚连接到电阻器的两端,中间引脚(滑动触点)可以移动,从而改变与电阻器两端的接触点位置**;当旋转电位器时,中间引脚与两端引脚之间的电阻会发生变化。这可以用来调整电压分布,从而实现对输出信号的控制。 阅读全文
模拟电位器是电子设备中常见的组件,用于调整电压或电流。它通过物理旋转来改变电阻值,从而改变输出信号的强度。简单来说,**电位器是一个可调****电阻器****,通常有三个****引脚****:两个外侧引脚连接到电阻器的两端,中间引脚(滑动触点)可以移动,从而改变与电阻器两端的接触点位置**;当旋转电位器时,中间引脚与两端引脚之间的电阻会发生变化。这可以用来调整电压分布,从而实现对输出信号的控制。 阅读全文
posted @ 2026-09-03 11:14
FreakStudio
阅读(20)
评论(0)
推荐(0)
摘要:
* 使用树莓派 Pico 的 ADC 外设时,在构造方法中,只能使用整数 id 号进行(即 ADC 通道号)
* 树莓派 Pico 的 ADC 类中有一个 `CORE_TEMP` 属性,用于指定访问内置温度传感器的特定 ADC 通道: 阅读全文
* 使用树莓派 Pico 的 ADC 外设时,在构造方法中,只能使用整数 id 号进行(即 ADC 通道号)
* 树莓派 Pico 的 ADC 类中有一个 `CORE_TEMP` 属性,用于指定访问内置温度传感器的特定 ADC 通道: 阅读全文
posted @ 2026-09-03 11:03
FreakStudio
阅读(152)
评论(0)
推荐(0)

浙公网安备 33010602011771号