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:
很高兴您的问题得以解决,也非常感谢您的分享。