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:TMS320F28379D:外设 (SPI/I2C/UART) 不工作、GPIO 切换问题以及 SPISOMI 引脚上无活动

Guru**** 2796445 points

Other Parts Discussed in Thread: TMS320F28379D, SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1594731/tms320f28379d-tms320f28379d-peripherals-spi-i2c-uart-not-working-gpio-toggle-issues-and-no-activity-on-spisomi-pins

部件号: TMS320F28379D
Thread 中讨论的其他器件: SysConfigC2000WARE

您好:

 我们正在使用 TMS320F28379D 微控制器、面临与外设初始化和 GPIO 功能相关的几个问题。 我希望协助解决以下问题:

1. SPI / I2C / UART 不工作:

  • 我们已为 MCU 提供所有必需的电源电压、并在 X1 引脚上连接了一个 20MHz 晶体。
  • 我们最初通过直接寄存器访问来编写自己的 SPI、I2C 和 UART 传输代码、但外设不运行。 为了进行验证、我们已加载官方的 C2000Ware 示例代码、但这些代码也不适用于我的电路板。 我们 还尝试使用 SysConfig 1.2.5(SPI/UART/I2C 模式选择)生成引脚配置、但外设在引脚上仍然显示无活动。

2. GPIO 切换仅在没有 InitSysCtrl() 和延迟函数的情况下工作:

  • 只有在以下情况下、我们才能切换 GPIO 引脚:
  • 从代码中删除 InitSysCtrl()
  • 将 delay_us() 替换为简单的 for 循环延迟
  • 当使用 InitSysCtrl() 时、GPIO 输出的行为不符合预期。

3.任何 SPI 模块的 SPISOMI 引脚上无输出

在尝试切换 SPI 引脚时、我们没有看到任何 SPI 模块 (SPIA/SPIB/***/SPID) 的 SPISOMI 引脚有变化、但我们能够切换所有端口上的其他 SPI 引脚(例如 SPISIMO、SPISTK、SPISTE)。

请求指导

  • 我们希望获得以下方面的帮助:
  • 验证时钟设置/振荡器配置。
  • 了解为什么删除 InitSysCtrl() 会影响 GPIO 切换。
  • 确定与 SPI、UART、I2C 相关的 C2000Ware 示例不在我的硬件上运行的原因。
  • 调试 SPI 引脚上缺少活动、尤其是 SPISOMI。

任何建议或调试步骤都会非常有用。

谢谢!

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

    您好、Srikar、

    您是否使用自定义硬件? 相同的代码是否可以在 F2837xD LaunchPad 或控制卡上运行?

    您能否对连接到相关各个时钟的 XCLKOUT 进行示波并确认看到了什么?

    是否存在任何代码故障 、例如失败的 InitSysCtrl()?  如果您使用 SysConfig、您是否已启用“设备支持“模块?  

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    1. 是的、我们使用的是定制硬件、并且不使用 LaunchPad 或 ControlCARD。

    2. 我们探测了 XCLKOUT 引脚。 当我们在代码中将时钟配置为 INTOSC1 或 INTOSC2 时、我们可以看到 10MHz。

    3. 我们还在 X1 引脚上连接了一个 20MHz 晶体。 当我们在代码中将时钟配置为外部振荡器时、我们能够在 XCLKOUT 引脚上看到 20MHz。 所以时钟工作正常。

    4. InitSysCtrl()是一个用于初始化外设、配置时钟和复位看门狗计时器的内置函数。 但是、当我们在代码中使用此函数时、无法看到输出。 同样、DELAY_US()也是一个提供延迟的内置功能、但在使用此功能时我们看不到任何输出。 但是,当我们删除 InitSysCtrl()、delay_US() 时,我们可以看到输出。  

    5. 我们实际上在 Code Composer Studio 中使用 SysConfig。

    6. 我们还转储了 用于 SPI、UART、I2C 的官方 C2000Ware 示例代码、但这些代码也不能在我的电路板上运行。 我们 还尝试使用 sysconfig 生成引脚配置,但外设在引脚上仍然显示没有活动。

         请尽早帮助我解决这些问题。

         谢谢!

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

    Srikar、

    您能否确认相同的 C2000WARE 示例在 TI 提供的硬件(LaunchPad 或控制卡)上工作?

    您能否分享有关时钟原理图的信息?

    此致、

    Aishwarya

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

    Srikar、

    在我所见的范围内,需要 InitSysCtrl() 来初始化包括 PLL 在内的所有时钟。  您可以尝试执行以下步骤进行调试:  

    1. 单独示波外设时钟的频率、并确认它们是否与初始化值匹配。
    2. 在 GPIO 模式下测试 SPISOMI — 如果它不切换,则可能是硬件问题。 确保没有 GPIO 多路复用冲突。  
    3. 验证 I2C 引脚上的上拉电阻器是否正确。
    4. 电路板上的 VDD、VDDIO 等是什么、所有这些看起来都是正确的吗?  

    此致、

    Aishwarya

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

    Srikar、

    此问题是否已解决?  

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    是上述问题已解决。 但我又有一个疑问、如果我想将代码存储在闪存而不是 RAM 中、以便永久存储代码、如何进行配置? 是否与 GPIO 72 和 84(即启动引脚)有任何关系、如果是、请告诉我配置、当前 GPIO 72 和 84 都已接地。

       请尽早帮助我解决这些问题。

         谢谢!

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

    您好、Srikar

    为此 、您只需执行以下步骤:

    1. 打开包含 main() 函数的文件
    2. 导航至 Project→Build Configurations
    3. 选择 CPU1_FLASH
    4. 执行工程重新编译

    此过程将修改链接器配置以指定代码存储位置。

    此外、 您能否提供有关最终解决本主题中提到的问题的详细信息? 在此处记录解决方案对于我们的记录和将来的参考很有价值。

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

    Srikar、

    很高兴听到这个消息!  如果可以、请在此处发布解决问题的步骤以帮助未来的用户。  

    一般而言、如有新问题、请创建新的 E2E 主题。

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    已重新安装 CCS 20.3.1。 以前、SysConfig 中未选择 SYSCTL、但我现在已选择它、一切都正常工作。

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

    尊敬的 Yasir:

    我执行了上述步骤;但是、在关闭设置电源并将其打开后、我无法观察到任何输出。

    请尽早帮助我解决这些问题。