Pregunta:
¿Puede el Arduino Uno convertirse en un programador AVR y usar el encabezado ICSP para programar la placa de destino?
Ricardo
2014-03-30 18:21:03 UTC
view on stackexchange narkive permalink

El Arduino Uno tiene un encabezado ICSP que imagino que es para programar la placa usando un programador ICSP separado. Es decir, su encabezado ICSP convierte la placa en un objetivo.

¿Se puede usar ese mismo ICSP para programar otras placas, convirtiendo el Arduino Uno de manera eficaz en un programador ICSP AVR? ¿Cómo?

Estoy asumiendo que las placas de destino también serían Arduinos y quería que Uno las programara usando el IDE de Arduino. ¿Es eso posible?

Al leer la Nota de aplicación de programación en el sistema AVR, me parece que el único problema sería hacer que el programador (el Arduino Uno) controle la placa de destino reajuste la línea. He visto algo así en el boceto de ArduinoISP, pero en ese boceto, el reinicio del objetivo está controlado por el puerto D10. Pero se podría programar la línea de reinicio para que sea una salida, ¿verdad? Entonces, ¿podríamos cambiar el boceto de ArduinoISP para usar su propia línea de reinicio como salida para controlar la línea de reinicio de la placa de destino? Si no es así, ¿por qué no?

Cuatro respuestas:
#1
+5
kiwiron
2014-03-31 13:07:11 UTC
view on stackexchange narkive permalink

Recomiendo salir y comprar un AVR Dragon - cuesta alrededor de 50 dólares. Eso le brinda programación ICSP más depuración de debugwire (usando el IDE de Atmel Studio).

Atmel Studio solo se ejecuta en Windows. Eso está bien si tiene Windows, no tan bien si está usando Linux o Mac.
#2
+5
microtherion
2014-03-31 07:46:58 UTC
view on stackexchange narkive permalink

En primer lugar, tal como está configurado, el pin RESET no se puede utilizar como pin de salida. Para usarlo como un pin de E / S, tendría que programar el fusible RSTDISBL. Pero una vez que hace eso, como dijo jippie, se vuelve casi imposible reprogramar su Arduino (si tiene la variedad de orificio pasante enchufado del MCU, puede sacarlo y ponerlo en un programador de alto voltaje; en todos los demás casos , es efectivamente imposible).

Entonces, en teoría, puede usar el encabezado ICSP de la manera que sugiera. En la práctica, en casi cualquier circunstancia imaginable es una idea terrible.

#3
+4
Ricardo
2014-03-31 16:50:23 UTC
view on stackexchange narkive permalink

Para responder a mi propia pregunta, solo para informar que encontré algo cercano a lo que estaba buscando, que enlazo y describo brevemente a continuación.

Foro de Gammon Software Solutions - Programador de cargador de arranque de Atmega - Cable de programación

En esa página, el autor sugiere que cortemos el pin 5 del cable de programación ICSP de 6 pines, le sueldemos un pin y lo conectemos al pin D10. Así:

Modified ICSP programming cable

Luego, puede cargar el Arduino Uno con el boceto de ArduinoISP y programar la placa de destino como de costumbre.

#4
+3
jippie
2014-03-30 18:50:53 UTC
view on stackexchange narkive permalink

Sí, puede programar el pin de entrada de reinicio de Arduino como una salida y usarlo para programar otro AVR, pero ya no puede programar su Arduino ya que eso depende de que el controlador se reinicie a través de su propio pin de reinicio.

Ahora que lo pienso, no estoy seguro de cómo responden los otros dispositivos (como el controlador USB) al reinicio del controlador de Arduino. Restablece el controlador USB que puede o no restablecer la conexión a la computadora, posiblemente perdiendo datos. Con el controlador USB reiniciado, los pines GPIO D0 y D1 (la interfaz serial entre la PC y el AVR de Arduino) pueden dañar el flujo de datos.

En el R3, la línea nRESET del controlador USB no está conectada a la línea nRESET de la MCU principal, sino solo a su propio conector ISP. Cortar una traza desconectará la línea nRESET de la MCU principal, y si conecta un par de pads ("RESET EN") se volverá a habilitar.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...