This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB941AS-Q1: 941和948的I2S透传

Part Number: DS90UB941AS-Q1

TI,您好

如果需要进行I2S透传,下面941和948的的寄存器问题还请帮忙回答。

1. 除了GPIO_REG,还需要配置别的吗?

2. 根据datasheet,941的GPIO_REG默认值就可以了吗?

3. 948的GPIO_REG应该怎么配置?

4. I2S的DOUT和DIN都可以透传吗?

  • 您好,是I2S的所有信号都需要透传吗? 我这边需要再看下这个问题。

  • 您好,

    是的,我想传输正常的四线I2S,SDO和SDI都想透传

    目前在我们样机测试,SDO、BCK、LRCK在941和948的默认值时,就可以透传过去。

    但是还需从948透传SDI信号到941,因为样机目前还没法给出SDI信号

    I2S_SDI现在接续的是I2S_DB(GPIO5_REG)这个pin,可以透传吗?

    因为式样书中给出941这个pin定义是intput,948定义是output.

  • 您好,

    再追加一个问题

    采样率为48K,16bit

    在使用948的MCLK时,实测发现BCLK:3.073MHz;MCLK:6.114MHz

    默认值是BCLK的二倍频吗?

    我想将MCLK变为12.288MHz,但是发现调节948的0x3A的寄存器改变不了

    还请帮忙确认

  • 您好,我现在看下您的这个问题,马上给您回复。

  • I2S_SDI现在接续的是I2S_DB(GPIO5_REG)这个pin,可以透传吗?

    因为式样书中给出941这个pin定义是intput,948定义是output.

    您好,I2S_DB 和GPIO5_REG是公用的,如果我们不enable GPIO5_REG 为GPIO mode的话,这个引脚就是I2S data input引脚。

    如果使能了GPIO  mode话,那么就覆盖I2S  功能了。

    所以作为I2S 引脚的话,应该是可以透传的。

  • 默认值是BCLK的二倍频吗?

    是的,默认的是2倍频。

    如果想改变MCLK的频率,配置0x3A是没问题的,您是怎么配置的?

    按照这里的描述,先写0X3A的bit7,再配置bit[6:4].

  • 默认值是二倍频的话,0x3A的bit[6:4]默认值是000还是001吗?

    先配置bit7=0,bit[6:4]=001;MCLK不变,仍为6.144MHz

    又配置bit7=0,bit[6:4]=010;MCLK也不变,仍为6.144MHz。

    上面两个哪个配置是正确的?如果配置没问题的话,怀疑是I2C透传没写进去。

    另外,对3A寄存器还没理解透

    1. bit[6:4]中M是REF的32倍频吗?

    2. bit[2]=0时,选择锁相环将M变为32*REF吗?

    3. bit[1:0]中的M是BCLK吗?

  • 您好,我现在看下这个问题哈。

  • 默认值是二倍频的话,0x3A的bit[6:4]默认值是000还是001吗?

    您好, 16bit,48Khz,3.072Mhz BCLK的话,0x3A的12.288MHz默认值是010=4*REF/M.(参考Table 7-7. Audio Interface Frequencies)。

    bit[6:4]是VCO输出分频系数,所以如果现在要想输出12.288MHz,M不变的话, bit[6:4]应该为8*REF/M,即divider为4,配置为011.

    M= bit[1:0]为VCO输入的分频系数,也就是说reference clock输入,REF-------dividerM ------->VCO frequence------->divider bit[6:4]----->MCLK  

    我是这么理解的,您可以试试,将0x3A bit7=0.  bit[6:4]=011. bit[1:0】=01

    即0x32您配置为0x31看下是否能输出12.288Mhz输出呢。

  • 好的,我这边试试

    今天实测软件配的不是16bit采样,而是32bit。

    稍后根据32bit再设一遍寄存器值。

    谢谢!

  • 好的,等您的通知,如果还不行,我们再讨论。

  • 您好,

    将0x3A配置成0x31和0x30,都不好用,MCLK还是没有变化。

    使用I2S方案流程是:SOC→941→948→TLV320AIC(CODEC)

    通过GPIO5-8进行I2S透传,然后948的MCLK给CODEC

    948的MCLK和GPIO5-8可以一起用吗?

    现在SOC做master,948使用的是Slave ,CODEC也使用slave 模式。这样可以吗?

  • 再追问一下

    MCLK是必须在I2S master才能使用吗?

    配置MCLK分频时,寄存器0x1A需要配置吗?因为GPIO9和MCLK是复用关系。

    0x1A的bit[7:4]Global GPIO是什么意思?需要它设置成三态吗?

  • 现在SOC做master,948使用的是Slave ,CODEC也使用slave 模式。这样可以吗?

    codec 如果需要MCLK的话,必须是slave mode,如果codec为master的话,就不需要MCLK输入了。

    948输出MCLK给codec的话,948应该作为master。

    配置MCLK分频时,寄存器0x1A需要配置吗?因为GPIO9和MCLK是复用关系。

    0x1A的bit[7:4]Global GPIO是什么意思?需要它设置成三态吗?

    配置MCLK的分频我认为不需要配置0x1A。

    0x1A的bit4和bit5一起是用来配置GPIO的使能和方向的。

    bit7的意思是在bit4和bit5 配置为GPIO为输出,并且enable的前提下,bit7用来配置GPIO输出是高还是低电平。

  • 您好,根据我们的方案,关于I2S的使用还请指示一下

    方案:LCD端有948和耳机codec,941在SOC端。I2S透传通过GPIO5-8

    1. SOC,941,948,CODEC的I2S主从关系如何分配?

    在我认为941和948只是个I2S透传媒介,SOC做主,CODEC做从,这样就可以了

    2. 看948的式样,做master的I2S_WS和I2S_DATA是和GPIO0和1复用的,目前我们透传I2S是通过GPIO5-8

    这么使用的话,MCLK不可以正常输出吗?

    3. tlv320aic这个codec做从的话,MCLK默认接收12.288MHz吗?

    4. 948如何做master?在什么场景下需要948做master还请指示一下。

  • 在我认为941和948只是个I2S透传媒介,SOC做主,CODEC做从,这样就可以了

    1.是的,948 是没有引脚或者寄存器配置主从的,但是它输出MCLK,那是作为master的。 Codec的MCLK作为输入,一定是slave。 

    codec是可以配置主从的,可以查看下codec的数据手册,寄存器是可以配置为主从模式的。

    2. 我的理解是,在您的整个link中,SOC→941→948→TLV320AIC(CODEC)

    codec配置为从模式,只要Soc这边有I2S输入信号,948的PLL enable的话,就应该输出MCLK的。

  • 您好

    codec的寄存器配置这边已经基本明确。

    现在的问题还是MCLK输出与配置不匹配。

    I2S采样:48kHz,32bit

    如果使用948的MCLK,I2S_WS,I2S_DOUT接口必须要用GPIO0和1吗?

  • 您好,刚刚参照一篇I2S透传文档

    https://www.ti.com/lit/an/snla221/snla221.pdf?ts=1648705044815

    之前的0x3A的bit7一直都配错了,需要置为1.

    寄存器0x3A配置成0xB1后得到我想要的值了

    问题已经解决,多谢这些天的对应!

  • 很高兴您的问题得以解决,也非常感谢您的分享。

x 出现错误。请重试或与管理员联系。