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.

[参考译文] MSP430F5358:多路器 I2C 模式查询

Guru**** 2392095 points
Other Parts Discussed in Thread: MSP430F5358

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1081942/msp430f5358-query-on-multimaster-i2c-mode

部件号:MSP430F5358

您好,

我们正在查询 I2C 通信中的多万用器模式。 在我们的项目中,我们将 MSP430F5358用作一个 USCI I2C 模块(其中另一个多路器是 Rfoc)的多路器,并用作另一个模块的从属器。 我们有以下疑问:

1. I2C 多主控制器的基本初始化配置是否有任何变化? 如果是,请提供一些有关示例代码。 对于单个主中继器,我们已使用以下代码进行 I2C 主中继器初始化:

/*
 * I2C 初始化
 *
无效 I2C_INIT()

   GPIO 设置外围模块功能输入引脚(
   GPIO 端口 P3,
                                              GPIO 引脚0 + GPIO 引脚1);
   USCI_B_I2C_initMasterParam i2c_params_24FC256 ={ 0 };
   i2c_params_24FC256.selectClockSource = USCI_B_I2C_CLOCKSOURCE_SMCLK;
   I2C_params_24FC256.i2cClk = UCS_getSMCLK();
   I2C_params_24FC256.datarate = USCI_B_I2C_SET_DATA_RATE_400KBPS;

   /*以100kHz 的频率将 I2C 主控制器初始化至 SMCLK,无自动停止*/
   USCI_B_I2C_INITMaster (USCI_B0_BASE,&i2c_params_24FC256);
}

从我们在线收集的信息中,我们了解到,我们必须在进行任何 I2C 交易前进行 isI2cBusBusy 检查,以避免冲突。 是否需要考虑其他参数?

如果您能提供有关此方面的任何信息,将会有所帮助。

 

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

    [免责声明:我实际上没有使用多主总线,但我理解这些原则。 如果有人
    与我相矛盾,相信那个人。]


    1)多主控制器操作在 I2C 规范(UM10204修订版6)第3.1.8节和 F5用户指南中进行了描述
    (SLAU208Q)第38.3.4.3节和表38-1。
    2)我不知道有什么 TI 的例子。
    3)您的 RFSOC/MSP430直接链路似乎是一条单独的总线(I2C_2),因此它不会进入该链路。
    4)在多主总线中,一个主中继器可以将另一个主中继器作为从中继器进行寻址。 你没有提到
    希望这样做,但这需要采取一些进一步的步骤。


    5)要使用多主模式,您需要设置 UCBxCTL0:UCMM=1。 我看不到这样的驱动程序库函数
    (对于 USCI),您需要一个单独的序列,如下所示:
    > UCB0CTL1 |= UCSWRST;//重置
    > UCB0CTL0 |= UCMM;//多主机
    > UCB0CTL1 &=~UCSWRST;//已重置
    6)您需要检测 UCALIFG ("仲裁丢失")条件。 [参考 UG 图38-12/13,向下靠近底部]
    如果您看到这种情况,则 USCI 已设置 UCMST =0 [Ref UG Table 38-1],您需要重新配置主中继器(集)
    UCMST =1)。


    7)检查勘误表(SLAZ496AB)。 USTI34看起来很重要,但提供了一个变通方案。
    8)提前检查巴士繁忙情况不会造成伤害,但也不会真正帮助(比赛)。 USCI 就是这样做的
    无论如何都要为你服务。