简单设备的精密设计

给读者的问候! 今天,我将告诉您一个奇怪的故事,它使我想到了为任何电子产品的实现选择错误(非最佳)组件时出现的问题。 以及使用“一日”设备的示例的简单性。
让我们同意这个故事是虚构的,任何巧合都是随机的……或者不是随机的。
有一次Seryozha,程序员就向我求助,要求我在自己的汽车上制造一种设备,该设备可以模拟在巡航控制电路中按下一辆实物汽车时连续按下两个虚拟按钮(福特福克斯2)。 标准控制单元的方案如下:



在控制方面,这是使用ADC的经典按钮输入。 因此,当您按硬件按钮时,请依次按ON和SET +按钮约0.2 s,以执行设备的任务。 为了便于集成器件,决定通过分压器的上电阻为其供电。 没有连接按钮电路的情况下,连接端子上的电压为4.6V。 由于该设备计划在晚上制造,因此我制作了一个图表,没有根据组装表上的内容进行初步计算。 解决方案“在额头上”:



Serezha编写了固件,该设备非常适合汽车。 当他们想将板装到转向柱开关外壳中时,办公室后面的人大喊:“它是如此复杂吗? 可以省去一半的细节,而STM8确实就是完成这一任务的目标。” 它开始了……这个想法的作者自愿焊接了“三分之二”的布局(显然希望取得一个简单的胜利)。 我(以我自己关于职业嫉妒的文章为指导)决定不干扰年轻专家的逃跑,而只是在每个人都意识到奇迹未发生的阶段才介入。

我的同事提出的方案确实更简单,但只能在桌面上起作用:



即使乍一看,错误仍然可见,但是,我决定使电路特别在STM8S001J3 MK上工作。

为了了解如何重做电路,我们将进行几次测量。 ADC分压器中较高电阻的电阻约为130欧姆,空载电压为4.6V。

然后,按钮节点图具有以下形式:



  • 松开按钮时,电路中的电流为2 mA,ADC输入端的电压为4.33 V;
  • 当按下ON按钮3.7 mA时,ADC输入端的电压为4.11 V;
  • 按下SET按钮+ 18.4 mA,ADC输入端的电压为2.2V。

同时,STM8S001J3 MK的工作电压范围为2.95-5.5V。事实证明,尝试按SET +按钮会导致电压降低于最小值,并且MK会复位。

在这一点上,我建议分散注意力并讨论什么是理想的MK以及为什么他们不选择它。 通常,对于此类手工艺品,使用开发人员知道如何使用的物品以及手边的物品。 例如,微芯片具有SOT23-6封装的PIC10F200或ATtiny10控制器,电压范围为2(1.8)-5.5V。这些微电路不需要稳压器(如STM32L031),但是当按下SET +按钮时它们不会重启。 (例如STM8S001J3)。 线束中只有2个电阻和一个电容器。 美观,但具有此功率范围的STMicro控制器范围不大。 细心的读者会正确地注意到,在这样一个任务的框架中,几乎任何控制器都可以被掌握,但是缺少熟悉的编程环境和调试工具决定了这种选择。
回到计划。 为了解决控制器复位的问题,我们需要在按下SET +按钮的同时为控制器供电。 要估算此能量的数量,有必要测量电流消耗(或参阅文档):



最佳状态下接近500μA。 这很多,但为了清楚起见,我将进行计算。 为了存储能量,我们需要一个二极管(VD1)和一个电容器(C1):



释放C1按钮时,VD1上的压降分别为0.2 V,它将被充电到4.33-0.2 = 4.13V。当您按下SET +按钮时,Vin的电压下降到2.2 V,VD1关闭并且MK由放电C1供电。



(感谢VT100DenisHW修复了错误
在此表达式中,存储在左侧电容器中的能量(当其从4.13 V放电至3.1 V时),由控制器在右侧消耗的能量持续时间t = 0.2 s。 然后电容器的电容:



可以承受100微法拉的费用,但是在按下按钮时尝试使控制器安乐死。

为此,STM8具有活动停止模式:



通过禁用MVR和闪存,可以获得约40μA的消耗电流(该电流明显高于声明的电流,但该电流适用于此任务),并且借助AWU(自动唤醒单元),您可以在睡眠后256毫秒后轻松设置唤醒。 在这种情况下,为了确保控制器的运行,只需要一个容量仅为10μF的电容器,但是由于夹住腿之后,MK入睡需要一段时间,因此所需的足够的容量为47μF。

似乎所有问题都已解决,但还有一个问题。 按下SET按钮时的电流+ 18.4 mA小于输出极限电流,但逻辑零电压将处于0.7 V范围内。这将导致流经电阻的电流下降,并且需要重新计算电阻或根据方案使用外部晶体管开漏。 我选择第二个选项是因为行为更容易预测。 最终方案采用以下形式:



以这种形式,它已经成功赚钱并且一直在使用。

而不是结论

在本文中,我想引起人们的注意,即对于开发简单(乍看之下)设备过于肤浅或琐碎的方法,开发人员将如何受到惩罚。 另一方面,鉴于两个主要原因,我想说明主要元素库(在本例中为MK)的非最佳选择如何使开发过程和产品本身复杂化:

  1. 需要根据程序员的技能来调整技术解决方案的选择。
  2. 无法掌握适合该任务的所有可能组件,无法选择“最多”的组件。 这些因素通常可以解释以下事实:许多设备(家用,商用,特殊设备)都可以正常工作,但并没有达到您的预期效果。

Source: https://habr.com/ru/post/zh-CN432574/


All Articles