SPI在高微控制器速度下无法正常工作

时间:2015-07-08 08:34:04

标签: microcontroller spi

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

微控制器工作在20Mhz,SPI时钟为1 Mhz。

当我将micro的速度降低到<4 Mhz左右时,接口工作正常,但是当我增加它时,我从SPI slave获得垃圾数据。

我需要采取哪些预防措施来处理这类问题。

1 个答案:

答案 0 :(得分:0)

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

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