【问题标题】:SPI not working properly with high micocontroller speedSPI 无法在高微控制器速度下正常工作
【发布时间】:2015-07-08 08:34:04
【问题描述】:

我正在将一些基于 SPI 的传感器与 MSP430 微控制器连接。 问题是:

微控制器以 20Mhz 运行,SPI 时钟为 1Mhz。

当我将 micro 的速度降低到

我需要采取什么预防措施来处理这些问题。,

【问题讨论】:

  • 我在 72MHz 主 CPU 和 100MHz 从 CPU 之间运行 4MHz SPI 链路 - CPU 频率在这里无话可说。我建议您使用中断来处理 SPI 外设,也可以考虑使用 DMA。

标签: microcontroller spi


【解决方案1】:

在 MSP430 上,通常使用处于 SPI 模式的 USCI 外设来运行接口。该外设允许选择作为 SPI 主机生成的时钟源以及控制时钟的分频以匹配 SPI 从机接受的时钟速率。检查 UCAxCTL1 寄存器中的 UCSSELx 位。根据所选的时钟源,您可能需要使用 USCI_Ax 比特率控制寄存器预分频生成的时钟。从您的问题来看,您正在 SMCLK 上运行 SPI 而没有预分频。这可以解释为什么降低 CPU 频率会使 SPI 外设工作。从系统的角度来看,您最好将 SMCLK 保持在高频率,然后预分频 SPI 主时钟以匹配所连接外设的限制。

决定如何使用时钟通常是一个系统问题。您需要考虑时钟源,即 ACLK 或 SMCLK,以及所连接外设的限制。这应该告诉您可能需要如何预分频更高速度的时钟(即 SMCLK)以匹配 SPI 从机的限制。它通常很复杂,我必须把它画出来以确保我能满足所有外围要求。

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 2016-12-04
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多