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.

[参考译文] MSP430F5528:我的 I2C、SCL 和 SDA 信号的下降时间对于我的总线上的从器件来说太短了。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/564953/msp430f5528-the-fall-time-of-my-i2c-scl-and-sda-signals-are-too-fast-for-the-slave-device-on-my-bus

器件型号:MSP430F5528

高电平、   我通过 TI-RTOS 驱动程序在 I2C 模式下使用 UCB1外设。  该模块始终作为主器件运行、总线上有一个从器件。  

我的从器 件在 SCL 和 SDA 信号上指定了20nS 的最小下降时间、300nS 的最大上升时间。  我的两个上拉电阻 器都是3.32K 欧姆、并连接到 3.00V 电源。

使用示波器、我在这两个信号上测得的下降时间为1.8nS。  使用仿真器、我已经检查 了寄存器 P4DS 中的驱动强度设置。  该寄存 器的值为0x00、表示 P4.1和 P4.2都设置为减小驱动强度。

为了增加下降时间、我在每个信号和接地之间连接了一个47pF 电容。  现在、我测量两个信号的下降时间均为4ns。  速度仍然太快。

 我的上升时间为172ns。

实现正确下降时间的最佳方法是什么?

感谢你能抽出时间。

罗伊

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

    您可以尝试降低 SCL 时钟频率、但我不认为在软件/寄存器级别可以做更多的事情。 您是否注意到这种快速下降时间会影响与从器件的 I2C 通信? 您可以尝试增大下拉电容或减小上拉电阻。 通常会遇到相反的问题、其中下降/上升时间太慢。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    IC 对信号*需要*缓慢的上升或下降时间是非常不寻常的。 您能否告诉我们您所讨论的芯片-以便我们可以查看数据表? 我不熟悉单个 i2c 器件,请为*传入*信号指定最小 SCL/SDA 下降或上升时间。 我相信,即使你不做任何事,一切都是好的。 是的、电容器是唯一可用于 i2c 的解决方案、因为任何串联电阻器都会改变信号电平。

    >通常会遇到相反的问题、其中下降/上升时间太慢。
    非常同意。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我使用的是 LTC2485。  当 我查看示波器时、总线似乎运行良好。     我担心的部分是低12位似乎是噪声。  因此、我在这一点上的最佳理论是、由于快速下降时间、 LTC2485上的位在内部被损坏。

    我将联系 LTC、看看我的理论是否有可信度。   

    罗伊

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

    [引用 user="Roy Nordstrom1"]我担心的部分是低12位似乎是噪声。

    这很容易测试。 -短接两个输入并查看 ADC 的输出。 您是否根据需要对电源、基准和输入进行了所有去耦? -这12位噪声可能只是电路的噪声:)实际上,除了总线上的电容外,您还可以尝试在 CPU 端添加20..30欧姆的串联电阻来降低下降时间,还可以尝试降低 i2c 速度(时钟频率) 并了解其运行情况。

    [引述 USER="Roy Nordstrom1]'我将联系 LTC、看看我的理论是否有可信度。   [/报价]

    好主意。 我们在这方面再也不能提供任何帮助了。 毕竟,如果它们*需要*有限的 I2C 上升/下降时间用于其器件,则它们应能够知道如何正确执行。