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.

[参考译文] MSP432E401Y:将 I2C 位速率设置为特定值。

Guru**** 2582405 points
Other Parts Discussed in Thread: MSP-EXP432E401Y, MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/718935/msp432e401y-set-i2c-bit-rate-to-specific-value

器件型号:MSP432E401Y
主题中讨论的其他器件:MSP-EXP432E401Y

您好!  

我正在使用 MSP432E401Y (目前通过 MSP-EXP432E401Y LaunchPad)。  我将代码从现有示例"i2ctmp007_MSP_EXXP432401Y_Nortos_ccs"中分支出来、仅使用不同的 Booster Pack。  在 I2C.h 中、我看到 I2C 位速率的默认选项为100kbps、400kbps、1Mbps 和3.33 Mbps。 但是、我需要使用与这4个选项不同的值(≈2.94MHz)。  是否有方法可以向 i2cParams.bitrate 发送不同的值?   

我从 CCS 中的 Resource Explorer 中获得了此代码示例、出于某种原因、似乎无法访问 I2C.c 来手动编辑比特率。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mitch、
    您基本上必须在 I2C_Open()之后自行重新配置时钟才能实现这一点。 i2cParams.bitrate 参数只是一个枚举类型、而不是反映实际频率的某个数字、因此这里不会使用任何其他 bitrate parm 值。
    注意事项:
    您的 i2c 频率足够高、需要确保以120MHz 运行 CPU。
    2.我首先要配置 I2C,就像使用3.33Mbps 模式一样,然后在 I2C_Open() API 之后重新配置 I2C 时钟设置。
    从本质上讲、您将返回到 driverlib 调用以从此处配置时钟设置。
    -Bob L.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Bob、

    感谢您提供的信息、我将尝试一下。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob、您好!

    我已经尝试过你所说的话,但我仍然有一些问题。 我将时钟设置为以120MHz 运行,我很疲惫地在 I2C_OPEN() API 之后按照指令更改 I2C 时钟速度,但时钟速度没有改变.... 我使用以下命令进行了此更改:

    /*创建用于高速模式的 I2C */
    I2C_Params_init (&i2cParams);
    i2cParams.bitrate = I2C_3330kHz;
    I2C = I2C_open (Board_I2C_TMP、&i2cParams);

    /*将 I2C 速度更改为所需值:*/
    MAP_I2CMasterInitExpClk (I2C0_BASE、2900000、false);

    执行此命令后、时钟仍然为3.333MHz。 您知道我遗漏了什么吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MAP_I2CMasterInitExpClk ()的第二个参数不是 I2C 时钟速度、而是系统速度。

    有关此 API 的说明,请参阅应用手册《在 SimpleLinkTmMSP432E4微控制器上使用 I2C 主设备的功能集》第4.2节着重号3。  

    一位同事刚刚指出、这种速度需要在"高速"模式下运行、这意味着 IO 在仲裁阶段和数据阶段之间如何驱动总线存在差异。 I2C MTPR.HS 和.TPR 位都需要正确设置(Hs=1、TPR=1)。 可获得的最接近频率为3.0Mbps 而非2.9。  

    请注意、您还需要相当低的上拉电阻才能以该速度运行。  

    请尝试上述操作、看看是否正常工作。 注意如果我们开始编辑太多设置、我们很快就会离开 TI 驱动程序、这可能会导致更多的意外行为。  

    如果您想进一步讨论、请给我下午好。

    -Bob L.