微尘 发表于 2012-7-26 12:53

WM8805软控测试分享

WM8805软控电路图如下



这个图纸复位要接上拉。

之前因为我的硬件问题,请教论坛的haluo兄得到不少帮助,谢谢haluo 兄,调试完成后,和他讨论一些问题,WM8805的控制难点在176.4HE 192K的解码,其实只要在192的时候设置正确NK就可以解决。WM8805的内部寄存器读取识别频率在44.1和48K,88.2和96K都是一个数值,确实很难区分,我采用的方法是检测外部的LRCK来获取正确的频率作为一个判断条件。
也可以采用判断UNLOCK的电平或者读取UNLCOK的BIT位来判断。我测试的结果是判断BIT位准确点。

我的测试记录如下,共参考。

//{0x07,0x36,0xFD,0x21},
//{0x07,0x21,0xB0,0x89},
// 44.1K 88.2K 176.4K
//{0x08,0x0C,0x49,0xBA}
//32K 48K 96K 192K
/*
————————————————————————————————————————————————————————————————————
全部设置为{0x07,0x36,0xFD,0x21}
44.1,48K,88.2,176。4K,96K 能正常解码出声音,UNLOCK 为0V
192K解码不了,UNLOCK 为3.3V。

开机      01000000                     3.3V
RX0 44.100100000bit5-4 = 10   0V
48   00100000bit5-4 = 10   0V
88.200010000bit5-4 = 01   0V
96   00010000bit5-4 = 01   0V
17600000000bit5-4 = 00   0V
19201000000   bit5-4 = 00   解码不了,LCD无显示 3.3V
————————————————————————————————————————————————————————————————————
全部设置为{0x07,0x21,0xB0,0x89}
44.1,88.2,176。4K,能正常解码出声音。
48K能解码但有噪声UNLOCK 为0,96K和192K解码不了,UNLOCK 为3.3V。

开机      01000000                     3.3V
RX0 44.100100000bit5-4 = 10   0V
48   00100000bit5-4 = 10   0V
88.200010000bit5-4 = 01   0V
96   01010000bit5-4 = 01   解码不了,LCD无显示 3.3V
17600000000bit5-4 = 00   0V
19201000000   bit5-4 = 00   解码不了,LCD无显示 3.3V
————————————————————————————————————————————————————————————————————
全部设置为{0x08,0x0C,0x49,0xBA}
48K,96K,192K,能正常解码出声音。
44.1,88.2,176。4K,不能解码,44.1K的UNLOCK 电平输出在1.4V-2.5V之间变化。

开机      01000000                     3.3V
RX0 44.100100000bit5-4 = 10   解码不了,LCD无显示 1.4V-2.5V
          01100000   bit5-4 = 10   2个数组在变化
48   00100000bit5-4 = 10   0V
88.201010000bit5-4 = 01   解码不了,LCD无显示 3.3V
96   00010000bit5-4 = 01   0V   
17600000000bit5-4 = 00   解码不了,LCD无显示,但是为0V
19200000000   bit5-4 = 00   0V
————————————————————————————————————————————————————————————————————
设置为
{0x07,0x21,0xB0,0x89}
{0x08,0x0C,0x49,0xBA}
44.1K,96K,192K,能正常解码出声音。
48K能解码但有噪声,176.4不能解码但是UNLOCK 电平输出为0.5V。
————————————————————————————————————————————————————————————————————
设置为
{0x07,0x36,0xFD,0x21}
{0x08,0x0C,0x49,0xBA}
全部可以解码。

RX0 44.100100000bit5-4 = 10
48   00100000bit5-4 = 10
88.200010000bit5-4 = 01
96   00010000bit5-4 = 01
17600000000bit5-4 = 00
19200000000   bit5-4 = 00

*/

xmlhifi 发表于 2012-7-26 13:51

xin wanju

hyperma 发表于 2012-7-26 14:27

就是测试各种往寄存器写的值,然后看看结果?

xjoydnn 发表于 2012-7-26 17:08

哈罗 发表于 2012-7-26 20:30

我连R12都省掉了。

哈罗 发表于 2012-7-26 20:31

貌似你图中的第三脚,SPDIFO这个接错了。

微尘 发表于 2012-7-26 20:48

引用第5楼哈罗于2012-07-26 20:31发表的 :
貌似你图中的第三脚,SPDIFO这个接错了。

没有哦,我这样输入也是可行的,1.6V左右的电平。实际还是用官方的输入也行的。
FS必须的128FS。

hd600240df 发表于 2012-7-26 23:22

这个很强。这两年一直想做一个8选1的数字音频选择器,WM8805的s/pdif 输出有de-jitter很吸引我,但苦于自己mcu编程荒废多年,再捡起来要有些毅力才行,一直没动手。

我的设想简单的很,MCU顺序选择WM8805 的8个s/pdif 输入通道,一旦检测到有效信号(利用WM8805的 UNLOCK 管脚或者通过总线读内部状态标志),就停止在那个输入通道上,直至这个通道信号消失导致WM8805失锁,此时MCU又恢复上面的顺序轮询操作。这个功能要有个开关,需要手动选择通道的时候,就用开关把自动轮询功能禁止掉。

希望你能早日出成品。

hyperma 发表于 2012-7-27 01:21

你的设想不简单,一片pic16的极少部分功能就能干,但如果把大量自动化的程序都灌进去,比如自动选择信号通道、自动升频、自动mute、红外遥控器都加上,这就是个高性能的成品机了。

可喜的是,更加省时省力的数字功放控制器已经出来了,spdif信号直接变数字功放信号,没模拟信号什么事,这大概是这两年spdif接收器和DAC不发展的关键因素。

hd600240df 发表于 2017-3-12 02:21

一晃快5年过去!!!生命短暂、不能等下去拉。最近终于狠心咬牙动手实现自己的8选1选择器。4个同轴输入,4个Toslink光纤输入,输出是同轴、光纤各一路。软控就偷懒直接用Arduino Nano,用现成的Arduino IDE开发、编译环境,用USB线上载程序到微处理器,用com终端调帮助试程序。目前WM8805核心功能控制已经能正常运行, 8个S/PDIF通道的锁定/失锁判断和通道切换已经实现。下面要做的一是把176.4/192的正确识别完善起来,二是把OLED屏显加进去,三是增加一个简单的单功能遥控,实现手动强迫切换信号通道。

日耳曼勇士 发表于 2017-4-22 18:02

怎么不搞c6632 这个芯片更好

日耳曼勇士 发表于 2017-4-22 18:02

hd600240df 发表于 2017-3-12 02:21
一晃快5年过去!!!生命短暂、不能等下去拉。最近终于狠心咬牙动手实现自己的8选1选择器。4个同轴输入,4 ...

怎么不搞c6632 这个芯片更好

hd600240df 发表于 2017-5-27 02:29

c6632 没听说啊,怎么好?能给个链接吗?

功能上,WM8805虽有不能自己识别176.4K和192K的缺陷,需要靠控制单片机的帮助实现完整功能,但因它的数字式PLL可以降低透传Spdif 码流jitter,不存在模拟PLL无法避免的VCO附加噪声,还是很有吸引力。
页: [1]
查看完整版本: WM8805软控测试分享