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.
您好!
我尝试通过 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