imfv 发表于 2013-10-26 18:17:31

求助用51的普通I/O口如何模拟I2S总线?

本帖最后由 imfv 于 2013-10-26 18:23 编辑

如题,想驱动PCM1781做单通道输出一个固定的正弦波信号,采用I2S总线的方式,请问如何模拟?

90999 发表于 2013-10-26 18:20:45

自己找 软件SPI 代码

imfv 发表于 2013-10-26 18:23:17

这个好像与SPI不同的

gzhuli 发表于 2013-10-26 18:37:54

速率太高,时序要求太高,模不了的。

imfv 发表于 2013-10-26 19:43:26

gzhuli 发表于 2013-10-26 18:37 static/image/common/back.gif
速率太高,时序要求太高,模不了的。

只输出一个通道,可行吗?输出频率不高,达到1K就可以了。

gzhuli 发表于 2013-10-26 20:17:25

imfv 发表于 2013-10-26 19:43 static/image/common/back.gif
只输出一个通道,可行吗?输出频率不高,达到1K就可以了。

不建议用这个DAC,太折腾了,一定要用这个的话,与其花时间研究模拟I2S这个还不如换个带I2S的MCU,例如STM32。
非要折腾的话,建议也不要用I2S,改用16位右对齐格式,BCK和LRCK由定时器产生,SPI配置成从机模式,同时将BCK送进SPI的SCLK,LRCK送进SPI的CS,然后MISO接DAC的DATA,这样才能保证时序的一致,并从右声道输出单声道的音频。
还有,PCM1781的SCK要和单片机同步,不能用独立的晶振,SCK的频率和采样率也有对应关系,具体看手册说明。
如果可以换DAC,应该选择可以工作在主模式的型号,这样DAC可以产生BCK和LRCK时序,还是把这两个信号接到单片机的SPI上,就不需要占用单片机定时器了,DAC也可以有自己的晶振。

imfv 发表于 2013-10-26 22:41:18

gzhuli 发表于 2013-10-26 20:17 static/image/common/back.gif
不建议用这个DAC,太折腾了,一定要用这个的话,与其花时间研究模拟I2S这个还不如换个带I2S的MCU,例如ST ...

谢谢版主的回复,请问这个芯片的TEST脚和ZEROA脚外围如何做?

曾家0762 发表于 2013-10-27 09:50:16

imfv 发表于 2013-10-26 19:43 static/image/common/back.gif
只输出一个通道,可行吗?输出频率不高,达到1K就可以了。

SCLK的频率=2×采样频率×采样位数。

gzhuli 发表于 2013-10-27 12:39:25

imfv 发表于 2013-10-26 22:41 static/image/common/back.gif
谢谢版主的回复,请问这个芯片的TEST脚和ZEROA脚外围如何做?

没用过,手册有写的吧。

imfv 发表于 2013-10-27 22:01:39

gzhuli 发表于 2013-10-27 12:39 static/image/common/back.gif
没用过,手册有写的吧。

看不明白,E文太水。

zishan 发表于 2013-10-27 22:05:37

再次膜拜大侠..

gzhuli 发表于 2013-10-27 23:13:11

imfv 发表于 2013-10-27 22:01 static/image/common/back.gif
看不明白,E文太水。

TEST脚接低电平或悬空即可,ZEROA脚是检测到1024个采样的0数据就输出高电平,两个都悬空就行了。

imfv 发表于 2013-10-27 23:18:34

曾家0762 发表于 2013-10-27 09:50 static/image/common/back.gif
SCLK的频率=2×采样频率×采样位数。

像我以上的电路能不能正常工作?

majianjia1991 发表于 2013-10-27 23:23:47

i2s 对时钟要求非常严格 你还是换个dac吧 音频dac不是那么好用的

imfv 发表于 2013-10-27 23:26:43

majianjia1991 发表于 2013-10-27 23:23 static/image/common/back.gif
i2s 对时钟要求非常严格 你还是换个dac吧 音频dac不是那么好用的

主要是这个DAC的失真度比较小,别的DAC失真度太高。
页: [1]
查看完整版本: 求助用51的普通I/O口如何模拟I2S总线?