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.

[参考译文] TMS320F280039C:GPIO 指定方向序列

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1161892/tms320f280039c-gpios-specify-the-direction-sequence

器件型号:TMS320F280039C
Thread 中讨论的其他器件:SysConfigC2000WARE

您好 Champ、

我正在向我的客户提出要求。 这是紧急的,请提供帮助。

它在 TRM 中被写为"在将一个引脚更改为输出之前、通过将该值写入 GPySET、GPyCLEAR 或 GPyDAT 寄存器来将该值载入到输出锁存器中。 "

虽然从 SysConfig GUI 初始化代码生成、但它后面没有语句。

专家需要提出的问题很少:

(1)。  默认情况下、所有 GPIO 引脚都是输入。 它是否必须遵循 TRM 的写操作,先写入该值,然后更改 GPIO 方向?

(2)。  继续第一个问题,如果我反向该序列(先将 GPIO 方向更改为输出,然后 写入该值), 它是否会对该序列产生任何影响或差异? 因为我们在 TRM 中特别有描述。 如果有任何详细信息、我们可以通过邮件进行讨论。

(3)。 为什么 SysConfig GUI 生成的代码与 TRM 中的语句不匹配?

谢谢、此致、

Johnny

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

    您好、Johnny、

    我们的 GPIO 专家 Vince Toledo 将尽快回来、感谢您的耐心等待。

    Luke

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

    您好、Johnny、

    感谢您的提问。 按照原始帖子的顺序:

    1.是的、请遵循 TRM 建议的流程。

    2.我相信主要关注的是有一个不需要的输出值。 例如、如果您不首先更改该值、并且引脚上不能有"0"、则该引脚将在设置为输出时从驱动为"0"开始、这可能会很糟糕、具体取决于系统中连接的 GPIO。 首先加载预期值总是更安全。

    这是我们将在 SysConfig 的未来更新中归档和更正的内容、感谢您提请我们注意这一点。

    此致、

    Vince

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

    尊敬的 Vince:

    感谢您的回复。

    与第二个问题相关、您意味着可能存在不需要的输出值。 我是否可以通过 邮件离线向您询问更多有关此问题的信息? 不确定我的客户的问题是否是由于此原因。  

    感谢您的支持!

    此致、

    Johnny

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

    您好、Johnny、

    您正确理解可能存在不需要的输出值。 我将详细介绍这可能是一个问题的原因:

    • GPIO_setDirectionMode -->此时代码中,GPIO 设置为输出。 无论引脚设置为输出(默认为0)、引脚都将开始输出。 因此、默认情况下、GPIO 将开始驱动0。
    • GPIO_setPadConfig、GPIO_setMasterCore 和 GPIO_setQualificationMode ->设置引脚类型、内核和 qual 模式、仍将输出驱动到引脚设置为输出的任何值(默认为0)
    • GPIO_writePin -->该引脚现在设置为所需的值(0或1)。 对于最后几行代码、默认情况下、GPIO 将被驱动为0。

    因此、您可以看到 GPIO 驱动为0的时间很短。

    我已经向软件团队提交了一个错误、应该在即将发布的版本中解决这个问题。

    此致、

    Vince

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

    尊敬的 Vince:

    在 Johnny 和用户的测试中、不需要的 GPIO 低电平持续约2us 至3us。 也就是说、有超过120个周期 x 2。 在这里有道理吗? 为什么它可以持续这么长的时间呢?

    但是、当我们尝试修改 TRM 之后的序列时、会发现不需要的 GPIO 低电平消失了。

    黄维恩

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

    您好、Wayne、Johnny、

    感谢您的提问。 请将帖子保留在一个主题/位置。

    周期数是合理的。 所示的每个 C 函数都有很多检查和验证。 请查看每个函数的代码以查看每个函数期间发生的情况。

    其他员额汇总表:

    实际上已经有一个固定文件、请参阅附件。 应将其置于您的 C2000Ware 安装中的以下位置:

    C:\ti\c2000\C2000Ware_{version#}\driverlib\.meta\gpio

    请将现有文件替换为随附的文件。

    e2e.ti.com/.../gpio.board.c.xdt

    此致、

    Vince