如何创建基于DCO的音频合成器

摩尔学堂 2023-04-12 19:16


在此项目中,学习使用 Arduino Nano 或 Arduino Uno 创建数控振荡器或基于 DCO 的音频合成器。

我喜欢音乐,也喜欢电子产品。多年来,我一直在制造音乐电子设备,主要是为我的电吉他演奏服务。在构建和修改了几个电子管放大器和效果踏板之后,我决定涉足音频合成领域。我经常梦想创建自己的 Eurorack 合成器,一次一个模块,但对于我的第一个合成器项目,我决定从一个独立的键盘开始。我的成品——一个改装过的玩具键盘——如图 1 所示。 

图 1. 经过修改和大幅改进的“Rockstar”键盘。

在这个项目中,我移除了现有的电子设备,并用一个以Arduino Nano为核心的基于数控振荡器 (DCO) 的音频合成器取而代之。虽然我使用的是 Arduino Nano,但也可以使用Arduino Uno 。让我们深入探讨如何制作基于 DCO 的合成器。然而,在走得太远之前,让我们先谈谈在合成器中使用振荡器。 

振荡器:任何合成器的心脏

任何合成器的关键要素是其振荡器电路模拟合成器通常有两个或多个独立可控的振荡器。但是,任何进入过模拟压控振荡器 (VCO)原理图的互联网兔子洞的人都知道它们通常很复杂且杂乱无章。一些混乱来自可以优雅地处理的功能,例如多个控制电压输入。然而,即使最简单的振荡器电路在原理图中被隔离,剩下的部分仍然很复杂,因为热反馈技巧使振荡器在其组件预热时保持调谐。

当我考虑创建自己的合成器时,VCO 电路的复杂性和混乱一直是我的绊脚石,即使我喜欢模拟合成器,我也无法克服它凌乱的电子软肋。当我欣赏Roland Juno 系列合成器时,这一切都改变了。 

Roland 的 Juno-6于 1982 年上市,作为当时其他和弦合成器的更实惠的替代品。它也是第一个使用 DCO 代替传统 VCO 的合成器。与替代品相比,这显着提高了仪器的调谐稳定性,因为 DCO 使用数字电路来控制振荡器模拟信号的频率。考虑到这一点,使用 DCO 而不是 VCO 当然需要权衡取舍。许多人喜欢两个略微失谐的 VCO 齐声演奏的“温暖”声音,这是很难用基于 DCO 的合成器模拟的。然而,调制效果可以应用于 DCO 的干输出信号,以产生丰富、优美的声音。

总的来说,Arduino Uno 和 Nano 开发板的普遍性和低成本,再加上这些数字平台预装了 16 MHz晶体振荡器,使得创建便宜的 DCO 变得异常容易。

使用微控制器定时器模块创建 DCO

查看任何现代微控制器的数据表,您会在其外围设备中找到定时器模块。定时器模块允许嵌入式设计人员在独立于CPU(中央处理器)的嵌入式系统后台设置运行计数器此外,定时器模块可以在多种情况下中断 CPU,例如当它们溢出计数寄存器或达到特定计数时。嵌入式设计人员可以配置中断条件以满足其特定应用的需要。

对于这个项目, ATMega328P的定时器模块——Arduino Nano 和 Uno 的大脑——充当合成器的 DCO。通过配置定时器模块的时钟源和最大计数值,可以实现音频触发定时器模块中断。DCO 输出是通过在这些周期性中断的中断服务例程 (ISR) 期间操纵微控制器的 GPIO 引脚来实现的。

在接下来的部分中,我将讨论这个项目背后的硬件和软件设计,然后展示这个自制合成器的一些音频片段。

使用 Arduino Nano 的音频合成器硬件

在深入了解该项目中涉及的不同硬件以及它们如何协同工作之前,表 1 显示了 BOM(物料清单)。

数量成分
1个

Arduino 纳米 v3.x

4个470 nF电容
1个2.1 毫米筒式千斤顶
1个1/4" 单声道开关插孔
2个4.7k电阻
3个47k电阻
7100k电阻
1个100k电阻
2个100k电位器
1个1M电位器
23SPDT微型瞬时开关
1个开关式DC-DC 转换器(5 V 输出)
1个Microchip MCP23017 I/O 扩展器
1个LF411 运算放大器(运放)


接下来,让我们看一下图 2 的系统图,它显示了这个合成器的各个部分是如何组合在一起的。 

图 2. 合成器的硬件系统图。

键盘部分由一组 23 个 SPDT 开关组成,每个开关一个。其中 16 个键被路由到 MCP23017 I/O 扩展器,其余 7 个键直接路由到 Arduino Nano 上的 GPIO 输入。MCP23017 然后通过I2C连接到 Arduino Nano 。

Arduino Nano 从这里开始处理来自键盘的输入,并根据这些按键在 D11、D12 和 D10 上生成三个独立的振荡器输出。Arduino Nano 上这些数字引脚的输出被路由到加法放大器电路,其原理图如图 3 所示。

图 3. 加法放大器电路原理图 [点击图片放大]。

