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.

[参考译文] CCS/CC3200-LAUNCHXL:一般SPI问题(TMS320F2.8335万/CC3200)3200)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/575571/ccs-cc3200-launchxl-general-spi-questions-tms320f28335-cc3200

部件号:CC3200-LAUNCHXL
线程中讨论的其他部件:TMS320F2.8335万CC3200

工具/软件:Code Composer Studio

大家好,

我试图在TMS320F2.8335万和CC3200-LAUNCHXL主板之间配置SPI连接,但我没能成功。 我正在尝试教自己如何建立SPI连接,并想使用此线程来回答一般问题。

因此,根据我所读的内容,我需要做的第一件事是查看两个主板的时钟速度。 我想将TMS320F2.8335万配置为主服务器,将CC3200-LAUNCHXL配置为从服务器。 根据CC3200-LAUNCHXL技术参考手册(文献编号:SWRU367C)第27页的说明,SPI的运行速率最高可达20MHz。 现在,根据TMS320F2.8335万 SPI接口参考指南(文献编号:SPRUEU3A)的第29页,我可以使用此寄存器设置将主控制器的波特率设置为大约9.375MHz:

SPIBRR = 0b0.0011万 (LSPCLK = 37.5MHz,根据TMS320F2.8335万数据表第43页(文献编号: SPRS439N),只要SYSCLKOUT = 150MHz)

主控制器的波特率9.375MHz与从控制器的20MHz操作非常好。

我是否正确理解这一点? 或者我是否偏离了正轨? 感谢您的回复和指导。

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

    Dalen,

    是的,您理解正确。 通常,主节点将传输时钟。 SPICLK频率必须小于或等于从属设备的最大工作频率。 在您指定的配置中,SPI将能够进行通信。 您还需要查看时钟极性和相位。 虽然我对CC3200不是很熟悉,但从属模式的一般操作应与F2.8335万类似。 在从属模式下,SPI始终以其最大频率运行,因为它需要采样和检测数据和时钟线路,这就是为什么时钟分频器在从属模式下不执行任何操作的原因。  

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

    假设我要将字符长度位设置为16,并且要在从CC3200-LAUNCHXL接收数据时,以上升时钟边缘将数据从TMS320F2.8335万发送到CC3200-LAUNCHXL。 然后,我将在TMS320F2.8335万上配置这些寄存器,如下所示:

    SPICCR = 0b0.1111万 (准备好进行数据传输时,将其写入为0b1000.1111万)

    SPICCL = 0b0.0001万?0

    现在,我对位1感到困惑,但如果它设置为0,则没有发送到从属设备的数据。 同样,如果设置为1,则允许将数据发送到从属设备?

    现在,CC3200-LAUNCHXL是否应配置为在上升沿上接收数据并在下降沿上发送数据,因为它与TMS320F2.8335万“相位不同时”(POL=0和PHA=1)? 或者,CC3200-LAUNCHXL的配置是否应与TMS320F2.8335万完全相同,即在上升沿上发送数据,在下降沿上接收数据(POL=0和PHA=0)? 我从CC3200-LAUNCHXL技术参考手册(文献编号:SWRU367C)第223页获得了POL和PHA值。

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

    SPICTL.Talk (位1)位可输出数据。 因此,如果配置为从属,则不会将任何数据置于SPISOMI上,如果是主数据,则不会将任何数据置于SPISIMO上。

    您希望极性和相位配置相匹配。 数据将在一条边线上发送,并在下一条边线上进行采样,否则您可能会在另一节点尝试采样时更改数据。 这是一个简单的测试,您可以亲自试用并查看结果。 将SPI配置为彼此"不相位",然后再配置回相位并观察发生的情况。您可以看到哪些工作正常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dalen,

    我的回答是否回答了您的问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 谢谢你,Mark。

    正如我所说的,我正在使用此线程来回答任何一般SPI问题,因此没有人要关闭此线程。