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.

[参考译文] MSPM0G3507:高级 SPI 问题

Guru**** 2747375 points

Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1587913/mspm0g3507-advanced-spi-questions

器件型号: MSPM0G3507
主题: SysConfig 中讨论的其他器件

您好、

现在我有两个关于 MSPM0G3507 中的 SPI 外设的主要问题:

1 — 我们的 SPI 控制器时钟速率必须为 25MHz、我想以给定条件下可用的最高 CPU 时钟运行 MSPM0。 我使其在 50MHz 处运行、它将 SPI 时钟分频到 25MHz、并按预期工作、但是否真的没有办法说将 BUSCLK 设置为 75MHz 并将其分频到 25MHz? 还是另一种增加 50MHz 的 MCLK 并将 SPI 时钟保持在 25MHz 的方法?

2-我想在没有 CPU 干预的情况下将分散的内存块传输出 SPI 外设。 MSPM0 DMA 是否支持将链接列表传输到 SPI Tx 寄存器? 表模式看起来很完美、只是它只能执行单次传输而不能阻止传输。 如果存在传输大小分量、则表格模式将是完美的。 我能否以不同的步骤将 DMA 设置为收集模式? 是否可以使用第二个 DMA 通道“馈送“主要 DMA 通道传输配置?

例如、我有一个包含四个数据缓冲区的链接列表:

缓冲器 1 包含 10 字节的 SPI 数据(起始地址 0x2000_1000)

缓冲器 2 包含 4 字节的 SPI 数据(起始地址 0x2000_1200)

缓冲器 3 包含 512 字节的 SPI 数据(起始地址 0x2000_1240)

缓冲器 4 包含 4 个字节的 SPI 数据(起始地址 0x2000_2000)

是否是在 SPI ISR 中实现此功能的唯一方法? 我可以处理此文件、但我们将按 8 μ s 的时间设置每次传输 (MCLK 设置为 50MHz)、即使使用 DriverLib API 也是如此、因此在上面的示例中、理想情况下将需要 32uS 的传输设置时间。

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

    您好 Rob、

    #1。 如果需要确切的 25MHz 25MHz 50MHz 频率、则唯一可用的 BUSCLK 频率是 BUS/BUSCLK/SPI 75MHz。 但是、SYSPLL 无法通过 32MHz SYSOSC 频率实现 75MHz BUSCLK。 如果您确实需要 MCLK 频率高于 50MHz 的精确 25MHz SPI、 您可以考虑使用 20MHz 等外部晶体。

    #2 我认为 DMA 级联模式可以满足您的要求。 您可以从另一 MDA 通道完成设置 DMA 触发源。 请参阅  5.2.5 启动 DMA 传输    有关详细信息、请参阅 MSPM0 G 系列 80MHz 微控制器技术参考手册(修订版 C)。

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

    嗨、Pengfei、

    非常感谢您的答复。

    #1 — 除非我遗漏了某些内容,否则可使用 32MHz SYSOSC(使用 8 的 PDIV、75 的 QDIV 和 4 的 CLK0_DIV)实现 75MHz。 但是、我没有办法对 BUSCLK 进行 3 分频来获得所需的 25MHz SPI 时钟、同时仍保持 输入时钟必须是 2 倍 SPI 时钟。 唯一的 SPI 分频器是 CLKDIV(可以对 75MHz 进行 3 分频、但会违反 2x SPI 时钟)和 SCR ((SPI 的功能时钟频率)/((SCR+1)* 2)、因此没有经过 3 分频的 SCR 设置。 我总是觉得这种可配置性很奇怪、希望我在这里遗漏了一些东西。

    第 2 名 — 非常棒! 级联 DMA 肯定可以满足我们的需求! 感谢您的帮助。

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

    您好 Rob、

    1 抱歉我错过了这个配置。 这样、ULPCLK 应被分频为 37.5MHz、因为它被限制在 40MHz 之下。 如您所述、SPI 分频器 CLKDIV 可以设置为 3 分频、我不确定“它将违反 2xSPI 时钟“的含义。 在这种情况下、您遇到了什么奇怪的现象?

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

    嗨、Pengfei、

    以下根据 SysConfig (v1.25.0) 工具:

    出现“MSPM0 参考手册“的第 25.2.2.4 节以确认此限制:
    SPI 包含一个可编程比特率时钟分频器和预分频器来生成串行输出时钟 (SCLK)。  支持的比特率最高为输入时钟除以 2。 输入时钟选择取决于特定 器件、请参阅器件数据表和时钟控制部分。

    因此、无法获得高频 SPI 输出时钟和高频 BUSCLK、这似乎是一个非常奇怪的限制。

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

    您好 Rob、

    我看到了这个说明。 因此、我认为这是 SPI 无法在 25MHz 比特率和 75MHz CPU 时钟下工作的一个限制。 也许我们可以考虑使用 50MHz MCLK。 或使用 20MHz 等其他 SPI 比特率。