求和放大器包含三个电位器。它们独立控制振荡器 2 和 3 的音量以及乐器的主音量。放大器电路的输出直接路由到 ¼” 单声道音频插孔,可以轻松直接插入吉他放大器。

为了给这个乐器供电,我使用了一个标准的 2.1 毫米 9 V DC 吉他踏板桶形插孔。此外,来自该插孔的 +9 V 被路由到小型 DC-DC 开关电源转换器以生成 5 V 电源连接。+5 V 电源为 MCP23017 供电。Arduino 由 +9 V 电源通过其 Vin 引脚供电。运算放大器的 V+ 和 V- 由桶形插孔的 +9 V 和接地连接提供,5 V 电源用作运算放大器的浮动接地连接

图 4 显示了该系统的所有部分如何连接的示意图。

图 4. 整个系统的示意图 [点击图片放大]。

创建音频合成器的软件方面

该项目软件的主要任务是解释来自键盘按钮的输入并相应地操作定时器模块寄存器(有关代码,请参见此处的 Arduino 草图 PDF)。在草图中的 setup() 函数之前,声明了几个全局变量,包括两个大型二维数组的定时器模块寄存器值对应于音符。setup() 函数的过程遵循图 5 的流程图,其中仅涉及:

  • 设置 GPIO 输入和输出

  • 启动 I2C 通信

  • 初始化三个定时器模块

    • 启用中断

    • 选择定时器 B 模块的时钟源作为定时器 A 的时钟

  • 启用全局中断

 

图 5. 该仪器的 Arduino 草图的 setup() 函数流程图。

图 6 显示了表示 Arduino 草图的 loop() 函数的流程图。 

图 6.该仪器的 Arduino 草图的 loop() 函数流程图 [单击图像放大]。

循环函数执行三个主要任务:

  • 检测键盘上按下的键

  • 根据特定键的音符设置定时器模块参数

  • 设置门变量以允许将振荡器信号转发到它们各自的 GPIO 引脚

循环函数一次评估连接到键盘的每个 I/O 端口,直到检测到按下的按钮。端口的评估顺序是键盘上从最低音符到最高音符,这意味着较低的音符实际上具有较高的优先级。当我考虑使用 GPIO 和 I2C 中断来处理键盘按钮按下时,我最终使用了连续轮询方法,并且我没有注意到任何不利的性能结果。 

最后,图 7 表示 ATMega328P 中三个定时器模块中每一个的中断服务例程。 

图 7.  Arduino Nano 的 ATMega328P 定时器模块的中断服务例程流程图。

如果设置了门变量,这些 ISR 中的每一个都会切换其输出引脚值。这种切换是为每个振荡器生成音频输出的原因。

产生的声音样本和潜在的改进

您可以在下面找到该项目的两个音频样本。请务必单击播放按钮图像进行播放 - 请注意,音频将在单独的窗口中打开并播放。

声音剪辑 1. 音频合成器演示。

 

正如您从第一个音频样本中听到的那样,该合成器产生了一种漂亮的斯巴达式低保真声音。该样本首先演示了根音振荡器,然后是根音和八度向下振荡器,最后是根音、向下八度和 7 个半音向上振荡器。

 

声音剪辑 2。 带有效果器和鼓的音频合成器演示。

第二个示例通过一些延迟和相位效果展示了合成器,并覆盖了多个轨道。所有旋律声音都来自 Arduino 合成器,但鼓声来自 Roland 808 风格的鼓机 vst 插件。

总而言之,我对这个项目的结果感到非常兴奋,但我确实认为这个基于 Arduino 的合成器可以实现许多潜在的改进。例如,我想为这个 Arduino 合成器实现一个 USB midi 接口。我还想使用这些方法创建一个可扩展的复音合成器。然而,就目前而言,这个项目的玩具屋已经变成了一种有趣、适合舞台的低保真乐器,具有非常坚韧的低音。




从基础到高级的ADC讲座,将涵盖高速ADC设计的原理、传统架构和最先进的设计。第一部分首先回顾了ADC的基本知识,包括采样、开关电容和量化理论。接下来,介绍了经典ADC架构的基础和设计实例,如闪存、SAR和流水线ADC。然后,本教程将对混合型ADC架构进行总体概述,这就结束了第一部分。在第二部分,首先描述了ADC的度量。然后,介绍混合或非混合架构的各种先进设计。该教程最后将以数字辅助解决技术结束。

>>>点击图片了解课程详情!



--------------------

今天小编带来了:ISSCC2023套餐,里面有文章、PPT、Tutorial等,同学可以拿回去自己学习研究。

ISSCC2023完整资料领取方式如下   
识别关注下方公众号
公众号对话框输入 1425 
由于公众号后台资料容量有限
每份资料有效期为30天,过期会被更新删除
资料仅供个人学习使用,禁止分享与转发!
大家如果需要,请及时下载!

1、深入理解SerDes(Serializer-Deserializer)之一

2、深入理解SerDes(Serializer-Deserializer)之二

3、科普:深入理解SerDes(Serializer-Deserializer)之三

4、资深工程师的ESD设计经验分享

5、干货分享,ESD防护方法及设计要点!

