¿Cómo programar un microcontrolador sobre otro microcontrolador?

Actualmente estoy trabajando en un proyecto que requiere dos microcontroladores separados para trabajar juntos, pero como todavía estoy trabajando en el proyecto, generalmente necesito actualizar sus programas.

No pude encontrar una solución a mi problema y es por eso que estoy programando el segundo microcontrolador desconectando las conexiones UART y conectándolo al adaptador USB a TTL. Después de la programación, vuelva a hacer esas conexiones con otro microcontrolador.

Como ven, es largo incluso cuando lo estoy describiendo.

Estoy usando dos AVR. (Atmega32 y Atmega328p). ¿Hay alguna manera de programar 328p con 32?

NOTA: En configuración operativa son comunicación vía comunicación serial. Quiero programar uno con otro sin cambiar esta configuración.

¿Cómo estás programando el primero?
@IgnacioVazquez-Abrams Con módulo RF.
¿El módulo tiene un GPIO que puede controlar fuera del canal?
@IgnacioVazquez-Abrams Sí, pero es casi imposible clavarle un alfiler. No hay pasadores soldados a él.

Respuestas (1)

Básicamente, su tarea será programar un cargador de arranque en el que está al final. Ese cargador de arranque deberá aceptar comandos específicos a través de UART, lo que hace que se reinicie (¿perro guardián?) y luego ingrese a la sección del cargador de arranque. Desde el gestor de arranque, volverá a aceptar datos que sobrescribirán su área de aplicación. Una vez finalizada la actualización, inicie la sección de su aplicación (hasta que reciba el comando para actualizar nuevamente).

¿Está planeando un rediseño en este punto?

Supongo que excede mis conocimientos si no me estoy perdiendo un punto.
¿Conoces el concepto de gestor de arranque?
No es suficiente. Sé lo que es un gestor de arranque, pero no sé cómo programar uno.
Es posible que desee leer esto: electronics.stackexchange.com/questions/112440/… . No piense en el cargador de arranque como algo muy complejo y difícil. Básicamente es un programa propio que puede sobrescribir ciertas posiciones en flash. Necesita algún método para cambiar de su aplicación al cargador de arranque y viceversa. La forma más fácil de hacer esto es usando un pin dedicado, pero también se puede usar un comando enviado a través de UART. Ciertamente es algo de trabajo, pero se puede hacer.
Le eché un vistazo al tema y me parece razonable. Voy a darle una oportunidad. Parece que es una solución.