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.

[参考译文] TMS570LS0914:SPI -具有不同极性的交替数据格式

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1384951/tms570ls0914-spi---alternate-data-formats-with-differnt-polarity

器件型号:TMS570LS0914

工具与软件:

您好!

我在主模式下与几个从模式一起使用 SPI5。 我需要在不同的数据格式之间交替。  
DATA-Format-0:16位、POL=0、PHASE=0 => CLK 在低电平下完成:

DATA-FORMAT-1:8位、POL=1、PHASE=0  
每次从一种数据格式切换到另一种数据格式时、都会出现问题。 例如、从数据格式0切换到数据格式1。
时钟开始为低电平、DATA (0x40、0x0C、0x00、0x00、 0xE0)被误解为:
 W

第二次写入相同的数据会导致正确的数据、因为前一个数据包以时钟处于高电平状态结束。

切换回数据格式0时会发生类似的问题、数据格式0期望时钟在低电平上启动。
是否有办法在不发送两次数据包的情况下解决此问题?

 

此致、

Juergen

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

    尊敬的 Juergen:

    根据我的理解、此问题是由于以下问题造成的:

    如果您尝试直接使用传递函数切换模式、就会遇到问题、因为我们正在做所有事情(启用芯片选择、发送数据和更改模式)、就像我在下面的 pic 中突出显示的那样。

    如果我们这样做、则模式将不会正确移位、因为数据传输和模式会同时发生变化。 如果我们写入相同的模式、则不会出现任何问题、因为时钟极性和相位都是正确的。

    因此、我的建议是、尝试按以下方式操作:

    在第一次转接之后、请勿使用新配置直接调用第二个转接函数。 而是在第一个传输之后、确实会禁用 SPI 并更改模式并重新启用 SPI、然后您可以调用第二个传输。

    在这里、在更改模式之前需要禁用 SPI、因为如果您没有禁用 SPI 并尝试更改模式、那么它会启动传输、因为您正在写入 DATA1寄存器(DATA1寄存器通常用于存储数据和配置)。 因此、您应该禁用 SPI 并更改模式、然后您可以进行下一次传输。

    此过程在 RM46电路板上顺利完成、我只需附上我的项目供您参考、请尝试遵循相同的方法并让我知道结果。

    e2e.ti.com/.../SPI_5F00_DataFormat_5F00_Changing_5F00_InBetween_5F00_Issue_5F00_RM46.zip

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    感谢您的帮助、它也能在我这边工作。

     

    此致、

    Juergen