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:GPIO 问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1245253/tms320f28379d-gpio-issue

器件型号:TMS320F28379D

大家好!

我正在为应用使用 TMS320F28379D 微控制器。 在我的第一个应用程序中、我使用"X"代码并闪存至该代码中。 而没有任何问题、我就能够运行我的系统。 但是、当我对"Y"代码使用相同的微控制器时、会在"Y"代码未定义的 GPIO 处输出"X"代码。

例如、我为"X"代码定义了9个 GPIO 引脚、为"Y"代码定义了8个 GPIO 引脚。 在将"Y"代码刷写到微控制器后、我将在定义的 GPIO 引脚上获得例外输出、并且我将在未定义的 Y 代码 GPIO 引脚上获得 X 代码输出。 我不知道为什么会发生这样的事情,我也不知道我在哪里犯了错误。

是否可以永久存储在 TMS 微控制器中? 如果我没有定义特定的 GPIO 将会提供旧代码输出?  

在本例中、当我刷写"Y"代码时、会从额外的 GPIO 收到脉冲。 因为在"X"代码中、我使用了这个额外的引脚来生成脉冲。  

注意:如果在"Y"代码中将额外引脚定义为零、我将获得零、但仅在未定义的条件下、我将获得该引脚上的 X 个代码脉冲输出。  

