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.

[参考译文] MSP432P401R:同步时钟源?

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/601256/msp432p401r-synchronous-clock-sources

器件型号:MSP432P401R

我将进入勘误表 EUSCI43。 在勘误表的第一个解决方案中、它说可以通过使用同步时钟源来避免使用 EUSCI43。 我不确定这意味着什么或如何设置它。 我具有以下时钟配置:

MAP_CS_setDCOFrequency (CLK_FQ);//将 DCO (时钟)设置为指定的时钟速度

MAP_CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_CLOCK _DIVIDER_1);//将 SMCLK 连接到 DCO
MAP_CS_initClockSignal (CS_ACLK、CS_VLOCLK_SELECT、CS_Clock_divider _1);//将 ACLK 连接到 VLO

CLK_FQ = 80000

我在 I2C 配置中也具有此功能:

// I2C 主配置参数
const eUSCI_I2C_MasterConfig ACCEL_i2cConfig =
{
EUSCI_B_I2C_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源
80000、 // SMCLK = 8MHz
EUSCI_B_I2C_SET_DATA_RATE 100KBPS、 //所需的100kHz I2C 时钟
0、 //无字节计数器阈值
EUSCI_B_I2C_NO_AUTO_STOP //无自动停止
}; 

什么是同步时钟源、如何设置一个?

EUSCI43规定:

轮询 UCBxRXIFG 时通信停止

将 USCI_B I2C 模块用作接收器时、如果在读取 UCBxRXIFG 中断标志期间发生异步事件、则该标志可能会被意外清除。 这可能会导致 I2C 通信停止。
权变措施1. 如果器件用作 I2C 主接收器、则使用同步时钟源进行操作。

或2. 避免轮询 UCBxRXIFG。 使用标准中断服务例程来处理 UCBxRXIFG 中断标志可显著降低此勘误表的发生概率。 避免寄存器访问 UCBxCTLW0、UCBxSTATW、UCBxRXBUF、UCBxTXBUF、UCBxIFG、 和 UCBxIV、同时发送或接收操作正在进行、UCBxRXIFG 或 UCBxTXIFG 预计会被置位。

或3. 使用时钟低电平超时选择功能(UCCTLO.UCBxCTLW1)来启用一个超时窗口。 如果 I2C 通信被挂起、使用时钟低电平超时中断来复位 eUSCI 模块并重新启动通信。

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

    您的 MCLK 来源于什么? 根据定义、同步时钟是 MCLK 的时钟源、因此、如果 MCLK 也是 DCO、那么 SMCLK 和 I2C CLK 都应该是同步的。 但是、如果您将 MCLK 作为 DCO 作为源、但将 SMCLK 作为 VLO 作为源、则它们将不会同步。

    我假设您看到的问题来自我们再次讨论的另一个主题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    类似的问题、但呈现出明显不同、有时非常混乱和随机。 仍然没有从另一个线程中找出问题、但找到了足够好的解决方法。

    MCLK 和 smclk 都来自 DCO。 看起来我需要研究其他一个解决办法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    REID、

    关于我说“其他线程”的时候,我把另一个人混在我的头上:)你说的是哪个线程? 我看到这个主题、David Lara 为您提供了他的驱动程序代码、这是否解决了您的问题、或者是否出现了其他问题?

    e2e.ti.com/.../2210697
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Reid、您对此有什么看法吗? 如果您使用的是同步时钟源、我不确定这是否是勘误表、但我需要详细了解您的问题。 也许应该有另一条线程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于不活动、我将关闭此线程。 如果您对本主题有其他问题、请随时回复重新打开主题。