TI中文支持网
TI专业的中文技术问题搜集分享网站

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都可以透传吗?

Kailyn Chen:

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

,

zhijian Mao:

您好,

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

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

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

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

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

,

zhijian Mao:

您好,

再追加一个问题

采样率为48K,16bit

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

默认值是BCLK的二倍频吗?

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

还请帮忙确认

,

Kailyn Chen:

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

,

Kailyn Chen:

zhijian Mao 说:

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 引脚的话,应该是可以透传的。

,

Kailyn Chen:

zhijian Mao 说:默认值是BCLK的二倍频吗?

是的,默认的是2倍频。

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

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

,

zhijian Mao:

默认值是二倍频的话,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吗?

,

Kailyn Chen:

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

,

Kailyn Chen:

zhijian Mao 说:默认值是二倍频的话,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输出呢。

,

zhijian Mao:

好的,我这边试试

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

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

谢谢!

,

Kailyn Chen:

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

,

zhijian Mao:

您好,

将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 模式。这样可以吗?

,

zhijian Mao:

再追问一下

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

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

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

,

Kailyn Chen:

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

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

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

zhijian Mao 说:

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

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

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

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

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

,

zhijian Mao:

您好,根据我们的方案,关于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还请指示一下。

,

Kailyn Chen:

zhijian Mao 说:在我认为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的。

,

zhijian Mao:

您好

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

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

I2S采样:48kHz,32bit

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

,

zhijian Mao:

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

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

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

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

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

,

Kailyn Chen:

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

赞(0)
未经允许不得转载:TI中文支持网 » DS90UB941AS-Q1: 941和948的I2S透传
分享到: 更多 (0)