Minimum pulse length when triggering an external reset IC

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:

  1. 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.

  2. 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!

RedDog339:

  1. 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.

The trigger pin is in input mode when the controller resets. Set it to HIGH BEFORE you make it an output, and you are safe

RedDog339:
2) 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.

You answered that youself: the pulse you observed is less than the minimum pulse required by the datasheet. You are using a feature outside of the specs. So it may not work reliably

Thank you for the reply. I guess I was just in need of another person to tell me what I already knew.

I added a pulse-extender circuit using a resistor, cap, diode, and 2 schmitt trigger inverters and now the reset trigger pulse is a nice 3 uS long.

You're overthinking the the whole issue, no pulse stretcher required. Save the extra parts, they're just consuming board space and power. Even worse is that they represent another possible failure point.

The 2560 output pin will remain low only long enough to force the MAX6412 to generate a reset. So what if it's only 500ns, the MAX fired. The 2560 output is always going to stay low long enough for the MAX to fire.

Once triggered, there is no additional reset possible until the MAX times out, period. None of that relay race stuff you were thinking about, that's the whole point in using the MAX device, that plus the voltage monitoring, isn't it?