¿Cómo planifico la programación en circuito de un AVR?

11

Mi método habitual de reprogramación de AVR (hasta ahora limitado a ATtiny13 y ATtiny2313) es desconectar el chip del circuito principal, enchufarlo a otra placa con todas las conexiones ICSP en su lugar, programar y luego reemplazar. Sin embargo, sigo escuchando que uno puede programar el chip en su lugar (que es, entiendo, todo el punto del ICSP).

¿Hay alguna consideración especial de hardware que se deba tener en cuenta antes de programar el chip in situ? Por ejemplo, me preocupa que el proceso ICSP pueda dañar los componentes del circuito conectados a los mismos pines AVR que se usan para ICSP. ¿Hay que agregar ocasionalmente diodos o algún otro tipo de búfer para proteger estos componentes?

Sé que esta pregunta suena un poco vaga, y supongo que sí, pero no proporcioné detalles de mi circuito en particular porque me interesan las reglas generales. Es decir. ¿Uno nunca tiene que preocuparse por esto, o la respuesta realmente depende del circuito en particular del que la MCU forma parte?

    
pregunta Tim

3 respuestas

15

He usado ISP para casi todas las tarjetas AVR que he hecho; No hay nada que temer. El AVR ISP mkII manual ofrece un resumen bastante bueno de las limitaciones que necesita Busque en la sección "Interfaz de destino". Básicamente, si ejecuta los pines MISO / MOSI / SCK directamente al programador y tiene aproximadamente 820 ohmios entre ellos y el resto del circuito (y no hace nada extravagante con el pin de reinicio), está bien. No me preocuparía si el ISP dañara otros componentes; No es un programador de alto voltaje. Todas las señales se ejecutan a 5 V, por lo que si puede dañar un componente externo, también lo puede hacer su microcontrolador.

Si realmente estás atrapado con una placa que no permite la programación del ISP, al menos trataría de usar un zócalo ZIF para tu placa de programación. Son caros, pero mejorarán en gran medida su calidad de vida.

    
respondido por el phooky
1

Use un puente o un interruptor para poder desconectar físicamente el encabezado de ICSP. De esta manera, puede compartir los pines con otras funciones sin preocuparse y sin tener que jugar con sus otros componentes.

Esto parece ser la solución más obvia y segura, y es lo que uso.

(Se eliminó mi primera respuesta, por lo que he intentado agregar más detalles).

    
respondido por el Ali Afshar
0

Lamentablemente, no puede hacerlo en la programación de circuitos para sus AVR si las patillas son compartidas por otras funciones, por ejemplo, los LED de iluminación. Aunque podría funcionar, no está garantizado, ya que puede hacer que las salidas del programador o de µC caigan demasiado bajas para que funcione.

Otra alternativa es ordenar tus chips preprogramados. Sé que Microchip ofrece esto para algunos de sus chips, pero no estoy seguro de Atmel.

    
respondido por el Thomas O

Lea otras preguntas en las etiquetas