0

我尝试使用 i2ctools 包中的 i2cdetect 实用程序检测 i2c 总线上的 rtc 设备。由于在扫描 i2c 总线时看不到任何东西,所以我使用示波器,在第 9 个 SCL 的上升沿(ACK 位)上,我在 SDA 信号上得到半幅值。

更多详细信息:

你正常测量的电压是多少,在不寻常的情况下是什么?

正常电压:0V 为 0 逻辑,3.3V 为 1 逻辑。在不寻常的情况下,我测量 1.4V(在正常情况下几乎是 1 逻辑的一半电压)

你有一个上拉电阻和集电极开路驱动器吗?

是的,SDA 和 SCL 线使用 4k7 电阻上拉,并且 rtc 设备配置为开漏 (CMOS)。

主机和从机是否在相同的电压下工作?

是的,在 3.3V

@马丁汤普森:谢谢。所以,这是我的 i2c 总线的示意图(实际上,只连接了一个 rtc 设备)。

    3.3V                            3.3V                3.3V                3.3V
        ____                            ____                ____                ____
         |                                |                   |                   |
         |                              +--+                +--+                  |
         |                          4k7 |  |            4k7 |  |                  |
+-----------------+                     |  |                |  |            +--------------+
|                 |                     +--+                +--+            |              |
|  FPGA Cyclone 4 |                       |                   |             |   Real time  |
|     (Altera)    |                       |                   |             |   clock      |
|       GPIO      | ---SDA----------------+-------------------|-------------|   ST m41t83  |
|                 |                                           |             |              |
|                 | ---SCL------------------------------------+-------------|              |
|                 |                                                         |              |
|                 |                                                         |              |
+-----------------+                                                         +--------------+
        |                                                                           |
        |                                                                           |
      _____                                                                       ______
        0V                                                                          0V

这是示波器的屏幕​​截图,它拾取 SDA 和 SCL 信号:

SDA
________        ______________         _________________________________                                        __       ___________
        |      |              |       |                                 |                                      |  |     |           |
        |      |              |       |                                 |                                      |  |     |           |
        |      |              |       |                                 |                                 _____|  |     |           |
        |      |              |       |                                 |                                |        |     |           |
        |______|              |_______|                                 |________________________________|        |_____|           |_______________


SCL 
____________     ___     ___     ___     ___                                 ___     ___     ___     ___     ___     _______________________________
            |   |   |   |   |   |   |   |   |                               |   |   |   |   |   |   |   |   |   |   |
            |   |   |   |   |   |   |   |   |                               |   |   |   |   |   |   |   |   |   |   |
            |   |   |   |   |   |   |   |   |                               |   |   |   |   |   |   |   |   |   |   |
            |   |   |   |   |   |   |   |   |                               |   |   |   |   |   |   |   |   |   |   |
            |   |   |   |   |   |   |   |   |                               |   |   |   |   |   |   |   |   |   |   |
            |___|   |___|   |___|   |___|   |_______________________________|   |___|   |___|   |___|   |___|   |___|

当我从 linux shell使用 i2cdetect 实用程序 ( i2cdetect 0 0x68 0x68 )向地址为 0x68 的 rtc 设备发送请求时,会获得这些信号。

顺便说一句,请原谅我糟糕的 ascii 设计,但由于我是论坛的新手,我无法发布图片。希望它是可以理解的;-)

关于“屏幕截图”的澄清:SCL 和 SDA 的幅度约为 3.5V,在不寻常的情况下(第 9 个 scl 的上升沿)为 1.4V

4

1 回答 1

0

我遇到了同样的问题,它与主机上的 SDA/SCL IO 配置有关(应使用开漏,而不是推拉)。

于 2018-03-20T12:09:06.090 回答