主题中讨论的其他器件: PCM5122
我们尝试在 I2S 主控模式下测试 TLV320ADC5140、根据我们的理解、为 MCLK 供电是可选的。 由于我们仅以48kHz 相关的采样率运行、因此 OUT PCB 具有用于单个24.576mhz 晶体的焊盘。 目前、XO 未组装。 我们的理解是、TLV320可以提供其自身的内部 BCK 和 LRCK 输出、但根据以下序列、我们不会得到 I2S BCK/LRCK。 原理图如下:

我们尝试使用此序列进行激活(伪代码、使用 node.js 和 i2c 库、将按照下面的确认写入寄存器):
const MST_CFG1_RATES = {
48 : 0x48, // 01001000
96 : 0x58, // 01011000
192: 0x68, // 01101000
384: 0x78 // 01111000
};
// SLEEP_CFG wake
await i2cWriteByte(0x02, 0x91);
// MST_CFG0 master, 48k 10000111
await i2cWriteByte(0x13, 0x87);
// i2cWriteByte(0x16, 0xXX); // CLK_SRC master (not using for now)
// 256x 96k, 01011000
await i2cWriteByte(0x14, MST_CFG1_RATES[96]);
// ASI_CFG0 i2s, 32bit, 01110000 ? (not sure about last two bits)
await i2cWriteByte(0x07, 0x70);
// DSP_CFG sum pairs 00000100 ? not sure about HP
await i2cWriteByte(0x6B, 0x04);
// DEV_STS0 power up 1-4? 11110000
await i2cWriteByte(0x76, 0xF0);
// IN_CH_EN enable input 1-4? 11110000
await i2cWriteByte(0x73, 0xF0);
// ASI_OUT_CH_EN enable 1,2? 11000000
await i2cWriteByte(0x74, 0xC0);
// CH1_CFG0 config input, line, single-ended, no dre, 20k: 10101000
await i2cWriteByte(0x3C, 0xA8);
// CH2_CFG0
await i2cWriteByte(0x41, 0xA8);
// CH3_CFG0
await i2cWriteByte(0x46, 0xA8);
// CH4_CFG0
await i2cWriteByte(0x4B, 0xA8);
读取 i2c 并得到确认值:
{
'0x02': '10010001',
'0x13': '10000111',
'0x14': '1011000',
'0x07': '1110000',
'0x6B': '100',
'0x76': '0',
'0x73': '11110000'
}
0x76看起来没有设置。 我们仍然希望在 FSYNC 和 BCLK 上看到生命体征。 GPIO1上是否需要 XO 输入? 数据表使其看起来是可选的、因此我们希望在没有数据表的情况下测试性能。 此外、该 I2S 主器件是同一电路板上 PCM5122的主器件。 但还没有这么远。

