搜索
bottom↓
回复: 9

STM32通过PWM模拟DAC输出16位,44.1KHz的声音,定时频率44.1K,PWM频率282.35K,低通滤波及

[复制链接]

出0入0汤圆

发表于 2011-5-6 18:21:15 | 显示全部楼层 |阅读模式
STM32通过PWM模拟DAC输出16位,44.1KHz的声音,定时频率44.1K,PWM频率282.35K,低通滤波及功放该怎么做?在网上看到很多人用音频DAC+功放+低通滤波做,这个低通滤波跟PWM的低通滤波是不是一样?目前已调好文件系统,PWM及定时中断,直接接耳机可听到声音,但噪音实在太大,无任何实用意义。我希望能做成便携式,用锂电池供电,耳机收听,音质不用很好,达到MP3的水平就可以。
另外再请教下,PWM频率跟定时频率及WAV的采样率有什么关系,我的理解是44.1KHz的采样率,即定时频率也应该是44.1KHz,那么PWM的频率应该多少才合适?我改变PWM的频率只会影响声音音量的大小,其他的好像没多大影响。
参考马老师的简易的WAVE播放器的设计与实现一文,里面有“把这些数据让单片机以 8K 速率通过 DAC 输出,就可以得到还原的模拟音频信号了。”
还有“这里采用 PWM 方式实现 DAC的转换,由于 PWM 的频率为8KHz,因此PWM 的输出信号中包含许多大于 8K的高频信号成分(噪声)。”
搞不懂是定时频率8K,还是PWM频率8K。我对音响一晓不通,请高手指教。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-5-7 09:21:31 | 显示全部楼层
唉,没人回复,为了更好地提问题,做个简单的调查,路过的朋友们,你是属于以下哪种情况?
1:这种简单的问题,不屑于回答,自己查书去
2:同问,我也想知道
3:我不是高手,还是让高手回答吧
4:对这问题没研究,不发表意见
5:对这方面问题没兴趣
6:不明白想问什么问题,请说清楚一点
7:我上来查资料的,很忙,没时间回复

出0入0汤圆

发表于 2011-5-7 10:13:07 | 显示全部楼层
普通的DAC是44.1KHz输出一个值。
如果用PWM模拟,起码要乘16吧?PWM输出要加滤波才能作为DAC使用。
不过我用8KHz的PWM输出DTMF信号,后面加4KHz的低通滤波器,也可以用。
作为音响,要求肯定要高才可以。

也可以参考D类放大器,内部的PWM开关频率也是接近MHz级别的。

出0入0汤圆

发表于 2011-5-7 10:24:05 | 显示全部楼层
别费这功夫了,如果你用的是STM32F103ZET6可以直接接一个I2S接口的audio codec做音频输出,设好回放频率,把数据发过去就可以了

出0入42汤圆

发表于 2011-5-7 10:59:44 | 显示全部楼层
如果是DAC,数据更新频率设成44.1kHz就行了;如果是用PWM,区别就大了。

要16位精度,就有65536个数值,PWM就要65536级,从0/65535到65535/65535。这就意味着在1/44100秒内,定时器至少要输出一次完整的65536级的PWM,那么定时器计数速率要达到1/((1/44100)/65536))=44.1k*65536=2890.1376MHz,STM32是无法达到的。

如果只要8位精度,定时器计数速率就只要44.1k*256=11.2896MHz,STM32可以轻松达到。

最好的方法是使用STM32的DAC。

以上仅供参考。

出0入0汤圆

发表于 2011-5-11 09:29:57 | 显示全部楼层
用PWM我理解是定时频率44.1k ,PWM频率高于44.1kHz*2

以前用51做过一个类似的 最高双声道24kHz音频 8位PWM输出 音质和一般收音机差不多

出0入0汤圆

发表于 2013-11-28 14:29:43 | 显示全部楼层
guanxihui 发表于 2011-5-7 09:21
唉,没人回复,为了更好地提问题,做个简单的调查,路过的朋友们,你是属于以下哪种情况?
1:这种简单的问 ...

请教如何用用stm8
的PWM输出DTMF信号

出0入0汤圆

发表于 2014-8-17 18:25:53 | 显示全部楼层
guanxihui 发表于 2011-5-7 09:21
唉,没人回复,为了更好地提问题,做个简单的调查,路过的朋友们,你是属于以下哪种情况?
1:这种简单的问 ...

您好师兄 请问你做DTMF时输出的770的频率其幅值能达到多大? 请问您做过亚音吗? 我是新人 现在在用PWM模拟dac做亚音 由于亚音频率太低了,低通之后输出来的波形幅值很小只有100mv而且示波器还分辨不出频率大小。请问您用pwm做过亚音吗? 做亚音跟做DTMF原理是不是不一样。比如我要发一个67Hz的亚音。我的TIM1的ARR = 255,占空比可变。我用timer7去控制采样频率(每隔多长时间送一个点)这样我的定时为1/(67 * 512)(因为我有512个点为一个周期)。是这样发的吗?由于项目紧急 请您点拨一下 谢谢!

出0入0汤圆

发表于 2014-8-17 18:26:25 | 显示全部楼层
ldhavr 发表于 2013-11-28 14:29
请教如何用用stm8
的PWM输出DTMF信号

您好师兄 请问你做DTMF时输出的770的频率其幅值能达到多大? 请问您做过亚音吗? 我是新人 现在在用PWM模拟dac做亚音 由于亚音频率太低了,低通之后输出来的波形幅值很小只有100mv而且示波器还分辨不出频率大小。请问您用pwm做过亚音吗? 做亚音跟做DTMF原理是不是不一样。比如我要发一个67Hz的亚音。我的TIM1的ARR = 255,占空比可变。我用timer7去控制采样频率(每隔多长时间送一个点)这样我的定时为1/(67 * 512)(因为我有512个点为一个周期)。是这样发的吗?由于项目紧急 请您点拨一下 谢谢!

出0入0汤圆

发表于 2014-11-7 11:17:01 | 显示全部楼层
STM32最高是72M的频率,72M/256=281.25K,72M/65536=1.09  所以STM32只能做8位的PWM语音
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 20:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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