请告诉我,这可能是什么原因... 谢谢  

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

    您好!

    Unknown 说:
    例如、如果我为"X"代码定义了9个 GPIO 引脚、为"Y"代码定义了8个 GPIO 引脚。 在将"Y"代码刷写到微控制器后、我将在定义的 GPIO 引脚上获得例外输出、并且我将在未定义的 Y 代码 GPIO 引脚上获得 X 代码输出。 我不知道为什么会这样发生,我也不知道我在哪里犯了错误。[/引号]

     不能保证未定义的 GPIO 引脚具有特定的行为;如果要验证某些引脚连接是否具有预期的值、必须在代码中定义此行为。 如果您没有让这些引脚处于未定义状态(即您正在设置方向、上拉 启用、并 适当设置值)并且仍然出现意外行为、请告诉我。 GPIO 引脚被其他外设使用、如果您没有在程序中使用它们、那么它们的输出/输入可能不同于您的预期。

    [quote userid="560722" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1245253/tms320f28379d-gpio-issue 是否可以永久存储在 TMS 微控制器中? 如果我没有定义特定的 GPIO 将会提供旧代码输出?  [/报价]

    如果你是编程闪存,那么相对而言,它是"永久的"。 您是否对电路板进行下电上电、而 GPIO 仍工作 异常?

    此致、

    阿米尔·奥马尔

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

    感谢您的回复、

    是的、重启之后也是如此。

    我的观察结果:

    今天、我探测了缓冲器的输入和输出、并观察了预期输出(零)、即使在定义的 GPIO18条件下也是如此。 不过、在从缓冲器输入侧移除探头后、我在缓冲器1 (GPIO18)的输出端观察到50Hz 脉冲、有时也会观察到3.3V。  

     此外、当我将手靠近 TMS320 GPIO18侧时、或通过按下 TMS320但在移除输出后恢复正常时、我在同一缓冲器输出侧观察到了脉冲。  

    从上面的实验中我相信这并不是因为 TMS320、而是可能由手工或缓冲器输入上的某种东西产生的静态能量造成的。 请更正我的错误。

    注意:在将 GPIO 18定义为推挽配置后、我没有看到任何意外行为。 为了便于参考、我附上了电路原理图。  

    如果您对此有任何进一步的信息、请提供。 谢谢  

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

    您好!

    然而,在从缓冲器输入端卸下探针后,我观察到50 Hz 脉冲,有时还在缓冲器1 (GPIO18)的输出端观察到3.3 V。

    要确认、这是否正确定义了 GPIO18? 您是否了解示波器上这种噪声的读数? 该引脚在进行测量时是否配置为输入或输出?

    此外、当我将手靠近 TMS320 GPIO18侧时、或通过按下 TMS320但在移除输出后恢复正常时、我在同一缓冲器输出侧观察到了脉冲。  

    从上面的实验中我相信这并不是因为 TMS320、而是可能由手工或缓冲器输入上的某种东西产生的静态能量造成的。 请更正我的错误。

    [/报价]

    这些是 金属引脚、因此它们确实会受到环境噪声的影响。 您是否使用了任何器件来防止输入端产生噪声? GPIO 是否会 由于噪声而读取错误的值?

    注意:在将 GPIO 18定义为推挽配置后,我没有看到任何意外行为。 为了便于参考、我附上了电路原理图。  [/报价]

    我觉得我可能是对 POST 的误解;您 通常会问为什么在 GPIO 引脚配置保持未定义时读数不可预测? 或者您是否看到引脚配置是否正确时出现异常行为?

    此致、

    阿米尔·奥马尔

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

    要确认、这是否已正确定义 GPIO18? 您是否了解示波器上这种噪声的读数? 该引脚在进行测量时是否配置为输入或输出?

    答:不,我看到了噪音,它是不确定的。 它是50 Hz、12 KHz 的方脉冲(基本上根据我的手在 TMS 320上的位置而变化)。 有时即使我没有亲手操作、也显示为3.3V。 此 测量未在 GPIO 18上进行、而是在缓冲器输出侧进行。

    因为现在我没有波形,但我已经保存在钟摆盘,很快我会在这里张贴。

    2.这些是金属引脚,因此它们会受到环境噪声的影响。 您是否使用了任何器件来防止输入端产生噪声? GPIO 是否会由于噪声而读取错误的值?

    回复:我尚未定义输入和输出此 GPIO、只是未定义引脚。 此外、当我对 GPIO 进行探测时、我在 DSO 中没有看到任何噪声。 我认为这主要是因为缓冲。 在未定义后、GPIO 引脚具有采用推挽配置的输出、因此一切看起来都很正常。

    否、未在两侧使用任何阻止噪声电路(TMS320 /缓冲器输入或缓冲器输出侧)。 如果您对此有任何想法、敬请告知。 我认为缓冲器输入端的下拉电阻器可解决该问题。  

    3.我觉得我可能是对 POST 的误解;您通常会问为什么在 GPIO 引脚配置未定义时读数不可预测? 或者您是否看到引脚配置是否正确时出现异常行为?

    回复:我认为这不是 GPIO 或 TMS320控制器。 这可能是由于缓冲器电路设计不良造成的。 缓冲器输入侧没有下拉电阻器、从而防止这种类型的噪声或静态增益。

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

    您好!

    (请注意、您可以突出显示我的回复文本、然后单击"报价"将文本复制到您的回复中、这将使其更易于阅读)

    否,我看到噪声时未定义。
    此 测量不在 GPIO 18上,/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1245253/tms320f28379d-gpio-issue/4710169而是在缓冲器输出侧。
    此测量不在 GPIO 18上,也不在缓冲器输出端。[/quotoint userid=#4710169]" 此外、当我对 GPIO 进行探测时、我在 DSO 中没有看到任何噪声。 我认为这主要是因为缓冲。 由于在未定义后、GPIO 引脚具有采用推挽配置的输出、一切看起来都很正常。

    我认为我不了解这里的实际问题;如果您使用的是引脚、它需要具有定义的配置。 如果不是这样、您将具有不可预测的行为、除了正确定义您的系统之外、没有办法可以避免这种情况。 您的程序中是否正在使用 GPIO18? 如果是、它需要具有定义的配置。 如果没有、我不确定 此 GPIO 是否会影响您正在运行的程序的其余部分、但它不应该。

    我认为这不是因为 GPIO 或 TMS320控制器。 这可能是由于缓冲器电路设计不良造成的。 因为缓冲器的输入端没有下拉电阻器来防止这种类型的噪声或静电。[/引号]

    GPIO 没有下拉电阻器、如果您打算使用一个、则需要将其添加到硬件上(输入中包含一个上拉电阻器)。 图8-1 单个引脚的 GPIO 逻辑显示了 GPIO 引脚的电路的具体情况。 如果您对此图有任何问题、请进行查看、并告诉我。

    此致、

    阿米尔·奥马尔