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.

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

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/978821/dac101c081-i2c-communication-question

器件型号:DAC101C081

您好!

我与 DAC 通信时遇到问题。  ADR0接地、IM 使用芯片地址0001101。

通信以100KHz 的速度加快、信号/时序似乎符合规格、但 DAC 输出保持为0……

问题、 如果芯片地址不是很好、DAC 是否应该将 NAK SDA 发送为1?  因为无论此时发送到它的地址是什么、DAC 都会将 ACK、SDA 返回到0。 我换了器件以防... 同一问题。

感谢您的支持!

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

    您好、Pasca、

    您是否已使用示波器确认了这一点? SDA 引脚是否可以一直保持低电平? 您可以共享原理图吗?

    器件应仅确认其地址或广播地址。

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

    尊敬的 Paul:

    感谢您的快速回复。 I2C 部分的原理图非常简单、请参阅以下内容:注意出于隐私原因、我在这里只保留了电路的 I2C 部分。

    我尝试减小上拉电阻器值、但仍然存在相同的问题

    示波器读数 如下所示:黄色表示 SCL、绿色 SDA 和蓝色 DAC 输出。

    按照技术规格表中所示的写入序列、我希望 DAC 将 SDA 驱动为低电平以 ACK 芯片地址和写入命令、请注意、在我的代码中、我将在写入写入位为0后立即释放 SDA 引脚

    如有任何意见、指南将不胜感激、

    感谢您的支持!

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

    奇怪的是,由于某些原因,图像不会跟随。

    Paul、您能否使用我的帐户的电子邮件链接来跟踪此电子邮件、即我的工作电子邮件。

    谢谢、

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

    您好 Pasca、在发布图像时、您必须使用菜单上的"插入媒体"按钮。  只粘贴图像不起作用。   

    请再次尝试附加图像。  如果您有任何问题、我们可以转到电子邮件。  谢谢、

    Paul

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

    采取2:)

    尊敬的 Paul:

    感谢您的快速回复。 I2C 部分的原理图非常简单、请参阅以下内容:注意出于隐私原因、我在这里只保留了电路的 I2C 部分。

    我尝试减小上拉电阻器值、但仍然存在相同的问题。

    示波器读数 如下所示:黄色表示 SCL、绿色 SDA 和蓝色 DAC 输出。


    按照技术规格表中所示的写入序列、我希望 DAC 将 SDA 驱动为低电平以 ACK 芯片地址和写入命令、请注意、在我的代码中、我将在写入写入位为0后立即释放 SDA 引脚

    如有任何意见、指南将不胜感激、

    感谢您的支持!

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

    您好、Pasca、

    看起来您使用的是正确的地址。 您的通信是否满足标准模式的时序要求?

    必须满足设置和保持时间要求。 从示波器屏幕截图中、您的数据值在某些点看起来非常接近时钟上升沿变化、但可能是示波器时间标度太大、我无法看到。  

    此外、DAC AGND 和 PIC GND 是否在原理图中的其他位置共享?

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

    您好!

    查看下面的时序、对我来说一切看起来都很好。 我运行的频率略低于100KHz (95KHz) 、但这不会有问题?

    Tlow

    大腿

    数据建立时间:

    数据保持时间:

    我的理解是一切看起来都很好、我等不及要征求您的意见。

    AGND 仅由 GDN 通过0欧姆电阻隔开、目的是区分它们、以确保布线期间注意 AGND。

    谢谢、

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

    作为另一种追求、您可能有一个未使用的 PWM 输出、可用于代替 DAC。 以下意见促使我考虑这一点:

    DAC 基准与 MCU 电源电压相同。

    2、分辨率只有10位、I2C 速度将更新速率限制在 kHz 的水平。

    3.假定 CPU 时钟为12MHz,但情况可能并非如此(或者 MCU 可能处于睡眠状态等)。

    PWM 的线性度可能至少与 DAC 一样好、并且在给定12MHz 时钟的情况下、更新速率与 DAC 的更新速率相似、软件开销更小。 另一方面、它需要一个 RC 滤波器和一个缓冲器。 如果电压用于驱动具有固有"惯性"的负载、则 RC 滤波器和缓冲器可能不是必需的。

    我不建议只使用 DAC -它可能最适合您的应用、但我确实想分享至少一个替代方案。

    另一个观察结果-这是非常广泛和一般的、因为我们当然不知道您的应用的具体情况:0r "AGND 到 DGND"链路的性能可能甚至比它应该避免的"完全不友好"路由更差、因为它会增加大容量电感。  从模拟域到 MCU 的所有高频返回电流都将流过并自动耦合到所有负载中、因为模拟域中的所有数字信号负载与其源(MCU)之间现在有一个通用串联电路元件。 您至少需要在将信号驱动到模拟域(SCL、SDA 等)的 MCU 引脚上配置最低可行驱动强度。 在最近的 Altium 上、IIRC 有一种在 PCB 上定义网络连接区域的方法、而无需使用链接。 添加实际的物理部件以强制实施手动路由规则似乎是一个解决根本问题的方法、即未进行布局审查:它可能会捕获此类内容。 在进行布局时,网名称应该是性能良好的布局的次要,因为它遵循了所布置电路的功能:)布线中通常有一些回旋余地,因为并非所有 AGND 都同样容易受到“数字噪声”的影响。 上述内容同样非常笼统、可能根本不适用于您的情况。

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

    您好、Pasca、

    Kuba 为您提供了一些值得考虑的优点。  

    我将继续帮助调试您的 I2C 通信。 感谢您提供计时范围快照。 它们看起来是正确的。 您之前提供的屏幕截图中的原理图符号对于6引线 SOT 封装引脚排列看起来是正确的、您能否验证您使用的封装尺寸是否匹配?  还要验证 SDA 和 SCL 信号是否到达 DAC 引脚、并验证电源、接地和 ADR0引脚上的电压。 这些引脚中的一个可能连接不良。  

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

    您好 Katlynne、

     您的所有验证建议都已经被查看并得到了三次访问的确认:)我对我的固件和时间非常有信心,您对正确的时间的确认迫使我第三次更换芯片… 幸运的是、这次是一次很好的机会。 现在一切都正常、我将不得不与 SMT 返工人员交谈、以通过了解他在重新处理 IC 时可能发生的错误来解决此问题。

       

    感谢您和您的团队  的大力支持、并非常感谢 Kuba 的提议。

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

    您好、Pasca、

    很高兴听到您让它正常工作。 请告诉我们您还有什么其他事情可以做!