¿Cómo se debe pasar de usar un Arduino como programador a un programador externo?

12

Parte dos de una serie de tres partes sobre la transición de Arduino a un microcontrolador AVR simple y componentes de soporte mínimos ( parte uno , parte tres )

He visto a mucha gente preguntar esto en Internet, así que aquí va:

Ya sé cómo programar y usar un ATmega328 básico con un Arduino como programador . Ahora quiero comenzar a usar un programador externo con Arduino IDE.

¿Cómo debo proceder en esta transición? ¿Qué debo aprender? (Sería bueno si se proporcionara un mini tutorial para algunas de las porciones como parte de la respuesta)

Manishearth
fuente
2
+1, un excelente candidato para una pregunta de referencia, espero algunas respuestas bien estructuradas y detalladas que sean fáciles de seguir para un principiante, y no respuestas "grabados en un tablero".
Anindo Ghosh
Estoy confundido. Desea pasos para pasar de una metodología a otra. ¿Qué esperas como respuesta? Los tutoriales para usar directamente un programador externo son los tutoriales reales.
asheeshr
@AshRj: La transición y el inicio desde cero son dos cosas diferentes. Si uno sabe cómo usar un Arduino, necesitaría saber cuáles serán las diferencias en los diversos códigos (y los conceptos básicos del uso de un programador).
Manishearth
@Manishearth ¿Qué quieres decir con 'sin un gestor de arranque'?
Polar
@Polar: Básicamente, no quiero que el gestor de arranque Arduino esté allí para ayudarme (lo que sucede si usa un Arduino como programador), solo quiero un ATmega simple en el que todo el código sea mi código.
Manishearth

Respuestas:

6

Nota: Este mini tutorial se basa en la información oficial aquí en el sitio Arduino. También implica el uso del IDE oficial de Arduino.

Nota 2: Los enlaces proporcionados a los productos pueden ser enlaces de Farnell (ya que contienen hojas de datos) o las páginas reales del producto en el sitio web del fabricante.


Paso 1: obtenga un programador externo

Lo primero que debe tener en cuenta es que necesita un programador externo para evitar el gestor de arranque y recuperar los 1K o 2K de memoria que ocupa (12.5% ​​de la memoria total ). Puede usar un AVR-ISP , un STK-500 o un programador de puerto paralelo; el sitio oficial de Arduino tiene instrucciones para esto aquí . Tenga en cuenta que no puede comunicarse con la placa a través del programador paralelo: el consejo es utilizar un cable serie para eso. El principal beneficio de usar un programador paralelo es que son mucho más baratos que los demás si está dispuesto a hacer algo de soldadura: solo necesita unas pocas (3) resistencias y unos pocos conectores, mientras que un ISP puede configurarlo nuevamente. a £ 30 / $ 50 (la tasa de conversión es aproximada).


Paso 2: edite el archivo de preferencias de Arduino

A continuación, deberá configurar el IDE de Arduino para permitirle eludir el gestor de arranque. ¡Asegúrese de NO tener abierto el IDE de Arduino! El archivo de preferencias preferences.txtse puede encontrar en las siguientes ubicaciones, según su sistema operativo:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Windows)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

Para acceder al archivo de preferencias en Windows, vaya al menú de inicio y luego vaya a %appdata%(Nota: no uso Windows regularmente, no dude en corregirme). Luego navegue a Arduino y luego apreferences.txt

En Mac, use Terminal y haga:

cd ~/Library/Arduino
open .

O en Finder use Goto (Cmd-Shift-G) e ingrese ~/Library/Arduino. Ambos te llevan a una ventana del Finder con preferences.txtin.

En sistemas Unix, carpetas que comienzan con un '.' (como .cache, .git) están ocultos por defecto, por lo que en Linux necesitará usar la Terminal e ingresar:

cd ~/.arduino
nautilus .

Nota: Puede reemplazar nautilus con gnome-open si lo desea. Sé que ambos funcionan en los sabores comunes de Linux, pero puede tener problemas con algunos de los sabores más 'exóticos'.

Una vez que haya encontrado el preferences.txtarchivo, ábralo y cambie upload.usingde bootloaderal nombre de uno de los programadores en el ./hardware/programmers.txtsubdirectorio. Si solo desea eliminar el gestor de arranque de una placa, ./hardware/boards.txtpuede cambiar el <board>.upload.usingparámetro y todas las demás placas seguirán utilizando el gestor de arranque. Luego, simplemente guarde el archivo relevante y ciérrelo (mi Arduino se bloqueó y casi pierdo la respuesta, posiblemente porque olvidé hacer esto).


Paso 3: sube el boceto

Una vez que haya editado el archivo relevante, abra el IDE de Arduino nuevamente y cargue el boceto de manera normal. Si acaba de editar ./hardware/boards.txt, solo esa placa en particular no tendrá el gestor de arranque, pero si editó, preferences.txtentonces todas las placas no tendrán el gestor de arranque.


Paso 4: Reemplace el gestor de arranque

Si desea volver a tener el gestor de arranque en sus tableros (por cualquier razón), primero elimine el <board>.upload.usingparámetro o upload.usingvuelva a configurarlo bootloader. Luego, tendrá que volver a grabar el gestor de arranque en las placas afectadas: esta respuesta explica razonablemente bien un método para hacerlo, y hay un método más fácil para cargar el gestor de arranque Arduino solo con un ISP (que debería tener de antes) en el sitio oficial aquí .

Polar
fuente
Supongo que no estaba claro, edité la pregunta para hacer esto evidente: quería descartar más o menos el IDE por completo (lo que significa que tienes que aprender otro lenguaje de programación. Sin embargo, como ya has publicado una respuesta, yo Puede que lo haga como una pregunta separada.
Manishearth
@Manishearth Ah, lo editaré para reflejar eso si quieres. Por otra parte, podríamos hacer más preguntas ...
Polar
Voy a pedir otro, esto va a ser demasiado amplia si me meto en la que.
Manishearth
@Manishearth Ok :)
Polar