Come bufferizzare un ATMEGA per l'interruzione di corrente di millisecondo senza comportamenti strani?


8

Ho un arduino ATMEGA328p-pu con un circuito a strisce LED + registro a scorrimento montato su SPI. Quando si accende, aumenta una variabile in EEPROM per far avanzare la modalità di visualizzazione.

  • Abbiamo il rilevatore di brownout impostato sul livello 1 (2,7 V).
  • C'è un condensatore da 1500 uf collegato in parallelo all'alimentazione che, si spera, impedisce all'arduino di cambiare modalità in caso di impatto fisico, poiché i terminali della batteria possono disconnettersi leggermente per un millisecondo (?) O giù di lì.
  • C'è un diodo sul cavo positivo del cappuccio per impedire che il tappo si scarichi nei LED, quindi tampone solo l'arduino.
  • C'è anche una resistenza da 1000 ohm in parallelo sul tappo per scaricarlo poiché conteneva una tensione, che presumiamo fosse dietro un problema in cui il chip non illuminava il circuito LED a volte all'avvio.
  • Arduino Pro Mini e Strip sono classificati a 5 V, ma li eseguiamo abitualmente a 3,7 V in modo che possano essere alimentati con una singola cella agli ioni di litio.

A volte, dopo essere rimasti seduti per 10 o 15 secondi, il circuito non si accende. A volte, dopo aver scollegato la batteria e averlo ricollegato più volte di seguito, si accenderà.

Qualcuno potrebbe raccomandare un modo migliore per fornire un buffer di potenza a ATMEGA (ma non alla striscia LED)? Lo stiamo facendo correttamente per la maggior parte?

Diagramma (scusami se è disordinato, posso fare in modo che il mio amico lo ripeti in Illustrator se non è chiaro, potrebbero volerci alcune ore): Schema elettrico


2
Riesci a tracciare uno schema circuitale della situazione con l'AVR, l'alimentatore, la resistenza, il condensatore, il diodo, ...
jippie,

È l'unico motivo per cui hai bisogno di questo "buffer" perché i terminali della batteria possono scollegarsi leggermente se urtati? In tal caso, è sufficiente rimuovere il connettore e saldare i fili direttamente sulla scheda.
Garrett Fogerlie,

Per fare eco al jippie, hai iniziato con una buona descrizione scritta, l'aggiunta di uno schema aiuterà immensamente. In caso di problemi con la pubblicazione, è disponibile una guida.
segnaposto

2
Il resistore di spurgo è di piccole dimensioni e consuma una potenza considerevole rispetto alle esigenze di standby tipiche. Se riesci a rilevare il brownout nel software, imposta un programma che "conta" sull'uscita UART partendo dal brownout e monitoralo mentre tira l'alimentatore e vedi quanto dura, calcolando indietro attraverso il suo baudrate. Attenzione anche alla possibilità di alimentare inavvertitamente le periferiche attraverso le linee dati.
Chris Stratton,

1
Forse puoi provare a dare all'arduino un output indipendente (seriale, i suoi LED discreti) in modo da poter fare una piccola indicazione di debug lì che l'arduino si è ripristinato, distinto dal suo successo nel parlare con la striscia LED. Suppongo che la striscia LED non abbia nemmeno un reset, distinta dalla normale progressione dei suoi stati ogni volta che accedi a esso?
Chris Stratton,

Risposte:


3

È possibile utilizzare un super condensatore (1F / 5,5 v) dopo il diodo, collegandolo direttamente a VCC e GND. Questo ti aiuterà a potenziare il potere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.