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.

[参考译文] MSP430F5244:勘误表"USCI40"- SPI从属传输,带时钟相位选择=1

Guru**** 2051860 points
Other Parts Discussed in Thread: MSP430F5244, USB2ANY
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/631285/msp430f5244-the-errata-usci40---spi-slave-transmit-with-clock-phase-select-1

部件号:MSP430F5244
主题中讨论的其它部件: USB2ANY

Champs,

我们使用MSP430F5244 SPI从机作为UCAxCTLW0.UCCKPH=1,并遇到与此症状类似的一位移位问题。

1)

请您更详细地说明此解决方法并向我们展示一个简单的示例吗?

它显示"在使用SPI之前和每次传输之后重新初始化TXBUF。"

"重新初始化"是什么意思?

如果我想发送0xAA,这是否意味着我应该像这样做两次

UCAxTXBUF = 0xAA;

UCAxTXBUF = 0xAA;

2)

另外,当MSP430用于连接TI USB2ANY作为SPI主控制器时,不存在此类问题,这也是很奇怪的。

但是,当MSP430使用相同的代码作为SPI主控制器连接到另一个MCU时,就会出现此类问题。

是否存在导致此症状发生的任何其他条件?

韦恩

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

    重新初始化TX缓冲区意味着在SPI模块初始化期间以及每次SPI传输之间必须将值加载到TX缓冲区。 无论MSP430 SPI从属设备是否实际具有“有效”数据以传输到主设备,都需要执行此操作。 有许多方法可以执行此操作,但最简单的方法是,当从SPI主控制器(读取RXBUF)接收到字节时,应将值加载到TX缓冲区。

    另外,我不确定使用USB2ANY工具时为什么不存在此问题,但无论使用的是什么SPI主控制器,我都会遵循已发布的勘误表文本并执行推荐的变通办法。 如果您有任何其他问题,请告诉我。

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

    Caleb,

    就像我提到的那样,当我想要使用TX缓冲区时,如何始终加载值两次,例如发送0xAA,

    UCAxTXBUF = 0xAA;

    UCAxTXBUF = 0xAA;

    我感到困惑的是,我是否还应该在读取了RXBUF之后加载一个伪值,而不是每次使用TXBUF时加载一个伪值。

    韦恩

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

    本勘误表的基础是,在每个SPI RX之后,TX缓冲区将被错误地偏移1。 因此,如果您想要TX有效数据,则需要在相应的接收操作发生之前加载TX缓冲区,然后将TX数据计时到主中继器。

    在MSP430 SPI从属设备在连续SPI事务期间将相同的虚拟数据包发送到主设备的情况下,每次从RXBuf读取后,TX缓冲区将需要使用虚拟值重新加载。 正如勘误表中所建议的,这可以通过将TX缓冲区设置为等于自身来实现:UCAxTXBUF = UCAxTXBUF;但是,如果您不关心从SPI从机到主机的TX数据的"正确性",则不必在每次读取后重新加载缓冲区。

    我希望这能使事情一遍又一遍,如果您有任何问题,请告诉我。

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

    感谢您提供信息。