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.

[参考译文] MSP430F149:SPI MOSI (处于受控模式)上接收到的字符在1个周期内提前计时数据(向右移位数据)

Guru**** 2534710 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/768049/msp430f149-character-received-on-spi-mosi-in-slave-mode-clocking-data-in-1-cycle-early-shift-data-to-the-right

器件型号:MSP430F149

您好!

我的 MSP430处于4引脚从模式、并且正在尝试接收一个字符。 但是、我接收到的数据似乎向右移动了一位。 当我发送0x13 (0001 0011)时、RXBUF 读取0x09 (0000 1001)。 可以看到、随着 MSB 的降低、引入了"0"、同时降低了"1" LSB。 当我观察示波器(如下所示)时、我看到传输的信号正确、并且可以看到幻象"0"字符来自何处。 我将极性和相移设置为 CKPH=0和 CKPL=1 (我已确认这与固件中的主器件以及示波器中的主器件相匹配)。 我还使用其他信号测试了这一点、发送0xE4 (1110 0100)并接收0xF2 (1111 0010)或0x72 (0111 0010)、具体取决于 MOSI 的初始状态。  在主器件发送时钟信号之前、我已经检查 STE 引脚变为低电平~3.7us。

此外、当我再次发送0x13时、它被正确捕获。 (例如、首次发送0x13、接收到0x09。 第二次发送0x13、接收0x13)

如何确保 MSP 不会提前捕获信号?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找到了问题。 主器件的电源由 MSP 控制。 当主器件通电时、主器件控制 SPI 之间会有大约0.5秒的延迟。 当主器件控制 SPI 时、时钟信号从低电平变为高电平。 由于 MSP 上的 STE 信号不会完全停止接收移位寄存器、移位寄存器会将其检测为上升沿并对第一个位进行采样。 这会导致在接收器移位寄存器被移入 RXBUF 之前只剩下7位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Beau、

    很高兴听到您发现问题!

    此致、

    Matt