如何在无奇怪行为的情况下为ATMEGA缓冲毫秒级的电源中断?


8

我有一个ATMEGA328p-pu arduino,带有通过SPI连接的LED +移位寄存器带状电路。打开时,它会增加EEPROM中的变量以推进显示模式。

  • 我们将掉电检测器设置为1级(2.7V)。
  • 有一个1500 uf电容器与电源线并联,希望能防止arduino在物理撞击下改变模式,因为电池端子可能会在毫秒(?)左右略微断开连接。
  • 盖子的正极引线上有一个二极管,以防止盖子放电到LED中,因此它仅缓冲arduino。
  • 由于帽上保持有电压,因此在帽上还并联有一个1000欧姆的电阻以将其排放,这是我们认为这是芯片有时在启动时无法点亮LED电路的问题所在。
  • arduino pro mini和strip的额定电压为5v,但我们通常以3.7v的电压运行它们,因此它们可以由单个锂离子电池供电。

有时坐10或15秒钟后,电路不会点亮。有时在断开电池并连续重新连接几次后,它会亮起。

有人可以推荐一种更好的方法来为ATMEGA提供功率缓冲器(但不能为LED灯条提供功率缓冲)吗?我们在大多数情况下都做得正确吗?

图表(抱歉,如果混乱,如果不清楚,我可以让我的朋友在Illustrator中重做): 电路原理图


2
您能用AVR,电源,电阻器,电容器,二极管等绘制这种情况的电路图吗?
jippie 2012年

您需要此“缓冲区”的唯一原因是因为电池端子如果被碰到会稍微断开连接?如果是这样,您只需要卸下连接器并将导线直接焊接到板上即可。
加勒特·佛格利

为了回馈嬉皮士,您已经从一个好的书面描述入手,添加原理图将极大地帮助您。如果您在发布时遇到问题,可以使用帮助。
占位符

2
泄放电阻器的体积较小,与典型的待机需求相比,消耗大量功率。如果您可以在软件中检测到掉电,则设置一个程序,从掉电开始对UART输出进行“计数”,并在拉动电源的同时进行监视,查看其运行时间,并通过波特率进行计算。还应注意可能会不经意间通过数据线给外围设备供电。
克里斯·斯特拉顿

1
也许您可以尝试为arduino提供一些独立的输出(串行,它是自己的分立LED),以便您可以在那里进行一点调试指示,说明arduino已重置,这与它与LED灯条的通话成功不同。我假设LED灯条甚至没有真正复位,这与每次访问状态时的正常状态不同?
克里斯·斯特拉顿

Answers:


3

您可以在二极管后使用一个超级电容器(1F / 5.5v),将其直接连接到VCC和GND。这将帮助您缓冲电源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.