STM32(ARM Cortex M3)上未使用引脚的默认设置建议 - 上拉/下拉?

电器工程 微控制器 最佳实践 stm32 拉下 拉起
2022-01-17 14:41:08

我们目前正在使用 STM32 微控制器系列的各种变体。我想知道以下内容:

  1. 如果您可以选择同时选择上拉或下拉,通常推荐的微控制器引脚默认设置是什么?选择其中一个有什么好处和坏处?(假设您默认将它们设置为输入)

  2. 特别是我想知道如何处理 STM32 微控制器系列的未使用引脚。对我来说很明显,我们不应该让引脚悬空(这就是数据表所说的全部内容,:(),但我应该将它们设置为带上拉输入还是带下拉输入?特别是,我想选择最不易受 ESD 影响的设置,并且如果可能的话,消耗最少的电量。

  3. 对于关键引脚,我们应该依靠固件将引脚正确设置为正确的默认状态,还是应该由外部硬件负责(连接外部上拉或下拉)?如果为外部电阻选择的值大于内部上拉或下拉,则固件中的设置无关紧要。

我可以看到执行上述操作的优点是,如果微控制器由于某种原因(硬件故障等)没有正确初始化,我们不依赖固件来正确设置引脚。

我看到的缺点是硬件成本更高。

您对上述内容的任何了解都将不胜感激。

谢谢..

3个回答

这个答案不是 STM32 特定的,而是基于多年的经验和许多这样的讨论。其他人可以对此进行补充——它涵盖了要点(我认为),但可能并不完整。

看到有人提出这些简单但基本的问题并表现出对这些“小事”如何在现实生活中“帮派”的认识,令人鼓舞。

即“如果微型没有正确初始化......”实际上是“......当微型没有正确初始化......”:-) - 很明显你意识到了这一点。

所以:

  • 对于那些真正热衷于获得明确结果的人来说,使用外部上拉或下拉是必不可少的。这是这里最大的必须做的事情。其余的都是奖金。ie 使用内部 pullxxx 设置输入是一种折衷方案,几乎总是有效的。
    如果“几乎总是”对您的设计来说不够好,那么您需要外部拉动 xxxs。

  • 上拉或下拉似乎没有压倒性更好的结果。IC之间可能会有所不同,但可以从数据表中确定。在所有条件相同(可能是这样)的情况下,我倾向于下拉,因为设备外部电路的泄漏电流可能会降低 - 但在保形涂层 PCB 和/或良性环境中,这可能会很小。

  • 如果您真的关心,您可能希望查看启动操作。例如,上拉引脚将在某个阶段从低电平开始并变为高电平。下拉引脚可能会始终保持低电平。这可能并不重要,但为了完整性而提及。

  • ESD 敏感性将因设备而异,很可能是对称的,并且平均而言,在许多处理器上可能更倾向于下拉,因为如果不对称,驱动器往往会下沉而不是源。如果您非常关心 ESD,那么您可能希望使用带下拉的低输出 - 因为低阻抗路径将(可能)提供更好的 ESD 保护。但是,如果您非常关心 ESD,您将希望以其他方式针对它进行设计,而不是将 IC 内保护作为主要保护。

  • 关于问题 3 - 外部 pullxxxs 是可取的,但使用处于适当设计的极限高端的值似乎是安全的,然后在需要时并行使用内部 xxx。但是,由于内部拉力 xxxs 通常具有 2:1 的 R 有效,因此您可以仅使用外部来获得最大的 R 和最小的电流。您当然要避免的是外部上拉和内部下拉或反之亦然——但这不太可能成为问题。

  • 当我说“……限制适当设计的高端……”时,我的意思是,而不是“超出限制……”。即,引脚将具有指定的电阻值,允许满足最坏情况下的 Vin 规范。较大的电阻器可能会在电阻器中消耗较少的电流,但可能会开始非常轻微地打开内部开关。即,可能存在 Rpulldown_current 与最低总电流的折衷,因为内部驱动器开始看到泄漏电流(这将非常小),从而增加了流向驱动器的电流并非常轻微地窃窃私语。

  • 如果您使用例如下拉,您可能会发现将引脚设置为输出并将其驱动为低电平会降低功耗,但这是一个可以在适当时候决定的选项。

  • 几乎是旁白 - 切勿让保护二极管在操作期间的任何阶段处理“任何重要电流”。允许他们这样做可能会导致完全莫名其妙的处理器动作。电流越小,出错的可能性就越低——而且当它们出错时就越难找到它。

你在优化什么?成本优化要求您将未使用的引脚设置为输出。可靠性优化要求定义所有引脚级别,即使在固件有机会将未使用的引脚设置为它认为合适的值之前的短时间内也是如此。

我曾经不得不检查处理器板的可靠性计算。它设计得很好,到处都有去耦电容,所有 I/O 引脚上都有拉到任何电阻。可靠性工程师拿出他的手册,将所有涉及的组件的故障率加起来,最终得出一个以无源组件故障率为主的数字。这个数字高于要求,所以我们遇到了问题。去掉那些电阻,这个数字就可以了。但是在那个提议下,电气工程师开始愤怒地大喊大叫(这是正确的,IMO)。我不记得故事是如何结束的。我想我们去了客户并要求免除计算中忽略电阻器的故障率,理由是它们没有承载大量电流。

我只是将未使用的引脚配置为输出并将它们设置为低电平。