No pude encontrar ningún documento de "especificación de programación" por separado en el AVR, fuera de las hojas de datos. Mirando tan atrás como el AT90S2313 (del cual tengo un tubo o dos, todavía), la especificación RESET parece que solo se usa como una técnica de habilitar y no se extrae una corriente apreciable del pin. (Esto es diferente de algunas piezas antiguas de Microchip PIC con las que solía trabajar, que carecían de una bomba de carga interna para la programación de los dispositivos).
Como parece, para estos propósitos de programación de todos modos, NO necesita suministrar \ $ 5 \: \ text {V} \ $ al pin RESET, sino solo \ $ 0 \: \ text {V} \ $ y \ $ 12 \: \ text {V} \ $, usted podría arreglárselas con algo tal vez esto simple:
simular este circuito : esquema creado usando CircuitLab
Cuando el pin I / O es HI, RESET estará cerca de \ $ 0 \: \ text {V} \ $. Cuando el pin de E / S es LO, RESET estará cerca de \ $ 12 \: \ text {V} \ $.
Parece que no hay necesidad de una corriente significativa, por lo que este circuito probablemente funcionará bien.
Sin embargo, tengo una advertencia para incluir. Es posible que desee que este circuito se reinicie a tierra (\ $ Q_1 \ $ tirando activamente hacia abajo) si el pin de E / S no está conectado o cuando la MCU controladora aún se está reiniciando y su pin de E / S está en un estado de alta impedancia antes de estar listo para programar un dispositivo. Si agregué una resistencia al suelo cerca de la base de \ $ Q_1 \ $, esto tendría el efecto contrario (probablemente no se desea). Por lo tanto, esto puede ser un problema que requiera algunos cambios adicionales.
Entonces, quizás un poco más seguro sería:
simular este circuito
En este caso, sin ninguna E / S activa, el BJT se encenderá, presionando RESET. Y, si el pin de E / S es una salida activa, entonces tiene el control normal aquí.