求助用51的普通I/O口如何模拟I2S总线?
本帖最后由 imfv 于 2013-10-26 18:23 编辑如题,想驱动PCM1781做单通道输出一个固定的正弦波信号,采用I2S总线的方式,请问如何模拟?
自己找 软件SPI 代码 这个好像与SPI不同的 速率太高,时序要求太高,模不了的。 gzhuli 发表于 2013-10-26 18:37 static/image/common/back.gif
速率太高,时序要求太高,模不了的。
只输出一个通道,可行吗?输出频率不高,达到1K就可以了。 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也可以有自己的晶振。 gzhuli 发表于 2013-10-26 20:17 static/image/common/back.gif
不建议用这个DAC,太折腾了,一定要用这个的话,与其花时间研究模拟I2S这个还不如换个带I2S的MCU,例如ST ...
谢谢版主的回复,请问这个芯片的TEST脚和ZEROA脚外围如何做? imfv 发表于 2013-10-26 19:43 static/image/common/back.gif
只输出一个通道,可行吗?输出频率不高,达到1K就可以了。
SCLK的频率=2×采样频率×采样位数。
imfv 发表于 2013-10-26 22:41 static/image/common/back.gif
谢谢版主的回复,请问这个芯片的TEST脚和ZEROA脚外围如何做?
没用过,手册有写的吧。 gzhuli 发表于 2013-10-27 12:39 static/image/common/back.gif
没用过,手册有写的吧。
看不明白,E文太水。 再次膜拜大侠.. imfv 发表于 2013-10-27 22:01 static/image/common/back.gif
看不明白,E文太水。
TEST脚接低电平或悬空即可,ZEROA脚是检测到1024个采样的0数据就输出高电平,两个都悬空就行了。 曾家0762 发表于 2013-10-27 09:50 static/image/common/back.gif
SCLK的频率=2×采样频率×采样位数。
像我以上的电路能不能正常工作? i2s 对时钟要求非常严格 你还是换个dac吧 音频dac不是那么好用的 majianjia1991 发表于 2013-10-27 23:23 static/image/common/back.gif
i2s 对时钟要求非常严格 你还是换个dac吧 音频dac不是那么好用的
主要是这个DAC的失真度比较小,别的DAC失真度太高。
页:
[1]