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:有关具有多个从属设备的TMS320F2.8027万F SPI的一些问题

Guru**** 2558250 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/635064/ccs-some-issues-about-tms320f28027f-spi-with-multiple-slaves

线程中讨论的其他部件:TMS320F2.8027万FC2000WARETMS320F2.8027万

工具/软件:Code Composer Studio

您好,TI员工或用户!

我有一些关于“TMS320F2.8027万F”的问题。 我想使用控制器设计具有2个不同从属设备的SPI。  

一个用于测量已设计的开关(从1)的电压。 v_switch将转换为从属设备1内的数字值。 换言之,将与控制器通信的数据是数字值。  另一个从属控制器正在控制水泵的输入电压。(从属控制器2)  

基本上,我想设计主动式冷却功率转换器。 因此,我将根据测得的V_SWITCH控制泵的流量。

当V_SWITCH超出我们的要求时,我们要增加水泵的输入电压,以便提高流速。 因此,开关电压将再次降低。 最终,v_switch将保持在所需的范围内。  这是我的项目目标。

我的问题就在这里。  

1.芯片选择

据我所知,芯片选择信号使每个从属设备能够单独通信。 即 从属设备1与主设备通信时从属设备2不工作,对吗?

但是,我的从机2应根据测量的v_switch工作,这意味着我必须同时启用从机1和2与主机通信。

那么,如果您有问题,您能否给我提供解决问题的见解?

2,mosi,miso

我仍然混淆这两个信号。 我可以理解定义,但到目前为止还不是很清楚。 在我的情况下,关于主从1之间的通信,MOSI应该是使ADC工作的信号,而Miso应该是读取数据。  如果我为从属设备1的ADC输入正确的信号,是否自动完成此操作?  

此外,MOSI应该是订购ADC工作的脉冲。 如何生成此信号? 我认为我可以使用PWM信号之一,但此脉冲有不同的高和低时间段,而PWM具有相同的值。  

3.SPISTE  

SPISTE代表'Slave-Transmiss-Enable'(保存-传输-启用),因此我将此信号理解为CS1。 这是正确的想法吗?  

如果有,如何使SLAVE2的CS2?  

 

感谢您阅读我的问题。 这是我第一次设计界面,老实说,这是一个新的世界。  

如果您有任何意见,我将不胜感激,如果我的问题愚蠢,我会原谅我。  再次感谢,Sirs!

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

    1./3. SPI芯片选择(即 SPISTE,CS,CS0,CS1等)是一种信号,可使从属设备能够进行通信。 作为主中继器,SPI将在传输数据时驱动此信号。 在从属侧,CS信号将使从属设备能够在从主设备接收的时钟边缘上传输其数据。

    在多从属配置中,SPI一次只能与单个从属设备通信。 这可以通过使用主控制器上的GPIO来单独选择和控制CS线路进行管理。对于两个从属设备,所需的信号为SPICLK,SPISOMI,SPISIMO,CS0和CS1。

    2.这些信号的命名描述了数据的方向。 它们在模块上重复用于主模式和从模式。 MOSI (我们所说的SIMO)被命名为它所代表的缩写,即Master Out (主输出),Slave In (从属进入)。 这是一个由主控驱动的输出,输出到从控制器,后者将其作为输入。 在从属模式下也是如此,它将是来自主控制器的数据输入。 对于SOMI-从属输出,主输出,则相反。

    有关 此信息,请参阅设备用户指南(www.ti.com/.../sprug71)。 此外,我们还在C2000Ware中提供了示例代码。 我希望你们已经经历过这些。 它们应使您基本了解SPI如何在C2000上工作,包括设置中断,发送和接收数据以及管理FIFO。

    在应用程序的意义上,您可以执行您想要执行的操作,但您的数据不会"并行"。 您需要单独访问传感器和控制,但只需一个SPI即可完成。

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

    Mark,您好!  

    首先,我衷心感谢您的善意评论! 你的清晰描述让我很理解:))再次感谢!

    还有一些其他问题。

    据我所知,在TMS320F2.8027万的情况下,没有用于CS的引脚。 因此,仅SPISTE引脚可用于仅限使用2个从属设备的CS。

    从机1的低信号和从机2的高信号。

    我当然可以使用SPISTE信号操作两个从属设备,但我想根据从属设备1的信息在从属设备2和主设备之间添加一个功能。

    如上所述,我的项目仅在ADC (从机1)测得的电压超过我们的参考值时才会改变水泵的流速。  

    例如,如果在SPISTE信号较低时激活ADC,则电源(从2)将在SPISTE的高信号下激活!

    当SPISTE为高电平时,我可以向从动2 (电源)发出信号。 遗憾的是,当输入信号为模拟信号时,电源将作出反应。 因此,直流电压到电源将通过使用PWM技术将数字信号转换为模拟来实现。 总的来说,当SPISTE较高时,将向电源提供模拟输入电压3.3V,并将3.3V转换为15V。 这将为水泵供水。

    但是,如果测得的电压超过参考值(例如从3.3V到5V),则输入电压应增加,这基本上是我的问题。

    我的想法是设计额外的放大器电路,将输入电压放大到5V。 因此,GPIO 0引脚将具有3.3V模拟信号,而另一个GPIO 2引脚将具有5V信号。

    '当测得的电压低于参考值时,GPIO 0将被反射至从属2,而GPIO 2将在其超出参考值时被反射。 "。  

    但是...我如何使slave2反映这一概念? 从属设备2仅在SPISTE高且已用于GPIO 0....时作出反应

    但它应该自动更改其PIN ...  

    您能给我任何建议来验证这一点吗?  

    P.S) 我的项目目标是通过"仅Simulink型号"操作具有SPI的水泵。 但如果不可能,我也可以使用SCI编码。  

    所以任何建议对我都很有帮助。

    感谢您阅读我的问题,先生!  

    此致

    常范,儿子