Reset desde el programa

Por desgracia yo no conozco ninguna forma 100% estable para hacer un reset por software. La idea que tu planteas de usar una salida digital con un transistor en colector abierto conectado a la linea de reset es "peligrosa" y no es muy aconsejable.

El motivo de esto es que para garantizar un reset correcto la entrada de reset tiene que permanecer a nivel bajo un cierto tiempo. Si esto lo haces con una propia salida del microcontrolador y un transistor, en cuanto comienza el proceso de reset la salida se pone en alta impedancia y levanta el reset sin completar el tiempo minimo de seguridad.

Una solicion es poner un monoestable (con un 555 o similar) que se dispare por flanco a una salida digital y de esta forma poder generar un pulso de reset que respete el tiempo minimo.

PD. Disculpar pero por alguna estraña razon se me ha desconfigurado el teclado y no he conseguido poner ningun acento :0