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.

[参考译文] TMS320F28075:如何在 SPI 模式(时钟停止模式)中使用 McBSP 以及如何通过外部时钟输入对其进行操作

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1199087/tms320f28075-how-to-use-mcbsp-in-spi-mode-clock-stop-mode-and-operate-it-by-external-clock-input

器件型号:TMS320F28075
主题中讨论的其他器件:MSP430FR5969、MSP430FR5969

尊敬的专家:

我正在尝试在 SPI 模式(时钟停止模式)下使用 McBSP 并通过外部时钟输入对其进行操作。 我想连接一个外部晶体振荡器(1MHz)来生成19200bps。
请告诉我以下情况。

在 SPI 模式中使用 McBSP 时、可以使用"LSPCLK"以外的任何选项吗?
通过将外部时钟输入到 MCLKXB、是否可以实现上述目的?

如果可能、我将避免使用 LSPCLK、因为它要求降低 CPU 的工作频率。 如 TRM"20.7.2时钟停止模式"所述、我们认为、在 McBSP 的 SPI 模式(时钟停止模式)下、无法使用接收时钟信号(MCLKR)、因为它在内部连接到发送时钟信号(CLKX)。

此致、
还可以

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

    还不错

    您的理解是正确的。  不过、虽然系统发往 McBSP 的时钟是 LSPCLK、但 McBSP 使用的最终时钟频率来自时钟发生器、时钟发生器带有额外的分频器 CLKGDV;该时钟速率定义如下。  

    因此、您应该能够根据需要进一步将 McBSP 中的 LSPCLK 分频。

    此致!

    Matthew

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

     Matthew、您好!

    感谢您的支持。

    您的理解是正确的。  不过、虽然系统发往 McBSP 的时钟是 LSPCLK、但 McBSP 使用的最终时钟频率来自时钟发生器、时钟发生器带有额外的分频器 CLKGDV;该时钟速率定义如下。  

    因此、您应该能够根据需要进一步将 McBSP 中的 LSPCLK 分频。

    [/报价]

    我认为当使用 LSPCLK 作为基准时、通过结合"CLKGDV"与"LSP 分频器"可实现19200bps。 但是、我认为我需要将 CPUCLK (SYSCLK)降至约34MHz。 (34.406.400/14/128=19200)

    因此、我们将使用外部时钟输入到 MCLKXB。

    此致、
    还可以

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

    还不错

    CLKGDV 是8位字段、应提供1 - 256个分频选项、但正如您所说、此字段太大、无法从此器件的最大 CPU 时钟获取19200bps。  您需要将 CPU 时钟降到50-60MHz 的范围、以使分频器正常工作。

     为了保留 SYSCLK、仅对 GPIO 上的 SPI 数据进行一次滴答以获取目标数据速率是否有意义?

    此致!

    Matthew

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

     Matthew、您好!

    感谢您的建议。

    客户确认 McBSP-B 的操作有以下设置、但运行不好。

    我再次读取 TRM "20.7.6 McBSP 作为 SPI 主器件"、其内容是"对于 SPI 主器件操作、MCLKX 引脚必须配置为输出。"。 因此、似乎在使用 SPI 模式时、它仅适用于 LSPCLK。

    如果在以下设置中缺失任何内容、您能否指出它?

    • GPIO24 -> MDXB:McBSP-B 数据传输
    • GPIO25 -> MDRB:McBSP-B 数据接收
    • GPIO26:MCLKXB:来自 McBSP-B 的时钟输出
      • 输入/输出方向寄存器:输出设置
    • GPIO86→MCLKXB:外部基准时钟输入(1MHz 由外部提供)
      • 输入/输出方向寄存器:输入设置
    • 时钟设置:CLKSM=1、SCLKSME=1、52分频(19230bps)
    为了保留 SYSCLK,只需对 GPIO 上的 SPI 数据进行一次滴答即可获得目标数据速率吗?

    如果只有 LSPCLK 可用、我们别无选择、只能使用您建议的方法。

    我找到了以下主题和示例代码。 如果您有关于 C2000的详细信息、您能告诉我吗?

    此致、
    还可以

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

    O.H.、

    请给我一个额外的日子来回应。

    此致!

    Matthew

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

    还不错

    我们没有任何 C2000的直接示例、从理论角度而言、您提供的这些示例非常适合使用 C2000硬件来实现。  需要记住的一点是、C28x 不支持字节访问、因此在采用来自字节可寻址机器的大多数 SPI 代码时、您需要记住这一点。

    此致!

    Matthew

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

     Matthew、您好!

    我们没有任何有关 C2000的直接示例,从理论角度来看,您提供的这些示例非常适合使用 C2000 HW 进行实施。  需要记住的一点是、C28x 不支持字节访问、因此在采用来自字节可寻址机器的大多数 SPI 代码时需要记住这一点。

    感谢您的答复。  我们注意到上述情况。

    您能否就以下问题提出意见?  在 SPI 模式下使用 McBSP 时、是否不可能接近将参考时钟输入到 MCLKXB?

    客户确认 McBSP-B 的操作有以下设置、但运行不好。

    我再次读取 TRM "20.7.6 McBSP 作为 SPI 主器件"、其内容是"对于 SPI 主器件操作、MCLKX 引脚必须配置为输出。"。 因此、似乎在使用 SPI 模式时、它仅适用于 LSPCLK。

    如果在以下设置中缺失任何内容、您能否指出它?

    • GPIO24 -> MDXB:McBSP-B 数据传输
    • GPIO25 -> MDRB:McBSP-B 数据接收
    • GPIO26:MCLKXB:来自 McBSP-B 的时钟输出
      • 输入/输出方向寄存器:输出设置
    • GPIO86→MCLKXB:外部基准时钟输入(1MHz 由外部提供)
      • 输入/输出方向寄存器:输入设置
    • 时钟设置:CLKSM=1、SCLKSME=1、52分频(19230bps)
    [/报价]

    此致、
    还可以

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

    GPIO26和 GPIO86都是 MCLKX、因此我认为选择使用来自多个 GPIO 的相同信号是非法的。  在本例中、我认为 C28x 将挑选最低的 GPIO 编号、即在 GPIO26上输出时钟。

    尽管 TRM 提到 CLKX 始终是输出、但它也提到 CLKX 和 CLKR 在内部连接在一起。  客户是否可以尝试为时钟寄存器采用相同的设置、但是不要在 MCLKXB 上提供1MHz 频率、而是将相应的 GPIO 配置为 MCLKRB 并在该引脚上输入1MHz 时钟、看看这是否起作用?

    此致!

    Matthew

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

     Matthew、您好!

    感谢您的答复。 我明白了。

    即使 TRM 提到 CLKX 始终是输出,但它也提到 CLKX 和 CLKR 在内部连接在一起。  客户是否可以尝试为时钟寄存器采用相同的设置、但不是在 MCLKXB 上提供1MHz、而是将相应的 GPIO 配置为 MCLKRB 并在该引脚上输入1MHz 时钟、看看这是否起作用?

    很抱歉没有解释。  最初我们使用了 MCLKRB (GPIO60)。 我们使用相同的设置进行了检查、但检查失败了...

    此致、
    还可以

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

    还不错

    感谢您的澄清、根据这些实验以及 DS 中的注释、我同意在 SPI 时钟停止模式下、时钟只能来自 LSPCLK。

    此致!

    Matthew

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

     Matthew、您好!

    我明白了。  感谢您的支持。

    此致、
    还可以