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.

[参考译文] PCM1792A:I2C 通信问题

Guru**** 2632375 points

Other Parts Discussed in Thread: PCM1792, PCM1794A, PCM1792A, PCM1795

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1585383/pcm1792a-i2c-communication-issue

主题中讨论的其他器件:PCM1794APCM1792APCM1795、PCM1792

您好专家、

我正在构建一个音频 DAC 供我自己使用。

我测试了 PCM1794A–听起来很不错、但它不允许我同时设置要使用的选项:

-差分电路 — 两个 DACs 在“双单声道“模式
-具有“慢速滚降“特性的模拟滤波器。

PCM1792A 提供此功能、它与 PCM1794A 相同(如您在 TI 源中所读)。

SPDIF 接收器将是 WM8805、它要求读取和写入内部寄存器的值以充分利用其功能、因此需要一个处理器来控制 WM8805。

因此、我也可以使用此处理器来控制 PCM1792A。

我计划使用 Arduino Uno 模块进行控制、通过 I2C 总线进行通信。 我将编写该程序(我仍然有很多要学习的)-现在,我使用的程序可用的在线或由一个朋友编写的测试。

Arduino 将以下器件连接到 I2C 总线:

a) 5V I2C:

-液晶显示屏

- OLED 显示器(我还不知道我最终会使用哪一个)

b) 3V3 I2C–(我使用了双向电平转换器,Ebay 提供的廉价转换器、1kΩ 上拉电阻器、我更改为<xmt-block1> 10kΩ</xmt-block>): 10kΩ:

- WM8805

- PCM1794A–1 或 2 芯片

我还有一个 PCM1795、连接一个用于测试。

用于写入 Arduino 的系统是公司的软件 (Arduino.cc/en/software#IDE)。

上述芯片组装在通用板上、可以单独连接到 3V3 I2C 总线(最多可同时连接 3 个芯片)。 也可以连接和断开 LCD 和 OLED 5V 芯片。

在开始编写软件之前、我想确认所有内容都已连接并正确配置。 我从互联网下载了多个程序、“扫描“ I2C 总线、并列出接收到自己地址后发送 ACK 信号的设备。

5V 总线芯片在以下地址正确报告:

- LCD–27(十六进制)== 00100111(二进制)

- OLED–3C == 00111100

在 3V3 总线上、只有 WM8805 芯片在地址 3A ==00111010 处报告。

PCM1792A 和 PCM1795 芯片的引脚 3 设置为“H"(“(+3V3)、用于选择 I2C 总线。

PCM1792A 和 PCM1795 芯片不响应扫描程序。 地址设置如下:

- PCM1792A P 通道–4F =01001111

- PCM1792A L channel–4E = 01001110

- PCM1795 P 通道–4D = 01001101

我的朋友编写了一些简短的程序来读取特定的寄存器–3V3 总线上的电路产生了以下结果:

WM8805–正确读取寄存器(版本,修订版)

PCM1792A 和 PCM1795 未能读取任何寄存器–“FF"读取“读取结果与尝试读取未连接的电路时相同。

一切看起来都正确;已检查过几次连接以及电压。

带有原始 1kΩ 上拉电阻器的双向电平转换器“也没有给出任何结果。

是否有人遇到过类似的问题、可以告诉我该怎么做? 如有任何建议、我将不胜感激。

此致、
Andrzej

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Archie、

    首先,你必须做的是将设备设置为 I2C 模式(使用引脚 3 的 MSEL ),我 已经通过将它连接到高电平. 接下来、您必须正确设置器件的地址。

    PCM1792A 具有 7 位作为其自己的从器件地址。 从器件地址的前五位 (MSB) 出厂预设为 10011 (0x9x)。 地址字节的接下来两位是器件选择位、可由 ADR1 和 ADR0 端子用户定义。  

    一次最多可以在同一总线上连接四个器件。 这将 为地址提供 0x98、0x9A、0x9C 或 0x9E 。   PCM1792A  收到自己的从器件地址时会进行响应。

    在 IC 本身上,MS 引脚 设置 ADR0,MDI  设置 ADR1(参见以上的数据表快照)   ,因此您可以通过配置 ADR0 和 ADR1( Hi 或 Lo) 来设置地址,然后在该给定地址与设备进行通信。

    您还可以查看以下 E2E、因为我认为用户在芯片地址方面遇到了问题、但最终解决了问题。

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/110213/pcm1792a-i2c-comms-addresses-and-nil-output/390088?tisearch=e2e-sitesearch&keymatch=PCM1792%25252520address#

    此致、

    Arash