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.

[参考译文] TMS320F280049C:sysconfig 工具未正确配置 GPIO 引脚(?)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1066679/tms320f280049c-sysconfig-tool-not-configuring-gpio-pins-correctly

部件号:TMS320F280049C
“线程:C2000WAREsysconfig”中讨论的其它部件

我正在为 F280049微控制器创建一个 CCS 项目。 CCS 版本为11.0.0.00012,C2000Ware 版本为4.00.00.00

我正在使用.syscfg 文件进行引脚配置。

我尝试了两种创建 syscfg 文件的方法: CCS 中的集成 sysconfig 工具以及独立的 sysconfig 工具。  我在这两种方法上都遇到了问题。

 sysconfig (集成和独立)的版本为1.10.0.2163

首次创建新的 syscfg 文件时,创建对话框允许选择性地指定“软件产品”。  其中一个选项是“C2000 sysconfig 3.01.00.00”。  如果指定了软件产品,则该工具将生成一个.h 和.c 文件,并在 C2000Ware 中使用更高级别的功能。   如果省略了“软件产品”,则将其视为“裸机”项目,该工具将生成基于低级(寄存器)例程的.c 和.h 文件以配置引脚。  

这是我观察到的问题:

当我配置 GPIO 引脚(在本例中为数字推拉输出)并指定“软件产品”时,生成的.c 文件初始化例程未完全配置 GPIO 引脚。  尽管 GPIO 在设计器中被指定为数字,但它们忽略了禁用“模拟模式”。

这些行应在.c 文件中生成,但它们不是:

   GPIO 设置模拟模式(22U,GPIO 模拟禁用);
   GPIO 设置模拟模式(23U,GPIO 模拟禁用);

但是,如果我在创建 sysconfig 项目时未指定软件产品(即为裸机应用程序生成文件),则创建的.c 文件中确实包括禁用模拟模式(其寄存器等效项)。

我是 sysconfig 工具的新客户,可能缺少一些明显的东西,但这似乎是一个错误。  否则,如果有人能解释我的错误,我将不胜感激。

解决方法是在 main.c (或在使用 GPIO 之前的某个位置)中手动插入上述两行。

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

    首先,我一直敦促您使用软件产品版本的工具,并使用.c 和.h 文件。

    它生成的代码是正确的。 这些 PIN 的默认状态为数字,因此无需编写这些代码行。

    事实上,在 driverlib 中,GPIO 设置模拟模式只接受一个子集的引脚。 对于您的案例,您应该对生成的代码很满意。

    NIMA

    [引用 userid="509355 " url="~/support/MICC-MIC-group/CC2000 /f/C2000-微控制器-forume/1066679/tms320f280049c-sysconfig-tool-not configure-GPIO 针脚正确"]变通办法是在 main.c (或使用 GPIO 之前的某个位置)中手动插入上述两行。[引用 GPIO ]

    如果您看到不喜欢的内容,这始终是扩展 sysconfig 支持的选项。

    此外,如果您是新用户,请尝试以下两个文档:

    https://www.ti.com/lit/spracx3

    https://www.ti.com/lit/spry341

    NIMA

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

    你好,尼玛,

    感谢你的回复。  我确实计划在我的项目中使用“软件产品”。

    如您所述,当我添加 GPIO 时,“模拟模式”下拉菜单设置为“数字”(灰显,因此无法更改)。  没关系。

    但是,出于某种原因,在我的 main.c 文件中,调用 sysconfig 生成的 Board_Init()后,GPIO 的设置值不起作用。   

    但是,如果我将 GPIO 设置模拟模式(23U,GPIO 模拟禁用)置于行中;在调用 Board_Init()后,它工作正常。  如果我再评论一下,GPIO 将不起作用。

        //***以下内容不起作用***

        Board_init();

        GPIO 写入引脚(GPIO23_LED4,0);
     

       //***以下操作有效***

        Board_init();

       GPIO 设置模拟模式(23U,GPIO 模拟禁用);

        GPIO 写入引脚(GPIO23_LED4,0);

    configsys 生成的 Board_init()例程如下所示。  请注意,它不在任何位置指定模拟/数字:

    void Board_init()

       EALLOW;

       PinMux_init();
       GPIO 初始化();

       EDIS;
    }

    无效的 PinMux_init()

       // GPIO23_VSW -> GPIO23_LED4 Pinmux
       GPIO 设置引脚配置(GPIO_23_GPIO23);
    }

    作废 GPIO 初始化(){
          
       //GPIO23_LED4初始化
       GPIO 设置导向模式(GPIO23_LED4,GPIO _DIR_MODE_OUT );
       GPIO 设置 PadConfig (GPIO23_LED4,GPIO 引脚类型标准);
       GPIO _setMasterCore(GPIO23_LED4,GPIO 核心_CPU1);
       GPIO 设置限定模式(GPIO23_LED4,GPIO Qual_SYNC);
       GPIO 写入引脚(GPIO23_LED4,0);
    }

    我还注意到,我的 CCS/C2000Ware 安装中不使用 sysconfig 的代码示例使用了 GPI_setAnalogMode()例程。

    感谢你的帮助。

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

    我认为你对此是正确的。 仅对于 GPIO23和 GPIO22,这些行是必需的。

    我会将此添加到 F28004x 代码生成模板中作为特殊情况

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

    你好,尼玛,

    感谢您的帮助和关注!  很抱歉,我没有看到这张笔记,也许我应该更仔细地阅读这些文档:-)  无论如何,我很高兴知道这张笔记,这样我就知道我没有做错。  

    此致,

    埃里克

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

    你不会做正确的事情。 我将在下一个 C2000Ware 版本中随意将这些代码行添加到 PinMux_init。