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.

[参考译文] MSP430FR5969:MS430 FR 5969 I2C driverlib SCL 时钟尖峰问题

Guru**** 2564050 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/613674/msp430fr5969-ms430-fr-5969-i2c-driverlib-scl-clock-spike-issue

器件型号:MSP430FR5969

您好!

我正在使用 MSP430FR5969 Launchpad 并尝试将 MSP430配置为 I2C 主设备并连接至从设备。 我正在使用 Driverlib I2C 驱动程序"eusci_b_i2c.c -用于 eusci_b_i2c 模块的驱动程序" 、我的配置如下所示

       EUSCI_B_I2C_initMasterParam 参数参数;
      param.selectClockSource=EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
      param.i2cClk=CS_getSMCLK();
      param.datarate=eUSCI_B_I2C_SET_DATA_RATE_400KBPS;
      param.byteCounterThreshold = 0x0;
      param.autoSTOPGeneration=EUSCI_B_I2C_NO_AUTO_STOP;

      EUSCI_B_I2C_initMaster (EUSCI_B0_BASE、param);

我观察到的是 I2C 时钟线路在 1个时钟周期之间经常出现大约"80ns 脉冲"的尖峰。 下面的代码片段

我不知道为什么会出现这种尖峰。 由于尖峰成为有效时钟脉冲、有时 I WRITE 会被视为读取命令

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

    您从什么获取 DriverLib 代码示例? 如果您更改 SMCLK 频率或 I2C 数据速率、会发生什么情况? 是否可以在未连接从器件的情况下复制此行为、或者是否可以确认从器件不会导致脉冲? 该脉冲是否会中断 I2C 通信?

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

    您好、Ryan、

    我无法找到 driverlib 的版本。 但我附加了相同的文件以供参考。

    我尝试更改 I2C 数据速率,但遇到了相同的问题[100kHz,甚至更小]。  我可以在没有连接从设备的情况下尝试复制并确认。

    脉冲不会中断所传输的数据、但传输和数据 会被误解 、就像写入命令被解释为读取命令、 数据也被解释为.e2e.ti.com/.../eusci_5F00_b_5F00_i2c.c

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

    我对 eUSCI_B 的 I2C 库驱动程序文件不感兴趣、而是对您的应用设置代码感兴趣。 但是、如果您尚未升级到最新的 DriverLib 版本、我建议您升级到该版本。 我将有兴趣在未连接从设备的情况下查看 I2C 行为。 确保使用的是从器件数据表建议的正确上拉电阻。

    此致、
    Ryan