https://e2e.ti.com/support/audio-group/audio/f/audio-forum/947857/pcm5122-spi-configuration
器件型号:PCM5122
您好!
我正在 我的项目之一中使用上述 DAC (PCM5122)。
我 无法使用 SPI 配置模式从 DAC 执行读/写操作。
我想知道 、访问这些寄存器和页面选择需要遵循任何特定的序列。
请帮助我为主模式配置哪些寄存器。
谢谢、此致
Sathish
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.
https://e2e.ti.com/support/audio-group/audio/f/audio-forum/947857/pcm5122-spi-configuration
器件型号:PCM5122
您好!
我正在 我的项目之一中使用上述 DAC (PCM5122)。
我 无法使用 SPI 配置模式从 DAC 执行读/写操作。
我想知道 、访问这些寄存器和页面选择需要遵循任何特定的序列。
请帮助我为主模式配置哪些寄存器。
谢谢、此致
Sathish
你好,Sathish,
除非接收到有效的 I2S 数据、否则器件不会在电荷泵输出时提供任何值。 您是否在上电后向 DAC 提供 I2S 信号?
当检测到时钟错误(SCK、BCK 和 LRCK)或时钟停止时、PCM512x 器件会自动进入待机模式。 DAC 和线路驱动器也会断电。当 BCK 和 LRCK 保持低电平超过1秒时、PCM512x 器件会自动进入断电模式。 除在待机模式下禁用的电荷泵和偏置/基准电路外、断电模式还会禁用负电荷泵和偏置/基准电路。
当预期的音频时钟(SCK、BCK、LRCK)被施加到 PCM512x 器件时、 或者、如果 BCK 和 LRCK 正确启动、而 SCK 保持接地电平持续16个连续 LRCK 周期、器件将自动启动加电序列。因此、请确保在器件加电后应用这些信号、并确保电荷泵输出-3.3V。
然后、您启动 SPI 事务。 这是我对该器件的理解。 应用工程师在度假时支持此设备、因此请等待响应延迟。 但请尝试我提到的建议。
此致、
AK
您好、AK、
感谢您的回答。
我们将持续为器件提供 SCK 时钟。
我们希望它在主模式下运行,因此除非器件提供 LRCK 和 BCK 时钟,否则我们无法 将 I2S 数据提供给器件。
负电荷泵是否会导致 SPI 读取/写入操作中出现问题? 我想不是。?
我们仍然无法执行读/写操作。 请尽快帮助我们解决这个问题。
如果可能、请提供应用工程师联系详细信息。
此致、
Sathish
您好!
该器件的应用工程师正在休假。
您能告诉我您为器件提供的 SCK 频率是多少? 这是12MHz 等非音频速率主时钟吗?
如果是、您需要根据数据表第51页进行一些更改。 否则、请遵循数据表第50页中给出的指南
此外、您还可以浏览以下 e2e 线程、用户在该线程中提出了相同的问题、解决方案和编程示例。
此致、
AK
你好,Sathish,
我担心由于某些数字串扰、命令数据/时钟被错误锁存。 我注意到、在您的屏幕截图中、SDO 线在15个时钟周期而不是16个时钟周期后似乎变为高阻态。 作为快速测试、您能否显著降低 SPI CLK 频率? 像10kHz 这样的频率就足够了。
另一个很好的测试是写入寄存器并尝试读回它。 此外、不应提供 SCK、我相信您现在正在这样做。
谢谢、
Paul
尊敬的 Vinay:
这是一种非常有趣的行为。 您的 CS 线路是否一致? 它是否会间歇性地拉高? 许多 MCU 要求您在允许 CS 变为高电平之前监控 SPI TX 缓冲器、否则在模块发送整个命令之前可能会将其置为高电平。 同时监控所有三个信号将会很有用。 例如、在上一个帖子中的第一个图像中、CS 似乎在两个16位命令之间保持低电平(因为 MISO 不会进入高阻态)。
您能否确认:
是否提供 SCK?
VNEG 为~-3V?
LDOO 为~1.8V
你好,Sathish,
您需要执行以下步骤:
#### CLK 分频器设置########## ####在 VREF 模式下使用 VREF PLL 设置查找采样率、而 SCK #### 在此示例中、查找48kHz 速率、 具有12.288MHz SCK #### 禁用自动时钟配置 (带25 72 # PLL P 分频器)至3 (带14 03 # PLL J 分频器)至12.D1D2 (带15 0C # PLL D1分频器)至 J.00 (带16 00 ) PLL D2分频器至 J.00 (带17 00 # PLL) R divider to 1 w 18 00 # miniDSP CLK divider (NMAC) to 2 w 1B 01 # DAC CLK divider to 16 w 1C 0F # NCP CLK divider to 4 w 1D 03 # OSC CLK divider 设置为1 (因为它基于 DAC CLK 的输出、它已经是 PLL/16) w 1E 00 # fs 设置应该被设定为单速率速度(48kHz)。 W 22 00 # IDAC1设置每个时钟的 miniDSP 指令数。 (设置为1024) w 23 04 # IDAC2 w 24 00 #################################################### ####主模式设置################## # bck、LRCK 输出 w 09 11 #主模式 bck 分频器设置(生成64fs) w 20 03 #主模式 LRCK 分频器设置(再将 bck 除以64以生成1fs) w 21 3F #主模式 bck、LRCK 分频器复位释放 w 0C 7F ###################################################### ####待机请求和发布###### #待机请求 w 02 10 #待机释放 w 02 00 ################################################################
您是否能够解决通信问题?
谢谢、
Paul
尊敬的 Paul:
感谢您的回答。
现在、我们能够以25kHz 的 SPI 时钟频率在 SPI 接口上执行读取和写入操作。
在上述寄存器中、我们将写入与主模式设置相关的寄存器以及待机请求和释放。
根据硬件、器件处于 VCOM 模式、我们是否需要 写入 PLL 配置寄存器?
此外、我们还可以在 VNEG 引脚、LRCK 和 BCK 时钟信号处看到-3.3V 电压。
我们尝试通过写入与 LRCK 和 BCK 相关的16位数据来执行 I2S 接口。
无论数据如何、OUTL 和 OUTR 的状态都将以低电平重命名。
如果我们缺少任何寄存器、请帮助我们。
谢谢、此致
Sathish
尊敬的 Paul:
我们尚未启用 PLL。 我们从外部提供 SCK、如何使用 PLL、请澄清一下?
我们已经检查了上述指定的寄存器、
在采样率状态寄存器中、我们会得到 SCK 比率误差! 和静音控制寄存器状态按预期显示。
请阐明原因可能是什么、以及我们需要为 DAC 提供的每个采样和每个通道的时钟数量?
详细信息:对于16位数据、我们需要为每个样本向 LRCK 提供 wrt 的 BCK 时钟数量。
此致
Sathish
你好,Sathish,
由于器件需要许多内部时钟信号、例如电荷泵和 DSP 处理器、因此需要 PLL。 在配置中禁用 PLL 时、此器件将不起作用。
我提供的命令将配置 PLL 以提供所有内部时钟、因此执行这些命令非常重要。
BCK 应提供64×FS 或32×FS 时钟、以便 I2S 数据从 MCU 发送到 PCM。 您应捕获 LRCK、BCK 和数据的示波器快照、并验证格式是否正确。
谢谢、
Paul