stc51驱动cs4344播发wav
版主你好!!请教一个问题51上的软件模型问题,问题描述:1.目的:用stc12c5a60s2单片机加一片cs4344 dac来播发wav 2.状况:sd卡文件系统已做好,但是cs4344的i2s驱动还不工作(因单片机没有i2s总线接口,所以用的是i/o模拟,晶振24.576,1T的单片机,能输出3个colcok,可以实现2~512分频,另外中断什么的随便用,pwm口等),wav参数:48Khz,16bit、双声道 问题:怎样保证基于i2s总线的数据不断流(假设发送的数据全都取反,计算:数据速率为:768Khz,)请lz能给于指点,谢谢 版主不喜欢STC................... 回复【楼主位】changhai123版主你好!!请教一个问题51上的软件模型问题,问题描述:1.目的:用12c5a60s2单片机加一片cs4344 dac来播发wav 2.状况:sd卡文件系统已做好,但是cs4344的i2s驱动还不工作(因单片机没有i2s总线接口,所以用的是i/o模拟,晶振24.576,1t的单片机,能输出3个colcok,可以实现2~512分频,另外中断什么的随便用,pwm口等),wav参数:48khz,16bit、双声道 问题:怎样保证基于i2s总线的数据不断流(假设发送的数据全都取反,计算:数据速率为:768khz,)请lz能给于指点,谢谢
-----------------------------------------------------------------------
用汇编写都不一定不断流~~~
你要保证读SD卡的速度远远快于伪I2S送出数据的速度。建议你把采样率降低到16K。 我可以接受单声道,但不能把采样调低 回复【3楼】changhai123
我可以接受单声道,但不能把采样调低
-----------------------------------------------------------------------
这也可以。 CS4344没有单声道模式,48k 16b 2ch的码率是1.536M,24.576M 1T单片机模拟IO一位只能跑16条指令(貌似跳转指令还不止1T),不说读SD卡,就算数据已经在内存里,用汇编都不一定能实现。
I2S和USB不一样,虽然AVR模拟IO能做到1.5Mbps的USB LS,但是USB是包通讯,允许断流,I2S是流通讯,不能断流,除非读SD卡有DMA搞定,否则16个时钟周期不太可能完成读SD卡和模拟I2S输出的。 mark 如果添加硬件资源又该怎样解决,添加什么??? 或者能帮忙写个cs4344的驱动吗? 如果允许加硬件的话,可以考虑8位并口输出,定时器产生位时钟和字时钟,用74HC166做并串转换,DAC换Left Justified模式的CS4345。 这个单片机不是有SPI接口的么,上次看到一个帖子说SPI接口可以用到I2S上的 回复【10楼】jsjjccc
这个单片机不是有spi接口的么,上次看到一个帖子说spi接口可以用到i2s上的
-----------------------------------------------------------------------
那SPI接I2S后,SD卡用模拟IO读么?还不是一个样?
AVR好歹也有个USART可以当另一个SPI用,STC这个是标准的UART,没S的,没办法当SPI用…… 回复【11楼】gzhuli 咕唧霖
-----------------------------------------------------------------------
哦`` SD卡可以用串口的同步移位模式提高速度,comboy有贴. 如果切换到spi口如何,我可以模拟spi,这里最关键的就是cs4344了 回复【14楼】changhai123
如果切换到spi口如何,我可以模拟spi,这里最关键的就是cs4344了
-----------------------------------------------------------------------
SD卡和cs4344都必须不能IO模拟才可能实现,sd卡用同步串口来提高速度,cs4344用硬件spi来操作,也许可以实现. 回复【15楼】mcu_001
回复【14楼】changhai123
如果切换到spi口如何,我可以模拟spi,这里最关键的就是cs4344了
-----------------------------------------------------------------------
sd卡和cs4344都必须不能io模拟才可能实现,sd卡用同步串口来提高速度,cs4344用硬件spi来操作,也许可以实现.
-----------------------------------------------------------------------
正解,不过STC貌似没有同步串口。
即使有同步串口和SPI,还是SPI读卡,PWM产生位时钟和字时钟,同步串口输出数据,而且用左对齐格式的DAC会比较方便,因为IIS的字时钟比数据提前一位跳变,需要额外处理才能模拟。 这个是国外网站下载到的,at32基于i2s做的wav播放器ourdev_622098HDMXCI.zip(文件大小:12K) (原文件名:I2S.zip)
这个是pc机软件,请大家帮忙看看,怎么样参考他的方法,把这做出来ourdev_622099HCLO61.zip(文件大小:342K) (原文件名:I2S_PC.zip) 51破解确实速度不够,最后换16位或者32位,速度更快的 wofei3344 发表于 2019-2-28 11:15
51破解确实速度不够,最后换16位或者32位,速度更快的
挖啊挖啊挖 这个草长得有几米了吧{:lol:} 我也不喜欢STC 。。。。。。。。。。。。
页:
[1]