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.

[参考译文] MSP430F147:SPI 数据丢失位/移位问题

Guru**** 2512005 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/898099/msp430f147-spi-data-missing-bits-shifted-problem

器件型号:MSP430F147

您好!

我们使用的是 MSP430147、连接后会将数据循环回 SPI 主器件(CPLD)。

进入 CPLD 的原始时钟信号的频率为1.85MHz、PRD 为542ns。

SCLK 信号路径如下所示:

 

              生成 SCLK 时、原始时钟(542ns)=> 1/20时钟分频器=> 1/4周期

 

              因此543ns * 20 * 4 = 43.36us。

但在读回数据时会丢失位。 例如、写入数据为"AAAAAAAA"、但回读数据为"555554"。

进入 MSP 引脚20和引脚21的数据波形如下:

以及从 MSP 到 CPLD 的波形、如下所示

 

根据结果、读取和写入数据被移动、而不是以零为单位。

出现此问题的可能原因是什么?可以采取哪些对策来解决此问题?

 

谢谢!

 

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

    对于类似的症状、首先要检查的是时钟相位(CPHA)。 如果 CPHA=0、则应设置 UCCKPH=1 (反之亦然)。

    当您在那里时、也要检查极性(CPOL)。 如果 CPOL=0、则应设置 UCCKPL=0 (反之亦然)。 (这不是 CPOL 的常见症状、但您也可以确保。)

    怀疑"远程秒"是电缆长度。 长(例如150mm)电缆在4MHz 时会产生这种症状;我没有较长/较慢组合的经验。 解决此问题的方法是降低 SPI 的速度、但23kHz 已经非常慢。