Esto no es una cosa fácil de hacer. Tendría que preparar un programador adicional a bordo, así como un código para comunicarse con él; Es posible que esto se haya hecho antes, pero no lo he visto.
La solución de Nick Alexeev sería correcta si el nivel de selección en el pin de reinicio fuera diferente del nivel de programación, pero son idénticos en la programación en serie de bajo voltaje, que es el método predeterminado. Esto significa que los AVR terminarán respondiendo en paralelo, posiblemente dañando sus búferes de salida MISO y haciendo que sea imposible abordarlos individualmente. La primera vez, mientras se borran todos los AVR, puede salir dejando los pines de restablecimiento en lugar de bajo (ya que el estado predeterminado de las E / S es flotante). Pero eso básicamente rompe con la programación de chips adicionales, a menos que los primeros sepan que deben evitar los pines SPI.
La solución de
pault está más cerca, pero en realidad no es suficiente para manipular las líneas de reinicio individualmente (aunque, obviamente, el AVR maestro necesita el suyo propio); son las líneas MISO y SCK las que necesitan ser separadas. El primero para que los AVR esclavos no puedan dañarse entre sí, el segundo para que puedan ser direccionados individualmente.
Ya que necesitas muchas líneas SCK, esto significa que probablemente no puedas usar el puerto SPI para hablar con los dispositivos esclavos; además, necesita el primer SPI para programar incluso el AVR maestro. A su vez, esto significa bitbanging (control por software) los pines de programación, además de reprogramar la interfaz serie, por lo que las modificaciones de programación de firmware son notables.
Una opción es usar algún tipo de chip extensor de E / S en lugar del AVR maestro, y dejar que el host haga el bitbanging a través de él. Es probable que esto sea más lento, pero la velocidad rara vez es un problema en chips de este tamaño.
En resumen, normalmente es más fácil poner un conector ICSP por AVR. Atmel simplemente no diseñó el protocolo ICSP para varios chips, aunque muchos otros chips SPI lo admiten (a través de un chip selecciona o encadenamiento de margarita). JTAG TAP está diseñado de forma similar para el encadenamiento en margarita.