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.

[参考译文] TMS320F28388D:某些 GPIO 引脚不输出,无论其初始配置如何

Guru**** 2606725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1073017/tms320f28388d-certain-gpio-pins-not-outputting-regardless-of-intial-configuration

部件号:TMS320F28388D

你好

我将 CPU2设置为多个 GPIO 引脚的主核心,以配置为输出。  有些行为正常,如 GPIO12,使用 GPIO 写入引脚(12,1) 或 GPIO 写入引脚(12,0)等命令时,可以写入高或低。  执行 GPIO 读取引脚(12)将正确返回我写入引脚的任何内容。  

但是,不管我为其他引脚(如 GPIO9-11)选择了什么设置,我都无法将输出更改为这些引脚。  它总是1,有时总是0。  我已确保这些输出引脚不会与其它输出相连,这可能会迫使另一侧输出过低或过高。

目前,GPIO12 (有效的引脚) 具有以下初始设置:

GPIO 设置引脚配置(GPIO_12_GPIO12);
GPIO 设置方向模式(12,GPIO _DIR_MODE_OUT);
GPIO 设置 PadConfig(12,GPIO 引脚类型标准);
GPIO _setMasterCore(12,GPIO 核心_CPU2);   

我对引脚9-11使用了类似的设置。  但是,即使我更改了任何 PAD 选项(即 GPIO PIN_TYPE_PULUP),也不会有什么区别。

 我是否缺少某些内容,例如某些初始设置可能会禁用或强制向这些特定 GPIO 输出?     

谢谢

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

    好的,我有一个更新,但仍会导致另一个问题。

    为了澄清这一点,在我们现有的 CPU1 GPIO 初始化例程中,我们将某些引脚的所有权设置为 CPU2。  因此,在 CPU1初始化中,我们将 GPIO _setMasterCore(9,GPIO 核心_CPU2);...最高可达 GPIO _setMasterCore(12,GPIO 核心_CPU2);

    在上述 CPU1初始化例程中,在 setMasterCore 命令-- GPIO 设置 PinConfig, GPIO 设置导向模式和之前设置引脚12配置
    GPIO 设置组配置。  这仅适用于引脚12。   对于引脚9-11,在 CPU2 GPIO 初始化例程中调用这些集配置,该例程在 CPU1初始化后运行。

    为了实施引脚配置,似乎必须在 setMasterCore 之前完成。  在执行此 setMasterCore 命令后,是否有方法更改 PIN 配置?  如果  可能,我不希望更改任何现有的 CPU1代码。

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

    似乎我对其中一个方面有误解。  进一步调查显示,任何 GPIO 配置(例如,引脚是插入还是输出)都只能从 CPU1执行,而不管何时调用 setmaster。  

    如果 CPU1根本未设置方向,是否有方法改变 CPU2的 GPIO 引脚方向(输入或输出)?  

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

    您好, Phillip Shen,

    是的,您是对的,GPIO 控制寄存器只能从 CPU1访问。 选择主 Core 后,主 Core 的数据寄存器可以控制 GPIO。 但是,控制寄存器只能由 CPU1访问。

    此致,

    维纳