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.

[参考译文] LAUNCHXL-F28379D:使用 Simulink 进行 SPI 接收

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018213/launchxl-f28379d-spi-receive-using-simulink

器件型号:LAUNCHXL-F28379D

您好!

我尝试通过 SPI 从 AD2S1205旋转变压器接收数据到数字转换器。 我将使用适用于 Simulink 的 C2000支持包。 在这里、我尝试了 SPI 接收块、但失败了。 如果我设置 SPI 外设、则引脚上不会输出时钟。 n´t CS 引脚将变为低电平。 我还尝试了与 MATLAB 不同的 SPI 示例、但它们在我的电路板上无法正常工作。 该电路板是 launchxl-f28379d、我使用的是 SPI A 通道。 我是否需要在 CODE/Simulink 模型中初始化 SPI? 或者是否有其他一些提示和技巧可以让它运行?  

谢谢你。

图片中是 AD2S1205的时序图

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

    我们的一位专家将很快就此与您联系。

    Shamim

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

    弗洛里安

    您能否评论一下您将用于 SPI 的哪组 LaunchPad 引脚?  如果您已选择 LAUNCHXL-F28379D 作为硬件平台、则应选择正确的 GPIO。

    从下图中可以看到、如果您使用的是顶部 SPI 信号、则这是 SPIA、如果您使用的是底部的 SPIB。  在您使用的任何 SPI 块中、您都可以验证使用的是哪个 SPI 模块。

    最棒的

    Matthew

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

    您好!

    我使用 SPIA 引脚。 现在、我得到一个时钟输出、CS 正常工作。 但未接收到数据、因为我还必须正确计时采样引脚和 rd 引脚。 我该怎么做? 我不能用n‘t 脉冲发生器来使用脉冲发生器、由于异步模式、采样时间必须为-1或信息。

    谢谢  

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

    弗洛里安

    通过快速阅读旋转变压器 DS、我认为您可以使用 C2000的 GPIO 来驱动采样信号、并使用 CPU 计时器来控制激活/未激活状态。  可能有一种使用 PWM 引脚实现此目的的方法、即您可以精确控制 PWM 的输出频率、并使高电平时间等于所需的采样时间。

    我不确定模拟器件是否在产品页面上提供了一些示例软件、我们可以在 Simulink 中实现这些软件?

    最棒的

    Matthew

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

    您好!

    在附件中、您将找到我的系统设置和来自 SPI 的示波器测量值。 第一个布线是 CS、第二个 SDO 和第三个 CLK。 我将 RD 引脚连接到 CS 并将采样引脚钳位为低电平。 实际上、我尝试切换"Sample"引脚、但我没有找到正确执行此操作的方法。 n´t 使用异步子系统、我无法在脉冲发生器中使用采样时间。 是否有其他方法切换 GPIO? ePWM 引脚已被使用。   

        

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

    Florian、我们是否可以在数字输出块周围放置一个 Simulink 块、该块将每 X 个周期更改一次状态?  

    我想我们将如何在 C 代码中实现这一点、我们将创建一个函数驱动 GPIO 以实现旋转变压器锁存信号所需的"X"个周期、然后将其恢复为低电平。  我们会根据系统(可能是每个控制环路/该频率)定期调用此函数?

    在我了解需要在您的系统中实现旋转变压器以及从该概念到 Simulink 代码的过程中、可能存在一些断开。  在此感谢您的反馈。

    最棒的

    Matthew

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

    您好!

    模型中的灰色块是 SPI 接收块。 该块由 来自 ePWM 信号(介于10-80khz 之间)的中断调用。 我只想在每个 PWM 周期接收 SPI 信号、这意味着旋转变压器信号。  

    现在的问题是、我无法找到在采样时间大约为20Mhz 的中断时如何切换采样引脚。 我n´t 实施 C 代码、但直到现在它仍然有效。  

    您提到的函数可能会是答案。 也许您可以弄清楚我如何在中断例程中实现该函数、以20Mhz 频率切换 GPIO。

    此致、非常感谢。

    弗洛里安

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

    弗洛里安
    我将要求 MW 团队查看并发表意见。

    最棒的

    Matthew

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

    您好、Florian、

    我不确定我是否完全理解这里的问题。 但是、如果您希望先设置 GPIO、然后使 SPI 接收正常工作、则可以使用函数调用拆分。 函数调用的第一个操作是 GPIO 设置、然后是 SPI Rx、最后是 GPIO 复位。  

    下面是  一个使用函数调用的装运示例。

    C28x_SPI_EEPROM_INTERRUPT/Write EEPROM Data

    此致、

    Venkatesh C