Ich möchte einen ATMEL ATMega328P für etwa 4 Sekunden im Reset belassen, während der Rest des Boards beim Start eine Selbstprüfung durchführt. Ist das ok? Gibt es irgendwelche Probleme, die es schlecht machen würden, den RESET für diesen längeren Zeitraum niedrig zu halten? Ich könnte alternativ den Strom ausschalten, aber es wäre viel einfacher, den Reset einfach niedrig zu halten, da dies mit einem Logikgatter möglich ist.
nRESET hat nur eine minimale niedrige Breite angegeben; es kann länger niedrig gehalten werden und ist es routinemäßig während ISP. Die Ausgangsports haben Tristate, aber die für ISP verwendeten Pins (MOSI, MISO, SCLK und XTAL1) bleiben zum Programmieren des Geräts aktiv und sollten daher separat gegattert werden, wenn das Design dies erfordert.
Beachten Sie auch, dass nRESET auf bis zu 12 V gezogen werden kann, wenn eine parallele Programmierung erlaubt oder erforderlich ist, und jedes Gating muss dies sowie die anderen für die parallele Programmierung verwendeten Pins berücksichtigen.
Wenn Sie den Reset-Pin niedrig halten, wird der ATmega in einen Niederspannungs-Programmiermodus versetzt. Welches die gleichen Pins wie die SPI-Schnittstelle verwendet und im Grunde SPI ist. Wenn Ihr Board also die MOSI- oder MISO-Pins und/oder den SCK ändert, besteht eine geringe Wahrscheinlichkeit einer Beschädigung.
Wie die meisten Mikrocontroller-Datenblätter wird nur die minimale Reset-Zeit (2,5 uS für diesen Teil) und kein Maximum erwähnt. Das Datenblatt erwähnt nicht ausdrücklich lange Reset-Zeiten, aber ich kann mir keine möglichen Probleme vorstellen. Geräteprogrammierer halten das Gerät während und nach dem Programmieren häufig für längere Zeit im Reset-Modus.
Allerdings würde ich normalerweise nur eine E / A-Leitung verwenden, um den Firmware-Start anzuhalten, bis der Rest des Systems bereit ist, es sei denn, Sie haben andere Gründe, einen separaten Reset zu generieren, z. B. eine langsam ansteigende Stromversorgung.
Matt Jung