La programación de campo es importante en este mercado. Tener múltiples opciones ayuda. Algunos productos, tanto de Atmel como de otros, tienen un gestor de arranque que no podemos reprogramar, ya que el uso de pines de correa le permite seleccionar usb, serial u otros. Algunos solo intentan detectar lo que quieres hacer y otros solo tienes una opción, jtag por ejemplo, o serial.
Me gusta la solución AVR porque el procesador se mantiene en modo de reinicio, así que si (yo) hago algo estúpido (sí, ya hice eso) y cuelga el procesador (digamos que habilita los relojes desde el pll sin configurar correctamente el pll), o reconfigura los pines gpio equivocados para encontrar esos fueron los pines que necesitaba para la interfaz de programación. Bueno, usted puede terminar con una tabla de ladrillo o chip. Mantener el procesador en reinicio al menos nos protege de nosotros mismos.
La interfaz de programación está bien documentada. Los xmegas o con los que jugué utilizan una interfaz completamente diferente a la de los pequeños y demás. Los más pequeños son solo SPI y usted puede tomarse su tiempo, restablecerlos, podría usar los conmutadores y darles la vuelta a mano si lo desea. El xmega el tiempo es crítico, esperas mucho y el chip sale del modo de programación. (no es spi) En cualquier caso está bien documentado.
Puede usar las soluciones disponibles en el mercado y usar avrdude o lo que sea, pero estas interfaces son simples, y puede usar cualquier cosa con la que pueda generar spi (otros microcontroladores, una frambuesa pi, cualquier parte / tablero ftdi con instrucciones mpsse y los pines expuestos, lo que sea). Y desarrollar el tuyo no es una tarea difícil. Educativo, y quizás en su línea de producción puede o no desear usar avrdude, o tal vez no pueda por alguna razón.
Sí, esta interfaz AVR ISP se puede utilizar para programar un cargador de arranque o cualquier aplicación que desee. No tiene que hacer una cosa con una interfaz y la otra con una interfaz diferente.
¿Por qué usar otro cargador de arranque entonces? Bueno, un cargador de arranque en serie podría usar tan solo uno o dos pines, o tres si desea una correa o, en el caso de arduino, usan un tercero para reiniciar el chip y luego enviar algo antes de que el cargador de arranque entregue la aplicación.
Por lo tanto, a veces usted quiere usar una serie en su diseño para la programación de campo, reducir los pines o eso es lo que prefiere. Es posible que desee jtag, que quiera usb o, en este caso, utilice el ISP de AVR todo el tiempo. Algunos chips le permiten borrar / escribir bloques flash mientras se ejecuta en un bloque flash, lo que significa que puede escribir su propio cargador de arranque utilizando el protocolo que desee. Que es lo que hizo la gente de Arduino, dicen que admiten algún protocolo, pero miran el código del cargador de arranque para ver la verdad.
Ya sea que use el hardware y el software de estante o lo haga por usted mismo, esta interfaz AVR ISP es probablemente la mejor manera de instalarlo en un dispositivo y programa, luego enchufar un zócalo y listo, una grabación y listo. Esp, si terminas con un error en el software puedes volver al programador y reprogramarlo. Los flashes borrados y no borrados son igualmente compatibles.
Así que la conclusión es sobre la libertad de elegir. Programe en un accesorio y luego mueva la pieza, el programa en su lugar, el RE-programa en su lugar, la velocidad de programación, los pines requeridos, los requisitos de software, la programación del hardware del hardware / software / los requisitos de costo. No hay una solución que haga felices a todos. Por lo tanto, el proveedor proporciona una o dos o tres soluciones, y algunas veces puede agregar las suyas por encima de eso.
PERO, debería haber leído la documentación del proveedor de chips para el producto en el que estaba interesado, todos brindan información de programación, sin esa documentación, ese producto es un error porque nadie podría usarlo en una línea de producción. No es nuestro trabajo leer los documentos por ti.