数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 597|回复: 21

[other] 这种几毛钱的16位音频DAC,可以用来生成10Khz的正弦波吗?

[复制链接]
发表于 2025-4-13 21:13:23 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
用它来代替许老师电桥里的DDS,可行不可行呢?
https://item.taobao.com/item.htm?id=764682954708

2025-04-13_211052.jpg
2025-04-13_211140.jpg
 楼主| 发表于 2025-4-13 21:22:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 21:27:35 | 显示全部楼层
看它内部原理是用R-2R电阻网络,这种芯片内光刻的电阻精度应该比自己用电阻搭的要好很多,所以如果可行的话,用它来做DDS理论上效果也不会差:
https://www.bilibili.com/video/BV1Rx4y1U7CJ/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 21:35:40 | 显示全部楼层
如果可行的话,两个通道,一个输出正弦波,一个输出方波,完美替代许老师电桥里的PWM型DDS,并且谐波干扰可以更低
回复 支持 反对

使用道具 举报

发表于 2025-4-13 21:58:55 | 显示全部楼层
够呛,假设一个周期输出10点DAC数据,一秒通讯数据就要100K Word,通讯速率至少(100K*2*8)=1600Kbps,如果没有专用通讯接口,靠普通I/O模拟是很难做到的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 22:05:52 | 显示全部楼层
mmxx2015 发表于 2025-4-13 21:58
够呛,假设一个周期输出10点DAC数据,一秒通讯数据就要100K Word,通讯速率至少(100K*2*8)=1600Kbps,如果 ...

它这个时序特性数据是什么意思,看数据量好像挺大的
2025-04-13_220531.jpg
回复 支持 反对

使用道具 举报

发表于 2025-4-13 22:11:15 | 显示全部楼层
猪小呆 发表于 2025-4-13 22:05
它这个时序特性数据是什么意思,看数据量好像挺大的

这个看着是I2S接口,你查查看看,速率挺快的
回复 支持 反对

使用道具 举报

发表于 2025-4-13 22:15:35 | 显示全部楼层
猪小呆 发表于 2025-4-13 22:05
它这个时序特性数据是什么意思,看数据量好像挺大的

本来音频数据数据量就很大啊,以44.1KHz采样率、16位量化为例,1秒就需要44.1K*2*8位数据。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 22:28:42 | 显示全部楼层
mmxx2015 发表于 2025-4-13 22:15
本来音频数据数据量就很大啊,以44.1KHz采样率、16位量化为例,1秒就需要44.1K*2*8位数据。 ...

AI8051U支持I2S,不知道速度能不能达到要求,PLL高速时钟最快速度是多少?
2025-04-13_222738.jpg
回复 支持 反对

使用道具 举报

发表于 2025-4-13 23:24:13 | 显示全部楼层
楼主想多了。

不是不能替代,而是用了这玩意会把你的 CPU 时间占满,其他进程不用跑了。

以 10kHz 正弦波发波为例,假设每个周期需要 10 个 DAC 数据点:
那平均每 10us 就要更新一次 DAC 的输出,风吹日晒雷打不动 10us 必须到点就更新,否则波形会失真。
然而没记错的话,楼主用的是 STC 这类处理器 CPU,就算 1T 模式差不多百来个时钟就必须更新一次 DAC。

然而楼主要知道,51 构架算一次 FLOAT 差不多就几百个周期(假设没有 FPU),相当于你一条 y=3.14f*x 语句就已经波形更新不及时了。
更不用说还有键盘扫描、LCD 驱动,里边小范围的 delay_ms 全都会导致 10us 刷新超时
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 23:29:41 | 显示全部楼层
t3486784401 发表于 2025-4-13 23:24
楼主想多了。

不是不能替代,而是用了这玩意会把你的 CPU 时间占满,其他进程不用跑了。

用DMA搬运事先建好的正弦表数组给I2S接口是否可以解决CPU占用的问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 23:38:51 | 显示全部楼层
t3486784401 发表于 2025-4-13 23:24
楼主想多了。

不是不能替代,而是用了这玩意会把你的 CPU 时间占满,其他进程不用跑了。

这里有一篇文章,用AI8051U加另一款芯片实现了双通道输出,每个通道10KHz,貌似可行?
https://www.bilibili.com/opus/1016300905655435264
2025-04-13_233842.jpg
回复 支持 反对

使用道具 举报

发表于 2025-4-13 23:39:47 来自手机浏览器 | 显示全部楼层
能不能呢,过来学学
回复 支持 反对

使用道具 举报

发表于 2025-4-13 23:42:06 来自手机浏览器 | 显示全部楼层
看分析是不行的,学到了。
回复 支持 反对

使用道具 举报

发表于 2025-4-14 00:33:06 | 显示全部楼层
猪小呆 发表于 2025-4-13 23:29
用DMA搬运事先建好的正弦表数组给I2S接口是否可以解决CPU占用的问题?

可以,应该说若用 DAC 方案,只有 DMA 或者协处理器是可行的方向。

但实际芯片的 I2S 接口不是简单的 SPI 或者 UART 这类通用的玩意,和 DMA 做不到 100% 耦合就又退回要 CPU 介入处理了,又是 10us 的折腾。

话说楼主都开始用带 DMA 的 STC 了? 还是从刚开始就打算拿 ARM 来做?
回复 支持 反对

使用道具 举报

发表于 2025-4-14 00:35:55 | 显示全部楼层
猪小呆 发表于 2025-4-13 23:38
这里有一篇文章,用AI8051U加另一款芯片实现了双通道输出,每个通道10KHz,貌似可行?
https://www.bilib ...

10KHz 是样本的加载速度,不是正弦频率。

这截图你自己看,一个正弦周期都快 50ms 了...
回复 支持 反对

使用道具 举报

发表于 2025-4-14 08:03:14 | 显示全部楼层
楼主研究DAC,目的是为了电桥,哈哈
回复 支持 反对

使用道具 举报

发表于 2025-4-14 08:32:58 | 显示全部楼层
用457代替许老师电桥更省事
回复 支持 反对

使用道具 举报

发表于 2025-4-14 08:46:26 | 显示全部楼层
上个xx32Fxxx芯片不好吗 ADC,DAC都有,DMA不比STC强几条街?10块钱都嫌贵还搞啥DIY,又不是批量生产1分钱都要扣
回复 支持 反对

使用道具 举报

发表于 2025-4-14 09:00:14 来自手机浏览器 | 显示全部楼层
若原来的7.8KHz改成10KHz,后面的滤波电路的参数都要相应修改,程序也要改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-22 12:33 , Processed in 0.109200 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表