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.

[参考译文] TMS320F28379D:与 Endat 2.2编码器与 CLB 库通信- SPI 外设故障排除

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1259898/tms320f28379d-communicating-with-endat2-2-encoders-with-clb-library---troubleshooting-spi-peripheral

器件型号:TMS320F28379D
Thread 中讨论的其他器件:controlSUITETIDM-1008BOOSTXL-POSMGR

您好!

我一直在尝试使用位置管理器 CLB 库与两个 endat2.2编码器建立通信。 我在将 SPI 设置为发出和读取命令时遇到问题。 我将使用 controlSUITE 提供的 endat 示例软件。 它将 SPIB 设置为从器件并处理 传输位置数据所需的初始化例程。 目前、我没有看到 SOMI 信号上发出的任何命令、专用于切换 RS 至485收发器的读取/写入的 GPIO34信号的值的任何变化、也没有看到配置为 EPWM4的 GPIO7生成的时钟。  

我单独测试了 GPIO34、并且能够将其设置为高电平或低电平。 通过将 SPIB 设置为主控、我可以看到它也被正确连接、因为我可以看到数据通过 SIMO 和与 GPIO7相关的 CLK。 我方面的一个潜在错误是将 GPIO27 (即 SPISTEB)接地没有绑定在一起。 我一方的一个误解是认为编码器不需要 CS 线路、因此未使用该线路、但 由于 MCU 是从设备、我可以理解为什么需要启用 SPIB。 尽管如此、我可以在 GPIO23引脚上访问 SPISTEB、并选择将其作为 SPISTEB 并将其接地、但没有成功。  

我已根据 TI 电机驱动开发套件对设计的所有其他部分建模、并附上了相关的原理图。 非常感谢您提供任何故障排除建议。 我想知道为什么 GPIO34没有被 CLB 库切换、我的时钟挂起在高电平状态而不像 PWM 波、以及为什么我的 SOMI 线路在我期望它发出建立通信所需的命令时保持低电平。

 

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

    阅读有关该问题的其他一些问题、我认为这是正确初始化 SPI 的问题、因为在按下命令之前我不会看到时钟信号的切换。 我不确定为什么 SPI 无法正常工作、即使我进行了更改以通过 GPIO23启用从器件发送并将其接地。 除了禁用未使用的电源控制之外、代码的所有其他部分保持不变。 我可以看到 SPITXBUF 使用命令进行更新、但在我的 SOMI 和 CLK 线路上不使用任何命令进行更新、以指示它正在进行推送。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    专用于切换 RS -485收发器读写的 GPIO34信号值的任何变化

    您好、Eric -

    在 controlSUITE 代码中、它连接到 GPIO9。  您是否尝试过移动它? 您能否检查它在设置为 GPIO9时是否进行切换? 此信号由 CLB 驱动、因此我认为配置的一部分在库中。

    在我方面可能出错的地方是没有将作为 SPISTEB 的 GPIO27绑定为接地

    是的、此 SPISTE 应接地。  

    [报价 userid="501983" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1259898/tms320f28379d-communicating-with-endat2-2-encoders-with-clb-library---troubleshooting-spi-peripheral 为什么我的 SOMI 线保持低[/报价]

    由于不会生成 SPI 时钟、因此不会为 SPI 中的消息计时输出。 需要首先解决 TXeN 和 SPICLK 问题。  

    函数序列应指示 CLB 启动 SPI 时钟、并将 TxEN 拉高以进行发送。  

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

    软件指示 GPIO34用于此目的:

    GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1;//将 GPIO34配置为 EnDat TxEN

    我可以检查在将 GPIO9配置为 TxEn 时是否切换、但它不能作为我设计的一部分、因为该引脚用在其他地方。

    我无法通过这些引脚来将 GPIO27接地。 是否有特定原因无法使用另一个专用于 SPISTEB 的引脚启用 SPI?

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

    软件指示 GPIO34用于此目的:

    GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1;//将 GPIO34配置为 EnDat TxEN

    [/报价]

    嗯、我的 controlSUITE 安装显示了 GPIO9。  我不认为我改变了它,但可以做一个重新安装检查.

    我无法访问引脚以将 GPIO27接地。 是否有特殊原因无法使用另一个专用于 SPISTEB 的引脚启用 SPI?

    SPISTE 直接连接到 SPI (不通过 CLB)、因此可以在不同的 GPIO 上启用它。

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

    这是 C2000位置管理器参考指南、指示 GPIO34专用于 TxEN。 它也是电机驱动开发板上使用的电机。 我的假设是、即使我的 SPI 接口不工作、我也应该看到该引脚切换。

    如果在 GPIO23上启用 SPISTE 并将其绑定到接地是一种解决方案、那么我的 SPI 接口不能生成命令的原因会很严重。 我已经阅读过针对这一问题的其他解决方案、并且根据他们的回答和参考指南、可以将 SPI 配置为其他引脚。 软件为 GpioDataRegs.GPADAT.bit.GPIO23提供了一个0值、这样我就知道我 启用了从器件发送。 至少我想我知道。

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

    您好、Eric、

    遗憾的是、我知道从未针对 IDDK 电路板发布 EnDat。 controlSUITE 演示库在 TIDM-1008上受支持、TIDM-1008是用于 LaunchPad 的 Booster Pack。 (BOOSTXL-POSMGR)。   https://www.ti.com/tool/TIDM-1008

    此致、

    洛里

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

    IDDK 支持 EnDat、这是与 IDDK 软件中找到的 endat 示例文件相同的软件、而且我也使它能在该板上工作。 我无法返回到问题、似乎是 SPI 未作为从器件发出命令、即使我启用了该命令。  

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

    好的、如果您在另一个板上工作、那么在采用与另一个板相同的设置和引脚后、我看不到任何明显的问题。