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.

[参考译文] TM4C1290NCZAD:断电期间的 GPIO 行为

Guru**** 2503675 points
Other Parts Discussed in Thread: TM4C1290NCZAD

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/814210/tm4c1290nczad-gpio-behavior-during-power-down

器件型号:TM4C1290NCZAD

各位专家、您好!

在断电过程中、我收到有关 PD2终端(GPIO 引脚)的查询。 我们的客户将 PD2配置为 GPIO/开漏、并按如下方式实现了该终端。 客户配置开漏的原因是易于实现额外的 CS (片选)。

尽管我们的客户正在使用 TM4C1290NCZAD 评估其系统、但我们的客户注意到 PD2端子在系统断电期间指示处于低电平(0V)状态。 此外、当/RST 刚刚被置为有效时、观察到这种行为。 我相信 BOR (掉电复位)似乎会发生、因为 VDD 大约为2.8V。 因此、PD2配置为默认设置。 我们是否可以让您的专家对这种行为发表意见?

此外,如果可能,您能否详细说明如何避免这种意外的低交易,请?

此致、

宫崎

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

    您好、Miyazaki-San、

    必须挖掘一点才能找到它背后的信息、但从我发现的内容来看、"干扰"与 TivaWare 配置的顺序有关。 实际上、这并不是直接由复位本身造成的、而是在复位后如何重新配置引脚、至少从我可以看到的情况中可以看到。

    本文介绍了该解决方案: https://e2e.ti.com/support/microcontrollers/other/f/908/p/506945/1839761#1839761

    最后、我在 GPIO 上使用上拉电阻进行了测试、I 设置为开漏、并在复位时观察到它被拉低。 然后、我实现了该帖子中使用的配置、我不再看到它被拉低。 基于这一点、我相信概括的 API 组合也能解决客户的问题。

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

    您好 Ralph、

    感谢您分享您的解决方案。 此外、我非常感谢您的帮助、因为您在您的网站上测试了它。 我将很快与我们的客户分享您的意见。 我希望等待客户的反馈。 当我能够收到它时,我将关闭此主题。

    此致、

    宫崎

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

    您好!

     

    感谢您分享信息。

     

    我们在您的注释上方提到、并更改了配置顺序。

    然而,我们迄今尚未看到任何变化。

     

    我们最初依次设置寄存器。

    GPIOPadConfigSet (GPIO_PORTD_base、GPIO_PIN_2、GPIO_FORMENT_8mA、GPIO_PIN_TYPE_OD);

    GPIODirModeSet (GPIO_PORTD_base、GPIO_PIN_2、GPIO_DIR_MODE_OUT);

    GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_2、GPIO_PIN_2);

     

    参考您的意见后、我们更改了转弯。

    GPIODirModeSet (GPIO_PORTD_base、GPIO_PIN_2、GPIO_DIR_MODE_OUT);

    GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_2、GPIO_PIN_2);

    GPIOPadConfigSet (GPIO_PORTD_base、GPIO_PIN_2、GPIO_FORMENT_8mA、GPIO_PIN_TYPE_OD);

     

    我们还更改了寄存器 RESBEHAVCTL。

    但仍然存在小的低脉冲。

     

    您是否对如何关闭这个小的低脉冲有任何想法?

    如果您能向我们提供一些信息、我将不胜感激。

     

    此致

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

    虽然远离供应商团队-也许我公司使用多家供应商的 ARM MCU -形成了一个"更广泛、更深入的网络"、但可能会成功解决此问题。

    我的团队看到了3种快速方法-理想的协同操作(共同操作)、这些方法可能会解决以下问题:

    • 使用'updated'代码(即以"gpioDirModeSet()开头) 会在以下两个函数调用(每个调用)之前使用足够的延迟!   因为"GPIODirModeSet()"调用相对较主要 - 是否证明明智- 'o immediately follow it w/ other calls - minus any delay?   明显的边界性-但值得测试和验证-它不是吗?  根据延迟的值-启动时间长(例如(偶数) 100mS)-在"注意到成功"后减少(仅限) -然后确保减少的延迟保持足够宽、以便适应 MCU 的温度、过程变化和老化-所有这些都是如此!   
    • 采用10K 的上拉电阻-(200K 太高)
    • 显示的代码采用"GPIO_Strength _2mA"-  是否"明智"更改(尤其是增大)该值?   请允许我注意- (过去)为另 一个"巨型"半公司工作-提供如此多(尤其是更高)的输出电流选择-使该电路 更容易受到此类"干扰!"   如果需要"8mA"(施加的新值)- 在 解决"当前问题"后添加该值(仅限)。  (在 这些问题正在面临的同时、"添加新的"变量"总是不明智的-无论"多么简单"!)

    MCU 复位的"有效性"也 值得调查-在这个代码运行之前。  我的团队更喜欢(更长)而不是(更短)"时间段"-而 MCU 处于"复位"状态。  正确的'CU 复位 IC'-是否知道运行方式更具可预测性-是否应该对此进行评估?

    为了最完整-如果有什么(其他)代码-在这些'3个更新的函数调用之前运行?'   这些调用本身是否能够在事先进行 MCU 设置和配置的情况下成功?  (至少、必须(首先)启用所选的"输出端口"。   (可能)  该代码(如果需要)在过去的过帐中没有出现、现在也没有出现。。。

     供应商的 Ralph 报告"成功"这一事实带来了希望。  也许他列出了他的完整'Code Test Sequence' (代码测试序列)(包括 MCU 设置/配置)-会 将'All here'(全部在这里)带到一个平等的'PlayField (游戏场)-这是非常需要的-是不是吗?  此外- Ralph 对其 MCU 复位电路的描述-确保检测到(不幸且未被怀疑)"变化"并将其最小化。

    希望这些建议被视为"有用的"、并且他们"有机会"成功...  (外部想法是否能够证明是有教育意义和/或有价值的?  "NIH"是否仍然有效?)  我们的快速测试显示、"无此类"低干扰"仅在复位后进行-在(3个其他)品牌 ARM Cortex MCU 的前两个(一个 M4 -第二个 M7)上。  这种"峰值到某个东西"-是不是吗?

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

    您好!

    我在另一个 TI 站点、直到明天才有机会使用示波器再次进行测试。 请等待进一步的详细信息、直到那时、很抱歉耽误您的时间。

    感谢 CB1为您添加的测试、我同意在重新测试此案例后发布完整代码对所有人都很有价值。 关于延迟问题、我之前没有看到在我的案例中需要它们、但我也会对此进行一些探讨、看看是否有任何值得观察的地方。

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

    您好、Ralph、

    现在——请快来的员工 “在这里”(CB1'-后房总部)'Radio  Mayday!”   "休斯顿-到 目前为止、我们遇到 了一 个"未检测到"问题!"

    这里的开幕指出:  (工作人员怀疑 "这可能已经-在过程中丢失!")

    "我们的客户注意到、在 系统断电期间、PD2端子指示处于低电平(0V)状态、持续第二次。   此外当/RST 刚刚被置为有效时、观察到这种行为。

    现在 (过去的主题) (希望的)纠正代码 是"已为其添加/导入"  的-我的团队认为、"不太可能"解决此类问题、"系统断电期间的低驱动干扰"-您不同意吗?   

    怀疑(过去)"代码修复"-在 "初始 MCU 上电复位!"之后、有机会(仅限)成功!   因此,只有其中一个客户提出了两项要求这两项要求得到了承认,并因此得到了"解决问题的努力"。  

    在员工/我用"GPIODirModeSet()"-我们(现在)相信我们先前的信念:("它的'主要') -被误认为是错误的。   (因为只有2个寄存器会受到影响-首先是逻辑影响、或随后是和-应快速/轻松执行。)

    我会要求海报(客户)识别"断电"GPIO 驱动器至零"干扰的显著程度。  "四路 SPI 闪存" (上述干扰的接收者)是否 "直接/显著"受到影响?    (通过其"CS"-如此简短地-驱动低电平?   是否发生了任何"SPI"数据损坏?)

    有时、人们会"自己 的钓鱼竿投射到"错误的溪流"中。   可能会将(引起问题的)干扰 被 "纹波、外部 R-C 网络"吸收 、尤其是"低驱动干扰"表现为极短的脉冲、并且我们的用户已经(已经)施加了此 类 R-C 网络的1/2!  (通过他的"冲压"电阻器-只需添加一个小型、低 ESR、陶瓷电容器!)  此外、只要符合 MCU 的 GPIO 规范、 四路 SPI  的"上拉"值就可能会降低-(甚至) 进一步"压缩  "产生干扰的脉冲宽度。

    [编辑] 02:44 CST --添加 以下3 项以供客户和供应商考虑:

    • 敦促"所有其他" 设置和/或配置-强制在 PD2上-首先确定-然后列出-然后进行审核-目标是防止 (至少减少) PD2能够"快速攻击!"   其中一个区域是 Port_D 的"偏斜率控制"寄存器。  (压摆率必须最小化!)   此外-至少临时-将 Port_D 从 AHB 总线重新编程到(较慢) APB 总线!  任何/所有其他寄存器-往往'减少 Port_D 的加速响应-应该'设置为可能的最慢响应。'
    • 对于 PD2、是否有(某种)"特别"的情况、这会使其特别"容易察觉"、从而导致此类干扰?  (我会仔细检查任何/所有可能分配给 PD2的"特殊功能和/或信号能力"。)   同样、任何可能启用"快速响应或激活"的内容都应被阻止。
    • 建议-如果上述两项"失败"-端口 D 的 GPIO (其他)进行测试/验证-进一步检测"PD2"异常的可能性!   如果所有具有输入 Port_D 的引脚运行方式相似-我要移至另一个端口-并对此进行测试。

    需要更多更清楚的事实- 此处添加的分析  "通知、建议和公开" 扩展的诊断集-过去证明"非常成功..."

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

    用户问题的另一个"攻击方式"工具!   不希望"进一步"我的上述职位-此处提供了最新建议。

    技术背景:(无聊-但可能值得)

    在我们的 BLDC 电机"控制器开发"中 、电机的每个三相由一个"功率 FET 对"驱动。   一个 FET 拉电流-另一个灌电流-但从未/永远不会有任何重叠!  (与此类重叠至关重要的是、"在两个 FET 之间路由电流(电阻最小的路径!)   最常导致他们立即遭到破坏-有时甚至是火灾!   这种情况(或过去发生的情况)经常发生、以至于这种破坏性电流被称为"直通!"  (并做出重大努力以"避免"。)

    通常的"20kHz 及更高"开关速度和 FET 电流 (有时)> 80A RMS 使"防止击穿"成为优先级之一!  "正常/习惯"预防措施包括:

    • ( 其中一种)功率 FET 的"死区"实现(在开启之前)(可编程"延迟"是"自动插入"的方法)。  (即高侧和低侧 FET) 死区延迟旨在(合理地)确保 在互补 FET 导通之前、'FET 已(真正)关闭(即有足够的时间关闭)!
    • 除了"分频带"(该供应商的 MCU 的内置功能- BTW)、还有"电路实施"、可(进一步)增强-功率 FET 的关断。  我相信、"这些技巧之一"可以解决我们海报的(毛刺脉冲)问题。

     关断间隔期间、通过"为功率 FET 的栅极提供一个"较高的电流路径"可增强 FET 关断(即加速)!  (即通过增加此类 "栅极电流" 流、可以更有效地消除 FET 栅极上的"电荷"。)   这提供 了(可能的)"线索"-解决海报不需要的(驱动至低)干扰问题。

    然后、建议使用"双路径"电路实现方案-"在 SPI 的芯片选择上启用"逻辑高电平"高速置位"- 但(有效)"启用(仅)远低于速度的"逻辑低电平!"  理论上-这 种"外部"电路可用作"矫正、干扰食量"。

    然而-进一步/深入思考-"逻辑高电平"路径(已经存在-通过上拉 R) -我先前建议使用"降低值"。  "较低的 R 值保持不变。"  为了防止(仅限于)在 SPI 的片选上出现(仍然)的 PD2毛刺脉冲(实际上、如果该毛刺脉冲仍然存在)、它保持在(感觉)状态。  这可以通过以下方式实现:

    • (*)插入一个与增加的值"压差电阻器"串联的"二极管"(理想情况下肖特基-朝向 PD2的阴极)。
    • 并 在 SPI 器件的芯片选择引脚上添加了先前建议的"低 ESR 陶瓷电容器"。  (需要进行一些实验-怀疑0.01µF (可能)证明是一个良好的开端)

    此电路打算(仍然)启用- MCU 引脚'PD2' -以"命令/控制"SPI 芯片选择。  然而、它减少了任何由 PD2产生的"低驱动"干扰效应-这是"不需要的"。   应该注意的是、'SPI 上拉电阻器和用户'Damp'电阻器的组合形成一个分压器-因此、必须选择这些相对电阻器值、这样:

    • 来自 PD2的毛刺脉冲(如果它仍然存在)被 SPI 的芯片选择大大"削弱"-理想情况下为"不可见/感觉"
    • 将 PD2的(正确)命令设置为合法逻辑低电平-实际上是在 SPI 的芯片选择中保留的。   可能需要进行一些实验来选择"上拉 R 和阻尼电阻器值的"正确配对"。

    裂缝员工到达(CST 07:30)可能会启用原理图-如果此"声明"需要(甚至)更多详细信息。

    (*) 03:xx -不需要"分层二极管"、因为 PD2 -在"开漏"模式下-只能"下拉"。   当"正常运行" -使用 GPIO 作为"推挽"输出(启用拉电流和灌电流) 时、"二极管"证明是合适的。  (有必要-但情况并非如此-此处...)

    本报记者(现在)“思想不在”…… 并退出... 祝您好运。  (希望是谁-已经掌握了检验(仅)那个岗位(真正)解决了这个问题的技巧-而不是他/她自己的岗位-(仅)确认了另一个岗位的"解决工作"。)

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

    您好!

    因此、在进一步测试后、看起来此权变措施仅解决 GPIO 驱动强度较低的情况下的问题。 只有 GPIO_Strength _2mA 适用于此变通办法。

    对于其他驱动强度水平、可以看到该引脚在复位时变为低电平。

    我还没有找到另一种规避此行为的方法。

    关于您的用例、要回应几个 CB1的问题:

    1. 为什么需要更高的驱动强度? 我觉得芯片选择不需要更高水平的驱动电流。
    2. 在切换 CS 引脚时是否观察到负面影响?

    对于 CB1、我实际上已经根据器件复位对其进行了测试。 复位时、引脚在上拉电阻器恢复为高电平之前被强制为低电平、这是一个非常奇怪的问题。 它非常简短、仅在复位时发生。 在配置之前和配置期间、引脚将保持高电平。 这种行为不会与一个引脚隔离、我能够在其他具有上拉电阻的引脚上复制它。

    我还没有尝试过的一点是、看看上拉电阻器的电阻、GPIO 的驱动强度和毛刺脉冲之间是否存在关系。

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

    您好 Ralph、

    似乎您已安全地返回到"家居"。   团队/我明天飞行-又一个-"工作周末!"   (但水、帆船和潜水器、因此"几乎有趣"。

    现在、记录表明、7月23日12:04时、这里有一个(即 Moi)-是第一个建议将驱动强度限制为2mA、而不是用户部署的8mA。

    [引用 USER="CB1_MOBIST]采用"GPIO_Strength _2mA"的过去代码-  更改(尤其是增加)是否"明智"?   请允许我注意- (过去)为另 一个"巨型"半公司工作-提供如此多(尤其是更高)的输出电流选择-使该电路 更容易受到此类"干扰!" [/报价]

    您还问:"切换 SPI CS 是否会产生负面影响"-我之前曾问过、"问题"。  似乎"并非总是"让外人"亲吻他们的标记"-即使(经常)被"只喜欢供应商代理..."的用户以这种方式对待

    BTW -我详述的毛刺脉冲滤波器应该(完全)抑制这个信号-代价是一个小型陶瓷电容器--(有时)简单的硬件规则!

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

     您好 Ralph、

    感谢您的建议。

    我们的客户能够确认此干扰信号不会对 客户使用的 SPI 闪存产生负面影响。 因此、我想关闭这个 TT。 我是说、客户也收到了存储销售商的意见。  

    此致、

    宫崎

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

    您好 Ralph、

    "被理解和错误放置的验证"的"歪曲"在全强制模式下继续-并在全屏显示-就在这里。

    没有"相似"-没有(恰当/当之无愧)"非常正常"-是否有更好的方法来"让外部人员参与?"

    请注意、我的团队(高度)由 "令人印象深刻的年轻大学生/新年级学生组成!"   (如此高技能/积极性-正如他们在这里所做的努力所揭示的那样)-他们(两者)感到非常沮丧和失望-因为他们的"出色的分析和建议" 已经"完全通过了!"   这是不对的--并给 您的公司带来可怕的印象--是不是吗?

    如果不能更清楚/有效地做到 这一点、那么(仅限于)正确检测并导致"问题解决"的帖子是再次 (唯一)应该获得"此帖子已解决我的问题"奖的帖子!   海报(继续)"核实自己的帖子"(这不可避免地是错误的)、因为他们自己的帖子"暗示确认"未被认可的其他人"的(有洞察力和解决)工作。

    通过 使用 "放大-甚至(赦免)指导语言"(强调仅启用问题解决方案的过账)、可以减少(理想情况下消除)这一(长期)遗留问题、并将其标记为"验证"!   (解析-证明 优于"验证" -不是吗?)

    简单的建议-"请勿将您自己的帖子标记为"验证"-除非您的帖子已(实际)确定并解决了列出的问题!" ——似乎是一个简单但(大大改进)的指南——它不是吗?