Hay docenas de programadores diferentes, pero todos caen en una o más de estas categorías:
-
JTAG. cualquier programador de JTAG puede programar cualquier dispositivo (no solo los AVR, y ni siquiera los micros) que acepte JTAG. Tengo varios programadores JTAG (Olimex AVR-JTAG-USB, Terasic's Blaster, Abatron BDI2000). Requiere 4 o 5 líneas.
-
PDI. Protocolo de 2 hilos específico de AVR para programación y depuración. Muchos programadores AVR admiten PDI (Dragon, AVRISP, JTAGMkII, etc.)
-
ISP. Protocolo de 5 hilos específico para AVR construido sobre SPI. La mayoría de los programadores AVR admiten esto y creo que todos los AVR lo admiten. El bus pirate también funciona como programador ISP AVR.
-
HVPP. Este modo usa una gran cantidad de pines y usa 12V para programar el dispositivo (a diferencia del suministro normal de 1.8-5V). Nunca he usado esto.
-
HVISP. Protocolo de 5 hilos específico de AVR que se puede usar en las partes de ATTiny u otros AVR a los que se les ha desactivado el pin de reinicio. Utiliza 12V como HVPP, pero con muchos menos pines. El Dragón es uno de los pocos programadores que admiten esta opción.
-
TPI. No sé mucho sobre este método, me parece muy similar al PDI. Se utiliza en los dispositivos ATTiny.
Para mis propias cosas, uso JTAG o ISP ya que ambos funcionan bien en el circuito, pero en un diseño reciente estoy usando ATTiny13A y necesito cada pin, así que uso un Dragón y HVISP para ese diseño. HVISP no está realmente destinado a la programación en circuito y hay algunas advertencias que he tenido que incorporar en el diseño para que funcione.
¿Qué programador es el adecuado para ti? Busque a su alrededor un programador ISP USB económico con un estuche. Obtén un Dragón si realmente necesitas los modos de programación HV, pero probablemente no los necesites en este momento. Digikey o Mouser son las fuentes habituales, pero puedes crear las tuyas propias, usar ebay o cualquier número de sitios como ladyada o sparkfun. Definitivamente no gastes más de $ 50, puedes obtener el Dragón por $ 56 de Digikey.
Quieres un caso para proteger al programador porque una cosa que no quieres es comenzar a adivinar si es tu diseño o el programador el que te está causando dolor. :-)
Editar 1
¿Qué programador usar para AVR32 y XMEGA? Ambos pueden usar JTAG, así que buscaría un programador JTAG. Los programadores de JTAG se pueden construir a partir de casi cualquier cosa, hay diseños caseros / "gratuitos" disponibles, e incluso se puede hacer uno desde un puerto paralelo. Sugiero mirar algo como AVR-JTAG-USB o ByteBlaster ya que ambos cuestan aproximadamente USD $ 50 y están bien soportados por avrdude (el software que programa los AVR en Linux y OSX), pero como dije, cualquier cable JTAG funcionará. Si está utilizando AVR Studio, verificaría su lista de programadores compatibles (un enlace que no pude encontrar, lamentablemente). Sé que sí es compatible con AVR-JTAG-USB, y creo que la recomendación oficial de Atmel es la JTAGICE3 .
Es posible que desee consultar Tutorial AVR de LadyAda : el enlace va a su " Elección de un programador ", pero todo el tutorial es bueno.
Editar 2
¿Por qué la disparidad de costos entre los programadores? Características en su mayoría. Algunos programadores solo pueden hacer ISP o JTAG. Algunos programadores solo trabajan con un VCC específico, o hacen suposiciones sobre si el dispositivo que está programando es alimentado por el programador o no. Algunos programadores no se preocupan por protegerse contra la desconexión, o tienen fuentes de alimentación "tontas" que no se apagan en el caso de cortocircuitos o sobrecargas. Ya mencioné que la mayoría de los programadores NO admiten la programación de alto voltaje (12V) que puede necesitar en algunos casos.
Para comenzar con XMEGA y AVR32, recomendaría el Olimex AVR-JTAG-USB o Terasic ByteBlaster como se mencionó anteriormente. Son razonablemente resistentes, tienen cambiadores de nivel para adaptarse a la fuente de alimentación del dispositivo que va a programar y tienen un precio razonable.