Token导航 LogoToken导航TokenDH.com
MCP4728 test code logo
运维云端未说明官方级别未说明来源级核验

MCP4728 test code

MCP Server

驱动MCP4728四通道12位DAC,实现独立输出2 kHz波形(正弦、三角或方波)的功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
C++云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

xingyeyuye

提供方

xingyeyuye

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP4728 2 kHz 波形发生器

该 PlatformIO 项目驱动 MCP4728 四通道 12 位 DAC,使每个通道都能独立输出 2 kHz 波形(正弦、三角或方波)。每个通道都具备 12 位幅度调节、可变直流偏置与 查找表相位偏移能力。

硬件与软件要求

  • 任何兼容 Arduino 的 I2C MCU(示例使用 Wire 库)
  • Adafruit MCP4728 驱动库 (Adafruit_MCP4728)
  • 建议将 I2C 设置为 Fast-mode Plus(1 MHz)以满足刷新速率

工作原理

  • 每个波形周期取 32 个采样点(32 × 2 kHz = 64 kS/s)
  • 开机时构建归一化的正弦/三角/方波查找表
  • loop() 以微秒定时步进查找表,并把缩放后的样点写入 DAC
  • 通过原生 Adafruit 驱动完成全部 DAC 更新,无需修改底层代码

配置方法

src/main.cpp 中调用辅助函数配置任意通道:

setChannelWaveform(
  /* 通道索引 0..3 */ 0,
  /* 波形类型 */ WaveformType::kSine,
  /* 幅度 (0..2047) */ 1800,
  /* 直流偏置 (0..4095) */ kDacMidpoint,
  /* 相位步进 (0..31) */ 0);
  • amplitude 提供 12 位分辨率;2047 是在中点对称下不失真的最大值。
  • offset 控制波形的直流偏置;纯交流输出时保持为 kDacMidpoint
  • phaseStep 改变查找表索引,实现通道之间的相位对齐或错位。

所有通道共享同一采样时钟,因此都会保持 2 kHz,但可同时输出不同形状与幅度。

注意事项

  • 推荐使用 1 MHz I2C;若 MCU 无法维持吞吐量,可适当降低 kWaveTableSamples
  • MCP4728 在写入数据后立即更新通道;若连接 UDAC 引脚,可修改

mcp.setChannelValue(...) 的最后一个参数改用锁存更新。

目录标签

目录标签

C++云端部署Docker本地部署波形生成DAC驱动Arduino兼容I2C通信信号处理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP