Other Parts Discussed in Thread: TAD5212, TAD5212EVM-K, TAD5212-Q1
部件号: TAD5212EVM-K
主题中讨论的其他器件: TAD5212、 TAD5212-Q1
终端用户指南 TAD5212 一方 TAD5212EVM-K 我不会将 DAC 输出(通过 PC 的 USB)和 PDM MIC(通过 USB 连接到 PC)正常工作。
可以将其配置为清除 DAC 输出 或 中的 PDM 但配置有所不同、主要是在设置上
I2S 格式(寄存器 0x1A):
用于 DAC 输出 1A= 70 -工作正常。
PDM MIC 进行认证 1A= 60 -工作正常。
但结合使用 DAC 输出和 PDM MIC 输入- 失败 :
-带寄存器 1A= 60 - DAC 输出通道 2(右侧)“错误“(噪声,失真,更安静)= PDM IN 正常
-带寄存器 DAC.70 - 1A=输出正确、但现在 PDM 输入充满了噪声、失真(听起来好像有点奇怪)
寄存器 0x20、0x21((PDM 时隙)和 0x52、0x57((PDM MIC 音量)上的行为也很奇怪:
-如果配置了 24 位 (reg. 1A=60)、则工作正常
-但对于 32 位 (reg. 1A=70),寄存器 1F 必须不同 (reg1F=30 与 1F=21 ),
根据数据表并与 DAC 时隙设置进行比较、实际上 1F=21 是合理的、而不是 30)
-和 PDM 通道 1, 2 的音量设置行为奇怪 (reg. 57 控制两个通道, reg. 52 是
不管我设置什么、我都可以将 reg 静音。 52 — 仍然是一个信号,我可以设置通过 reg. 57 两个通道的音量)
因此、进行组合 DAC OUT 加 PDM IN — 失败 。
将命令保存到我的 I2C 配置文件末尾。
此处为 I2S 信号捕获了两个波形。
奇怪的是:
-配置为 I2S 但它看起来仍然像 TDM(( FS 只是一个脉冲,不稳定在整个左声道,但可以,它似乎工作)
BTW:此 I2S 信号波形由 XMOS AC-MB 生成(不是 TAD5212、
作为从器件运行)
-即使它似乎是由 XMOS AC-MB 正确处理 — 它仍然是一个 8 槽 I2S 信号
(参阅 BCLK 为 12.288MHz、FS 为 48KHz、仍然是 8x32 位时隙)

图 1:I2S 波形(由 XMOS AC-MB 生成):8 时隙 I2S、FS 作为脉冲(与 TDM 类似、但用作 I2S 设置、仅当选择 I2S 时、XMOS 似乎不会将其作为 TDM 进行处理)

图 2:PDM IN 信号(通道 2,红色):它是一个 32 位 I2S 数据帧!
我的假设:
生成的 I2S 时序错误(对于中的 PDM、DOUT 至 USB)。 或者 DOUT 抖动很多、不是在正确的时间出现、有时会被一个时钟边沿偏移(左右通道值交错)。
PC 上的 USB 驱动程序使用 24 位、48kHz(设置为 2 个通道用于 USB/DAC 输出、8 个通道用于 USB/USB PDM 输入)。
I2S 到 DAC 正确是具有 24 个有效位的 32 位帧(正常,LSB 在 32 位数据帧中为零)。
但中的 PDM 也是 32 位的 — 但现在所有 32 位都有效并已使用!
如果该 DOUT 信号来得太晚、但由于存在抖动、LSB 可以作为另一个通道的 MSB。
这似乎是发生的情况((PDM 通道 DOUT 对于发送到 PC 的 USB 流不正确)。
这会产生高噪声、失真。
如果 PDM MIC 被设置为 24 位 — 这很明显:现在最低位也是零,甚至它们会滑 入下一个通道作为 MSB — 仍然可以(不为其他通道设置 MSB)。
为 DAC 输出配置 24 位(失败)可能是合理的、例如、现在帧只有 24 位、但是
XMOS I2S 到 USB 希望看到 32 位时隙。 (实际上不清楚如何为一个 32 位帧设置 24 位有效数据)
因此、主要原因是:
-配置 32 位插槽(寄存器 1A = 70)
-并得到 PDM 麦克风 DOUT 信号输出(通过 USB 连接到 PC)正确
(PDM MIC 希望使用 24 位!)
这里是我的 I2C 配置、观看关于寄存器 0x1A、0x1E、0x1F(和 0x52、0x57)的注释。
PDM 通道(寄存器 0x52、0x57)在 32 位模式(寄存器 1A=70)下的音量设置行为很奇怪。
w a0 00 00 #page 0
w a0 01 01
w a0 00 00 #page 0
w a0 02 09
w a0 0a 41 #PDMCLK = GPIO1
w a0 0d 02 #GPI1 = input or other function
w a0 10 51 #DOUT ss ASI DOUT
w a0 13 cc #PDM DATA config
#w a0 19 00 #default
w a0 1a 70 #0x60 for MIC USB in, 0x70 for USB out !!!!!
w a0 1e 20 #PDM MIC slot - STRANGE!
w a0 1f 21 #PDM MIC slot - STRANGE! - why 0x30? not 0x21, 0x30 works on 1a=60??
#if reg 1a-70 -> set 1f=21 !!!!!
w a0 20 00
w a0 21 00
w a0 28 20 #DAC out slot - default
w a0 29 21 #DAC out slot - default - noise with reg. 1a = 60 !!!!!
#left channel ok, right channel works only with reg 1a = 70
w a0 35 00
w a0 52 f0 #PDM MIC volume - default A1 - STRANGE - does not matter as long reg 0x57
w a0 57 f0 #PDM MIC volume - default A1 - STRANGE - mutes both! different volume!
#creates heavy noise and just 57=01... is same volume (if reg 1a=70)!
w a0 64 30
w a0 65 61
w a0 6b 30
w a0 6c 61
w a0 73 08
w a0 76 cc
w a0 00 03
w a0 38 09
w a0 39 28
w a0 3a 26
w a0 3b 20
w a0 3c 00
w a0 3d 00
w a0 3e 09
w a0 48 01
w a0 49 01
w a0 00 0a
w a0 79 fd
w a0 7a db
w a0 7b 01
w a0 7c 80
w a0 7d 02
w a0 7e 24
w a0 7f ff
w a0 00 0b
w a0 08 7f
w a0 09 fb
w a0 0a b6
w a0 0b 01
w a0 00 11
w a0 4a 00
w a0 00 19
w a0 6f 0f
w a0 00 1a
w a0 1e 00
w a0 3a 00
w a0 40 00
w a0 41 0a
w a0 42 5c
w a0 43 b6
w a0 44 e0
w a0 45 00
w a0 46 00
w a0 47 00
w a0 00 1b
w a0 66 00
w a0 67 08
w a0 6a 00
w a0 6e 80
w a0 7a 00
w a0 7b 05
w a0 00 1c
w a0 24 0c
w a0 25 cc
w a0 26 cc
w a0 27 cc
w a0 28 7f
w a0 29 ff
w a0 2a ff
w a0 2b ff
w a0 34 08
w a0 43 01
w a0 52 03
w a0 53 c0
w a0 00 00
w a0 78 C0 #enable PDM and DAC channels









