Dank1ng 发表于 2023-10-22 09:36:18

怎么用单片机的DAC产生这种波形

大的频率是650khz,小的频率是150khz,相当于两个不同频率的正弦信号叠加。

zchong 发表于 2023-10-22 09:51:28

DAC输出+低通滤波,公式就按照两个sin相加即可,650k的频率有点高,如果按照每个周期10个点来算,DAC需要6.5M了

cddyy 发表于 2023-10-22 09:53:22

最简单的方案,查表。
150KHz的波形计算3个周期,650KHz波形计算13个周期,计算好叠加波形幅度值存在FLASH里,然后用定时器触发DAC,依次送出幅度值。

tomzbj 发表于 2023-10-22 10:22:24

单片机的DAC不够快, 需要用外置DAC
或者有个取巧的办法, 把一组8个或16个GPIO接成R2R DAC, 配置时还按内部DAC来配置, 只是把DMA的外设地址改成相应的GPIO->ODR.

newkey 发表于 2023-10-22 11:28:04

tomzbj 发表于 2023-10-22 10:22
单片机的DAC不够快, 需要用外置DAC
或者有个取巧的办法, 把一组8个或16个GPIO接成R2R DAC, 配置时还按内部D ...
(引用自4楼)

这种方法构成的16位DAC精度比得上外置的专用DAC么?

flash3g 发表于 2023-10-22 14:29:10

newkey 发表于 2023-10-22 11:28
这种方法构成的16位DAC精度比得上外置的专用DAC么?
(引用自5楼)

看外部的电阻精度了

flash3g 发表于 2023-10-22 14:32:20

产生两个正弦波有加法电路叠加也可以吧

dellric 发表于 2023-10-22 16:02:32

DAC输出低频,高频用PCA产生脉冲通过RC滤波后,用电阻电容或者运放叠加起来

ibmx311 发表于 2023-10-22 16:35:29

买个百十兆的任意波形发生器就可以了

下一页 发表于 2023-10-22 20:15:12

首先确保你的dac输出的频率高于650k*2,,然后用cpu合成一个a1*sin(2*3.14*650e3*ti)+a2*sin(2*3.14*150e3*ti)的序列,其中ti相当于输出频率倒数对应的一个个时间点。

然后把这个序列用dac重复发送

albert_w 发表于 2023-10-22 21:38:35

要我我拿俩正弦波合成

智涅 发表于 2023-10-22 23:41:43

不需要关注相位吗?然后幅度固定?这不可以直接用两个正弦波发生电路相加就行了么
做过一个需要合成3路正弦波的,上位机一起做,相位频率幅度都单独可控,用的DAC904,最高输出频率:达165MSPS,不过我们当时频率只做很低

Dank1ng 发表于 2023-10-23 00:40:36

智涅 发表于 2023-10-22 23:41
不需要关注相位吗?然后幅度固定?这不可以直接用两个正弦波发生电路相加就行了么
做过一个需要合成3路正弦 ...
(引用自12楼)

相位都是0,幅值固定
页: [1]
查看完整版本: 怎么用单片机的DAC产生这种波形