有朋友用过WM8904吗?

[复制链接]
11938|24
 楼主| xubin4858 发表于 2011-6-7 14:21 | 显示全部楼层 |阅读模式
我现在用STM32控制WM8904,实现了播放模拟输入的BYPASS的音频,但是无法播放通过ADC  和DAC的音频,郁闷了好几天,不知道哪个寄存器设置错了,现在还在看资料中,有用过的朋友请指点一二了
pkat 发表于 2011-6-7 16:11 | 显示全部楼层
楼主把具体问题可以贴出来看看,代码之类的
 楼主| xubin4858 发表于 2011-6-8 10:19 | 显示全部楼层
现在问题解决了一部分,模拟音频输入经过ADC和DAC可以输出了。但是通过STM32的IIS传输的音频数字信号貌似并没有经过DAC输出。昨天遇到的问题解决方法是虽然ADC表面看来并没有通过IIS的时序来实现,实际上是有很大关系的。STM32必须给上IIS的时序,然后WM8904的ADC和DAC才能启动才能输出音频。各位朋友有用过类似芯片的情指导一二了。
janeslee 发表于 2011-6-8 13:26 | 显示全部楼层
STM32的I2S是个残废,不能双工工作,数据线只能分时复用
 楼主| xubin4858 发表于 2011-6-8 13:57 | 显示全部楼层
我知道啊,但是目前的效果貌似WM8904处于从机的发送模式,但是我想改为接收模式却从DATASHEET上找不到
 楼主| xubin4858 发表于 2011-6-8 14:01 | 显示全部楼层
现在如果哪个朋友知道如何设置WM8904的接收和发送模式也成,就差这么一点了,在DATASHEET上找不到
janeslee 发表于 2011-6-8 14:01 | 显示全部楼层
我有用WM8974,WM8974处于MASTER模式,STM32使用SPI SLAVE模式与其连接,这样可以支持DMA和双工工作,你具体是什么问题?
 楼主| xubin4858 发表于 2011-6-8 14:05 | 显示全部楼层
我现在具体问题是无法让WM8904处于从接收状态
 楼主| xubin4858 发表于 2011-6-8 14:06 | 显示全部楼层
他现在处于从发送状态,只要有模拟音频输入他就在ADCDAT端口输出输出给STM32。我不用双工,单工就成
 楼主| xubin4858 发表于 2011-6-8 14:07 | 显示全部楼层
兄台知道如何更改他们的状态吗,
 楼主| xubin4858 发表于 2011-6-8 14:15 | 显示全部楼层
janeslee 发表于 2011-6-8 18:18 | 显示全部楼层
从接收?什么意思?CODEC只有两种状态,MASTER和SLAVE模式,这两种方式都是可以发或收音频数据的,只有BCLK和LRCLK的方向区别而已,通过R25寄存器即可修改模式,不明白你的意思。
 楼主| xubin4858 发表于 2011-6-10 13:17 | 显示全部楼层
问题已经解决,结贴
 楼主| xubin4858 发表于 2011-6-10 13:17 | 显示全部楼层
WM8904跑起来了呵呵
秋天落叶 发表于 2011-6-10 15:12 | 显示全部楼层
楼主如何解决的
xiangquan2011 发表于 2011-9-8 18:19 | 显示全部楼层
朋友
  您好!我现在也在用STM32控制WM8904,STC32的I2S只有一根数据线,而WM8904是2根单向数据线,硬件怎么连接啊,            
拜托了,告诉我一下。我QQ:274177930    或者在论坛留下你的联想方式
yybj 发表于 2011-9-8 19:09 | 显示全部楼层
楼主共享一下经验,共享也是一种美德
aqibluesky 发表于 2014-10-13 22:53 | 显示全部楼层
janeslee 发表于 2011-6-8 14:01
我有用WM8974,WM8974处于MASTER模式,STM32使用SPI SLAVE模式与其连接,这样可以支持DMA和双工工作,你具 ...

hi,janeslee:
最近用使用WM8974,但是调了好久没有成功,看到你调试成功,能不能借鉴一下,不方便的话能不能告诉初始化的过程,谢谢
janeslee 发表于 2014-10-14 10:47 | 显示全部楼层
aqibluesky 发表于 2014-10-13 22:53
hi,janeslee:
最近用使用WM8974,但是调了好久没有成功,看到你调试成功,能不能借鉴一下,不方便的话能不 ...

如果需要双工收发语音数据就不要使用STM32的I2S模式,将其设为SPI从模式,MOSI接8974的ADCDAT,MISO接8974的DACDAT,FRAME接CPU的一个管脚做中断使用,将SPI的收发都配置上DMA。需要收发数据时,允许8974输出BCLK和FRAME并允许FRAME中断,一旦FRAME中断,就关闭中断并允许SPI,后面的收发就由DMA控制了,无需任何干预。
aqibluesky 发表于 2014-10-15 17:39 | 显示全部楼层
janeslee 发表于 2014-10-14 10:47
如果需要双工收发语音数据就不要使用STM32的I2S模式,将其设为SPI从模式,MOSI接8974的ADCDAT,MISO接897 ...

是这样的,我主要的问题现在是初始化WM8974成为IIS 的master模式,但是一用示波器没看到有bit clk ,或者fram clk,不知是不是寄存器哪里没设置对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

141

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部