LeonBernieniv 发表于 2014-7-3 22:43

烦请看下32bit I2S喂给PCM1704的逻辑



如题。是否正确可行?或者有更简洁的方法?

LeonBernieniv 发表于 2014-7-3 23:42

哎呀,少串了两个164...

LeonBernieniv 发表于 2014-7-4 10:40

昨晚睡前匆匆,好象是混淆了左右串流和并发……

参考了下Eric juaneda的原理图和另一个7310->1702的方案(对于这个使用用反相BCK还是疑惑不解)





还有这个更完整的


zhp25 发表于 2014-7-4 10:46

太复杂,

LeonBernieniv 发表于 2014-7-4 11:07

改成这样:



U6出反相LE ’和CLOCK ’,照理不需要,留着备用

LeonBernieniv 发表于 2014-7-4 11:15

顺便附带两个可玩的,也许有感兴趣的



fei1989long 发表于 2014-7-5 15:29

看不懂:L

卡西利亚斯 发表于 2014-7-5 15:54

假设BCK为通常值64FS。
I2S的DATA或者LRCK 挪7位就得,然后把LRCK反向,就可以。
也有人觉得它听得出左右声道的1/FS秒的时间差,这是需要再把数据挪32位。

LeonBernieniv 发表于 2014-7-5 22:23

本帖最后由 LeonBernieniv 于 2014-7-5 22:30 编辑

整理一下,不知道是否表达得清楚。卡大再看看是不是这样:
前端右对齐时,LRCK作右LE,反向LRCK作左LE。
前端I2S时,DATA右移7位,LRCK作左LE,反向作右LE。

要左右无时差:
前端右对齐时,LRCK作LE,DATA为右声道,DATA右移32位为左声道。
前端I2S时,LRCK作LE,DATA右移7位为左声道,DATA右移7+32位为右声道。

上面是PCM1704,如果用作分立R-2R,上升沿触发的情况,LE的处理要反向。

tendy 发表于 2014-7-8 23:13

丢了的八位怎么办?削峰了照样听?还是32位分段,一片处理上8位,一片处理下24位?

LeonBernieniv 发表于 2014-7-9 07:06

tendy 发表于 2014-7-8 23:13 static/image/common/back.gif
丢了的八位怎么办?削峰了照样听?还是32位分段,一片处理上8位,一片处理下24位?

对不起标题有问题,应该说是I2S的帧长是32位,右对齐为24位给DA。

tendy 发表于 2014-7-9 20:43

哦,了解了,完美的方案是:先用移位寄存器吧i2s移成右对齐格式,顺便把左声道右声道的帧对齐,然后用二选一把左右分离成独立两轨,最后用mck来做个recolcking就可以了。

LeonBernieniv 发表于 2014-7-9 21:34

tendy 发表于 2014-7-9 20:43 static/image/common/back.gif
哦,了解了,完美的方案是:先用移位寄存器吧i2s移成右对齐格式,顺便把左声道右声道的帧对齐,然后用二选一 ...

谢谢。有空有闲就麻烦多给我通通脑筋:lol
对于分离成独立的左右两轨,先前装过本坛坛友forsli@163.com的四分时1702,用74153做选通,跌跌撞撞地也读得通,但是要灵活应用就露怯了…… 容我再摸摸看吧。不过依我目前的理解,单为正确播放左右声道数据,不做分时之类处理的话,没必要把DATA串流分离吧?因LRCK拿来当LE用,50%的占空比,另一声道的数据本就是可有可无的,对不对?reclock倒是有方案可抄的。

一汪清泉 发表于 2014-7-9 23:03

数字逻辑这方面DIY基本空白啊,支持下上面的高手们!

tendy 发表于 2014-7-10 03:15

LeonBernieniv 发表于 2014-7-9 21:34 static/image/common/back.gif
谢谢。有空有闲就麻烦多给我通通脑筋
对于分离成独立的左右两轨,先前装过本坛坛友的四分时1702,用 ...

分离的目的主要还是要把左右给对齐了,不分开,没法对,lrck当le,确实有50%是空白,这个可以先倍频后再当le用,这样能增加些信噪比,另外这段空白还可以有很多玩法,哈哈,总之,这块太有意思了,另外我劝你别用逻辑元件来折腾,这样既没效率还累死,玩cpld吧,非常快就能检验结果,有新的想法也能迅速实现。

LeonBernieniv 发表于 2014-7-10 08:52

tendy 发表于 2014-7-10 03:15 static/image/common/back.gif
分离的目的主要还是要把左右给对齐了,不分开,没法对,lrck当le,确实有50%是空白,这个可以先倍频后再当 ...

CPLD完全使不上劲啊!还是把基础搞清比较实在哈~
前面关于左右分离又说错了,应该是两片74164在做功,后面跟一片74153两个通道分别选通移位对齐的比特数据。在bit移位的同时借用互为反向的LRCK做清零实现左右分离,应该说是顺势而为,不是“必须”。
节选forsli大大的这部分原理图:



仅以这个24bit右对齐 --> PCM1702而言,改成下面电路,应该也是可以的吧?也不会影响后面的分时。





LeonBernieniv 发表于 2014-7-10 12:53

这一部分先糊弄过去,临时抱佛脚再啃一下补码移码,理解起来就不再需要太多的空间感。回头再去看TDA1541的OB/TWC        MODE就豁然开朗了。
抄的这个R2R不日会到,MSB符号位,单极,不考虑过零,不考虑毛刺,不考虑精度,不考虑开关内阻,的确是幼稚园体验级别了,呵。。。
赶在大暑前出声,然后懒懒的过一个夏天。

tendy 发表于 2014-7-10 16:19

过零毛刺开关内阻等问题是r2r必须解决的难题,实际上,r2r dac我已经玩了一年以上了,以上问题都有些感受,一两句话真不容易说清楚,有兴趣加个qq讨论吧41888355

LeonBernieniv 发表于 2014-7-10 16:36

这些都有现成的解决方案,反倒是不在意一揽子到位,而且layout生疏得不行,所以就宁愿爬着玩耍。:lol

daviscai 发表于 2014-7-10 18:14

上传一个24bit供参考
页: [1] 2 3 4 5
查看完整版本: 烦请看下32bit I2S喂给PCM1704的逻辑