6、科普来了,一篇看懂ESD(静电保护)原理和设计!

7、锁相环(PLL)基本原理 及常见构建模块

8、当锁相环无法锁定时,该怎么处理的呢?

9、高性能FPGA中的高速SERDES接口

10、什么是毫米波技术?它与其他低频技术相比有何特点?

11、如何根据数据表规格算出锁相环(PLL)中的相位噪声

12、了解模数转换器(ADC):解密分辨率和采样率

13、究竟什么是锁相环(PLL)

14、如何模拟一个锁相环

15、了解锁相环(PLL)瞬态响应

16、如何优化锁相环(PLL)的瞬态响应

17、如何设计和仿真一个优化的锁相环

18、锁相环(PLL) 倍频:瞬态响应和频率合成

19、了解SAR ADC

20、了解 Delta-Sigma ADC

21、什么是数字 IC 设计?

22、什么是模拟 IC 设计?

23、什么是射频集成电路设计?

24、学习射频设计:选择合适的射频收发器 IC

25、连续时间 Sigma-Delta ADC:“无混叠”ADC

26、了解电压基准 IC 的噪声性能

27、数字还是模拟?I和Q的合并和分离应该怎么做?

28、良好通信链路性能的要求:IQ 调制和解调

29、如何为系统仿真建模数据转换器?

30、干货!CMOS射频集成电路设计经典讲义(Prof. Thomas Lee)

31、使用有效位数 (ENOB) 对 ADC 进行建模

32、以太网供电 (PoE) 的保护建议

33、保护高速接口的设计技巧

34、保护低速接口和电源电路设计技巧

35、使用互调多项式和有效位数对 ADC 进行建模

36、向 ADC 模型和 DAC 建模添加低通滤波器

37、揭秘芯片的内部设计原理和结构

38、Delta-Sigma ADCs中的噪声简介(一)

39、Delta-Sigma ADCs中的噪声简介(二)

40、Delta-Sigma ADCs 中的噪声简介(三)

41、了解Delta-Sigma ADCs 中的有效噪声带宽(一)

42、了解Delta-Sigma ADCs 中的有效噪声带宽(二)

43、放大器噪声对 Delta-Sigma ADCs 的影响(一)

44、放大器噪声对 Delta-Sigma ADCs 的影响(二)

45、参考电压噪声如何影响 Delta Sigma ADCs

46、如何在高分辨率Delta-Sigma ADCs电路中降低参考噪声

47、时钟信号如何影响精密ADC

48、了解电源噪声如何影响 Delta-Sigma ADCs

49、运算放大器简介和特性

50、使用 Delta-Sigma ADCs 降低电源噪声的影响

51、如何设计带有运算放大器的精密电流泵

52锁定放大器的基本原理

53了解锁定放大器的类型和相关的噪声源

54、用于降低差分 ADC 驱动器谐波失真的 PCB 布局技术

55、干货!《实用的RFIC技术》课程讲义

56、如何在您的下一个 PCB 设计中消除反射噪声

57、硅谷“八叛徒”与仙童半导体(Fairchild)的故事!   

58、帮助你了解 SerDes!                                    

往期精彩课程分享

1、免费公开课ISCAS 2015 :The Future of Radios_ Behzad Razavi

2、免费公开课:从 5 微米到 5 纳米的模拟 CMOS(Willy Sansen)

3、免费公开课:变革性射频毫米波电路(Harish Krishnaswamy)

4、免费公开课:ESSCIRC2019-讲座-Low-Power SAR ADCs

5免费公开课:ESSCIRC2019-讲座-超低功耗接收器(Ultra-Low-Power Receivers)

6、免费公开课:CICC2019-基于 ADC 的有线收发器(Yohan Frans Xilinx)

7、免费公开课:ESSCIRC 2019-有线与数据转换器应用中的抖动

8、免费公开课:ISSCC2021 -锁相环简介-Behzad Razavi

9、免费公开课:ISSCC2020-DC-DC 转换器的模拟构建块

10、免费公开课:ISSCC2020-小数N分频数字锁相环设计

11、免费公开课:ISSCC2020-无线收发器电路和架构的基础知识(从 2G 到 5G)

12、免费公开课:ISSCC2020-从原理到应用的集成变压器基础

13、免费公开课:ISSCC2021-射频和毫米波功率放大器设计的基础

14、免费公开课:ISSCC 2022-高速/高性能数据转换器系列1(Prof. Boris Murmann)

15、免费公开课:ISSCC 2022-高速/高性能数据转换器系列2(Dr. Gabriele Manganaro)

16、免费公开课:ISSCC 2022-高速/高性能数据转换器系列3(Prof. Pieter Harpe

17、免费公开课:ISSCC 2022-高速/高性能数据转换器系列4(Prof. Nan Sun)





专注于半导体人才培训,在线学习服务平台!


人才招聘服务平台

摩尔学堂 摩尔学堂专注于半导体人才培训,在线培训与学习服务平台,泛IC领域MOOC分享互动平台。 www.moorext.com
评论
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 69浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 113浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 57浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 56浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 99浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 93浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 62浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 67浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 74浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 153浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 92浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 57浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 80浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 99浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