这几天采购的时候,顺手买了个小模块,回来把玩了一下,觉得好好玩~

就是一个 DDS
可以衍生很大一部分内容,在没有这种数字器件出现之前,波形发生器可以用:

这种纯模拟的东西搓

早就都停产了,还在卖,服了

内部如此
ICL8038 的内部核心是一个恒流充放电的振荡器;通过内部两个恒流源交替对 Pin 10 的外部定时电容进行充电和放电,电容两端的电压随时间线性上升和下降,从而直接在 Pin 3 产生三角波。
控制充放电开关的内部触发器随之翻转,在 Pin 9 产生同步的方波;产生的三角波在芯片内部经过一个非线性正弦波近似网络(由多对微型晶体管和二极管组成)进行平滑拟合,最终在 Pin 2 输出低失真度的正弦波。
上面也看到了,使用的时候要不停的使用各种旋钮调节,还得盯着仪器看信号到了感兴趣的没有,总之就是有些笨逼的,但是在一些低成本的地方还是可以使用的,但是只能最多 300K,这就有些拉了。
那就聊聊 DDS 存在的含义,从 9833 说起:

可以概括成一句话:
用一个稳定时钟,低成本、低功耗地长期产生频率和相位高度可控的周期信号,而不需要MCU逐点计算并不断给DAC发送数据。
这种产品是专门解决“稳定、连续、可快速调频调相的周期信号”问题。

真实的研发环境,没信号发生器得死
当然了,设计微弱信号这一块还是得非常微弱的信号源才可以~
用MCU产生正弦波,通常需要:
正弦采样表
↓
定时器触发
↓
DMA搬运
↓
DAC逐点输出
↓
低通滤波器
MCU必须保存波形数据,并按照严格时间间隔不断输出,输出频率为:

例如DAC更新率1 MSPS、每周期1000点:

想微调频率,要么改变DAC更新率,要么改变点数,还要处理:定时器分频误差,DMA缓冲,CPU资源,波形切换,相位连续性,数据抖动,多通道同步,总之为了个波形烧坏了🧠。
DDS内部自动完成:
外部时钟
↓
相位累加器
↓
正弦查找表
↓
DAC
↓
模拟波形
MCU只需要偶尔写一个频率字:

写完之后,DDS会自己永久运行,MCU即使不再发送数据,波形仍然持续输出。
正弦波并不难产生,真正有价值的是下面几项。
AD9833使用28位相位累加器,25 MHz MCLK时:

输出1 MHz附近时,也能以约0.093 Hz为单位调节。(这些以后会详细解读)
如果降低MCLK到1 MHz:

普通RC振荡器、555或简单MCU定时器很难同时做到这种数字可编程精细度。
DDS输出频率与MCLK保持严格数学关系:

只要MCLK稳定,输出频率就稳定。
例如使用高稳定度TCXO,DDS输出的所有频率都会继承这个时钟的相对准确度。
普通信号发生方式切换频率时,可能重新从波形表第0点开始,造成波形突然跳变;但DDS切换频率时,通常不清除相位累加器,只改变每个时钟前进的步长:
切换前:每次走10步 切换后:每次走20步 当前位置:不变
所以波形相位可以连续,只是频率发生改变。
AD9833有12位相位控制:

可以设置:0°,90°,180°,270°,以及任意相位偏移。
MCU只需通过SPI发送几个16位控制字。
设置完成后:不需要持续中断;不需要DMA循环;不需要保存正弦表;不需要实时计算三角函数;不会因其他程序延迟而中断波形;所以一颗很小的MCU就能控制稳定信号源。

只是接口抽象,3 口 SPI
M2K是ADI推出的一个教育工具,里面用RF的DAC做了很好的双通道任意波形发生器,功能比AD9833强,当然可以直接产生波形;但二者定位不同。
项目 | AD9833 | ADALM2000 |
|---|---|---|
本质 | 嵌入式DDS芯片 | USB软件仪器 |
是否需要电脑 | 不需要 | 通常需要 |
功耗 | 很低 | 较高 |
体积 | 可装入产品PCB | 独立仪器 |
输出波形 | 固定正弦/三角/方波 | 任意波形 |
频率控制 | 28位DDS频率字 | 数字波形发生器 |
独立连续运行 | 可以 | 依赖仪器配置 |
适合最终产品 | 是 | 主要用于实验 |
测量能力 | 没有 | 示波器、FFT、网络分析等 |
M2K虽然可以直接替代AD9833输出信号,但这样就无法研究:DDS频率字,相位累加原理,DDS杂散,MCLK穿透,输出负载能力,重建滤波器这些高级的功能。
模拟振荡器也能产生正弦波,例如文氏桥振荡器。

但改变频率通常需要改变:电阻,电容,开关,电位器
其频率为:

容易受到无源器件杂散参数的影响,DDS则通过写数字寄存器改变频率,重复性和自动化能力明显更好。
模拟振荡器可能有更低的宽带噪声或更纯净的波形,但DDS更适合数字控制和扫频。
首先可以做传感器交流激励:DDS → 传感器 → 放大器 → ADC → 同步解调(交流激励可以把测量信号从直流附近搬到噪声较低的频率,再用锁相算法恢复。)
DDS逐点扫频
↓
被测电路
↓
ADC同时测输入和输出
↓
计算增益与相位
得到:

DDS器件存在的核心意义就是:以很低的嵌入式成本,把稳定时钟转化为频率、相位可精确编程的连续模拟激励信号。