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.

[参考译文] MSP430F5438A:SPI 从器件未按预期工作

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430F5438A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/743263/msp430f5438a-spi-slave-not-working-as-expected

器件型号:MSP430F5438A

大家好、 我在我们的其中一款产品中使用 MSP430F5438A。 我们将 MSP430F5438A 用作 SPI 从器件、通过 SPI 获取数据。

从器件配置为- UCXSTE 低电平有效、UCCKPH=1、UCCKPL=0、MSB 优先、RX 中断启用的4引脚 SPI。

我们始终会收到一些随机数。 连接 SPI 信号。

如用户指南图37-4中所述、波形非常好地遵循时序和边沿。  

从波形可以清楚地看出、第一个字节是1010 0011 (例如0xA3)、但我们在 UCB0RXBUF 中不会得到0xA3。

我在这里犯了什么错误吗?


此致、

Pradeep Patolia

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

    Pradeep、您好!

    这是 MSP430 SPI 从器件接收到的第一个字节吗? 如果您没有得到预期的结果(例如0xA3)、那么您得到的结果是什么、它是向左或向右移动一位还是随机移动的?

    根据勘误表、 USCI40 会导致内部缓冲器中的 TX 数据在接收到 RX 数据后被移动一位。 请确保这不会导致您的问题。

    有关常见的 SPI 问题,请通读 MSP430TmMCU 上常见 eUSCI 和 USCI 串行通信问题解决 方案应用手册中的“常见 SPI 通信问题”部分。

    此致、

    James

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

    是的、0xA3是主器件发送的第一个字节。
    主器件发送的实际字节流为"0xA3 0x1D 0x00 0x83 0x00..... " MSP430F5438A 从器件接收到的字节为"0x90 0xC3 0x90 0x04 0x0C..."。 很明显、接收到的字节不会被一个位或随机位移位。

    勘误表 USCI40介绍了从器件发送、我在从器件接收时看到了这个问题。
    供参考...MSP430F5438A 以24MHz 运行、SPI 速度约为92KHz。
    我介绍了您通过链接发送的 SPI 问题。 此处提到的所有项目均遵循。

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

    Pradeep、您好!

    我们在24MHz 等高频率下运行时看到的一个主要问题是用户不能正确增加 VCORE 电压。 由于您已查看了上面链接中提到的内容、请检查此内容。 您可以在《MSP430x5xx 和 MSP430x6xx 系列用户指南》中的第2.2.4节"增加 VCORE 以支持更高的 MCLK 频率"中找到有关其重要性的更多详细信息。

    此致、

    James