亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

ISD1700 语音录放模块 Arduino 驱动与 Windows 录制工具完整指南

项目背景

在近期项目中需要为设备添加语音播报功能。MP3+SD 卡方案过于庞大,让 Arduino 直接合成语音又会耗尽资源。经调研发现 ISD1700 系列 语音录放芯片:SPI 控制、可存储数分钟音频、成本低廉,非常适合作为辅助语音方案。

现成的 ISD1700 编程器价格高于芯片本身,且不易购买。作者决定利用手头的 Arduino 开发板自制编程器,并编写配套 Windows 上位机软件 ISD1700 Record Tool,实现音频文件批量烧录。

支持的芯片型号

ISD1730 / ISD1740 / ISD1750 / ISD1760 / ISD1790 / ISD17120 / ISD17150 / ISD17180 / ISD17210 / ISD17240

软件架构

硬件连接

作者使用现成的 ISD1760 录音模块而非裸片。强烈建议先阅读原厂 ISD1700 Design Guide 数据手册。

ISD1700 语音录放模块 Arduino 驱动与 Windows 录制工具完整指南
Arduino Nano + ISD1760 模块 + 双 3.5mm 音频座(左:音频输入,右:耳机监听)

供电建议: 使用独立 5V 电源模块给 ISD1700 模块供电,避免仅靠 Arduino 5V 引脚导致通信不稳定。

操作流程

  1. 在上位机中打开并排序要烧录的音频文件,可试听和调整音量。
  2. 选择 Arduino 所在 COM 口。
  3. 点击 “Detect ISD1700” 确认芯片型号识别正确。
  4. 确认音频总时长不超过芯片容量。
  5. 点击 “Start record” 开始烧录,进度条显示进度;可随时 “Stop record”。
  6. 烧录完成后可一键复制所有音轨起始地址,供后续固件调用。
ISD1700 语音录放模块 Arduino 驱动与 Windows 录制工具完整指南
ISD1700 Record Tool 主界面

Arduino 核心代码片段

#include 
const byte ISD_SS_PIN = 8;

// 关键 SPI 指令封装
boolean isdPowerUp() { ... }
boolean isdPowerDown() { ... }
boolean isdReset() { ... }
void isdClrInt() { ... }
boolean isdIsReady() { ... }
void isdEnableAnaIn() { ... } // 启用模拟输入录音
byte isdDeviceID() { ... }    // 读取芯片 ID 判断容量
boolean isdIsFull() { ... }   // 判断存储是否满
void isdRec() { ... }         // 开始录音
void isdStop() { ... }        // 停止录音
void isdErase() { ... }       // 全片擦除
unsigned int isdReadRecordPointer() { ... } // 读取录音指针(地址)

void setup() {
  pinMode(ISD_SS_PIN, OUTPUT);
  digitalWrite(ISD_SS_PIN, HIGH);
  Serial.begin(9600);
  SPI.begin();
}

void loop() {
  if (Serial.available()) {
    char cmd = Serial.read();
    switch (cmd) {
      case 'D': Serial.print(isdInit()); isdPowerDown(); break; // 检测芯片
      case 'E': isdInit(); isdErase(); Serial.print(ISD_ERASE_OK); break; // 擦除
      case 'R': isdRec(); Serial.print(ISD_REC_OK); break; // 录音
      case 'S': isdStop(); Serial.print(isdReadRecordPointer()); break; // 停止并返回地址
      case 'X': isdReset(); Serial.print(ISD_RESET_OK); break; // 复位
      case 'C': if (isdIsUp) { isdStop(); isdReset(); Serial.print(ISD_CANCEL_OK); } break; // 取消
    }
  }
  // 录满自动复位保护
  if (isdNotifyIfFull && isdIsUp && isdIsFull()) { isdReset(); Serial.print(ISD_FULL); }
}

原理图

ISD1700 语音录放模块 Arduino 驱动与 Windows 录制工具完整指南
ISD1700 模块与 Arduino 连接原理图

资源下载

完整工程包含 Arduino 固件、Windows 上位机可执行文件及源码,可在项目附件中获取。

制造工艺

  1. 便携式血氧仪(脉搏血氧监测):Arduino Nano + MAX30100 + OLED,COVID-19 应急开源方案
  2. 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
  3. Arduino + ThingSpeak 实时气象监测站
  4. 自动电键助力无线电测向 —— 精准、易用、可靠
  5. MeArm 机械臂精准手柄控制器:基于 Arduino UNO 的轨迹记录与回放
  6. Arduino UNO 自制“忍者美元”LCD 小游戏
  7. Health Band 智能健康手环:基于 Infineon DPS310 的老人跌倒/步数/体温监护系统
  8. 汽车软件组件获取ISO 26262认证的实践路径
  9. AI芯片初创企业趋于平稳,行业重心转向自研方案
  10. 高性能钨钛合金靶材:先进半导体芯片的关键支撑
  11. 超高纯钨靶材:先进半导体薄膜沉积的关键基石
  12. Hexion公司申请第11章破产重组,推进去杠杆计划