Paso 3: Programación de alto voltaje y fusible de restablecimiento
Fusibles son fundamentales para un microcontrolador. Definen muchas cosas cruciales, que son necesarios para su funcionamiento.
Generalmente los fusibles son un conjunto de bits que tienen su lugar especial en el microcontrolador. Generalmente 2 a 3 bytes. Cada bit habilita una característica diferente del microcontrolador. Algunas características son EEPROM borrar lock (traba EEPROM para que programación no borrarlo), uso del pin de Reset (pin de IO o Reset), detección de Brown-out (DBO), uso de oscilador externo... Más sobre fusibles y lo que están haciendo aquí...
Pero fusibles también son peligrosos! Se pueden establecer a través de su ISP, igual subir tu programa, pero hay casos en que su ISP es incapaz de restablecerlos. En algunos casos esto ladrillos su microcontrolador completamente. Un ejemplo clásico es el siguiente:
Usted necesita utilizar el pin de Reset como un pin de IO. Subes el código muy bien con su ISP y luego activas el fusible RSTDISBL (el fusible que hace el Reset pin un puerto IO). Ahora el microcontrolador tiene ninguna externa Reset. De repente te das cuenta de que hay un error en el código, para solucionarlo, compilar e intentar resubirlo en el microcontrolador... Ya no puede hacerlo! Esto es porque el ISP usa el Reset externo para hacer que el microcontrolador entienden que es es conseguir programar. Ahora tienes un microcontrolador de ladrillo ...
Sin embargo hay una solución a esto. La solución se llama Alta tensión programador... Rampas de esta bestia hasta pin de Reset del microcontrolador con 12Volts (en vez de 5V) y demuestra quién es el jefe! Serio, microcontroladores están programados para entender eso 12V en los medios del pin Reset "Programación" que los fusibles y de esta manera, usted puede cambiar nuevamente el RSTDISBL a la normalidad (a continuar utilizando un ISP clásico). Usted puede encontrar un sketch de Arduino para reajustar los fusibles de la fábrica (junto con un esquemático) aquí.
Mi Estación de programación implementa una fuente de alimentación externa (controlada por un transistor por la señal de Reset de ISP) para ser utilizado como fuente de 12V. Esta forma de Programación de alto voltaje (y rescate del ladrillo) es posible...