Hello. I'm working on a project that uses a MAX6412UK26T reset circuit that is set up to provide a 20-mS reset pulse to the Arduino Mega2560 as well as other peripheral circuits. The MAX6412 has a pushbutton manual reset input that can alternatively be driven Low by "external logic circuitry", to quote the datasheet.
In the code I would like to be able to reset the entire system by sending a low-going pulse from the Arduino to this input. In the beginning of the setup() section of the sketch I have the reset trigger pin set high immediately to avoid an inadvertent reset:
void setup()
{
digitalWrite(resetTriggerPin, HIGH); // Turn on the reset trigger pin's pullup resistor
pinMode(resetTriggerPin, OUTPUT); // Set the reset trigger pin to an Output
digitalWrite(resetTriggerPin, HIGH); // Drive the reset trigger pin High
At a later point in the sketch when I want to initiate a reset I drive the pin low and then put the processor into an endless loop:
digitalWrite(resetTriggerPin, LOW); // Initiate a reset on the external reset circuit
while (1) {} // Do nothing while waiting for the system to reset
Testing shows that this method of achieving a reset is working as desired. However, I worry about 2 things:
-
Is there a possibility that the reset trigger pin could send out a short Low pulse during its initialization, specifically after being set as an Output but before it has been driven High as an output? This could send the system into an endless reset loop.
-
Is the reset trigger pin not holding the manual reset input on the MAX6412 low long enough? The datasheet says that the minimum pulse width for the manual reset input is 1 uS. Looking at the signal with an oscilloscope reveals that in reality it remains Low for about 500nS and then the level rises again as the system resets.
Can I rest assured that the reset trigger pin will remain High reliably during its initialization and also that, in spite of the reduced manual reset pulse time, so long as the intended reset takes place then the manual reset conditions have been met? Or is there a possibility that the MAX6412 will not reliably reset the system due to the reduction of this pulse length?
Thank you in advance for any assistance!