No entiendo el concepto Arduino

8

He estado luchando por hacer un Arduino por un tiempo (tuve éxito en hacer una versión de tablero usando un cable de programador ISP ). Dicen que el gestor de arranque Arduino está hecho para que no se requiera ningún circuito externo para programar el ATmega8 . Pero cuando examiné los esquemas, existe el circuito normal requerido para la conexión en serie. Entonces, ¿qué hace realmente el gestor de arranque?

Rick_2047
fuente
1
ningún circuito externo es una afirmación absurda ... para hablar con una computadora a través de un puerto serie, al menos necesita un transceptor RS232, como un MAX232 de algún tipo; o como lo hace el arduino, puede hablar TTL UART directamente a un chip de interfaz USB como FTDI.
vicatcu

Respuestas:

12

El gestor de arranque es un pequeño programa en el flash del AVR que nunca se sobrescribe y se ejecuta en el encendido. El trabajo del gestor de arranque es leer los datos del programa desde el UART y escribirlos en la memoria flash interna. Sin un gestor de arranque, la única forma de cargar código es utilizando ISP.

El AVR ATMega8 viene sin código en el flash. El código se puede cargar a través de los pines ISP (programación en el sistema), utilizando un programador AVR ISP (o incluso otro Arduino).

Para Arduino, el ISP se usa solo una vez (en la fabricación), para cargar un pequeño gestor de arranque. En el encendido, el gestor de arranque se ejecuta y se comunica con el UART serie (pines TX + RX). Ahora, Arduino se puede programar a través de los pines seriales usando el protocolo STK500.

Como los pines en serie están (típicamente) conectados a un USB FTDI a un chip en serie, el Arduino también se puede programar a través de USB.

Toby Jaffey
fuente
Entonces, ¿está diciendo que si tengo un chip atmega8 con un cargador de arranque quemado, puedo eliminar todos los circuitos del ISP y simplemente conectar los pines adecuados de la serie al arduino? También me puede decir cómo voy a conectar la serie con el atmega8
Rick_2047
2
Una vez que tenga el gestor de arranque, aquí hay un circuito Arduino muy mínimo. Conecte su PC (a través de un convertidor de nivel TTL) a los pines TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Vea esta pregunta para obtener más detalles: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey
1
El max232 convierte el nivel de serie RS232 (como viene del conector de 9 pines en una PC) a señales de nivel TTL (5v) adecuadas para hablar con el Arduino / AVR. El circuito max232 puede ser reemplazado por un chip FTDI USB a TTL en serie para conectarse a una PC.
Toby Jaffey
2
Una pequeña nota aquí: el gestor de arranque Arduino solo escucha en el puerto serie el nuevo código durante un tiempo muy breve durante el inicio. Los gestores de arranque más antiguos de Arduino esperan unos segundos antes de comenzar a ejecutar el código. Los cargadores de arranque más nuevos se inician muy rápidamente y la línea DTR debe reiniciarlos desde un FT232. Si planea usar un max232, cargue el gestor de arranque anterior. Consulte también Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) para ver algunos excelentes tutoriales AVR.
bpijls
2
Es el código de objeto AVR real. El Arduino supera a algunas plataformas rivales (por ejemplo, Basic Stamp) en el sentido de que ejecuta el código objeto compilado, no un intérprete.
Toby Jaffey
3

Puedes comprar chips ATmega328 con el gestor de arranque aquí .

Leon Heller
fuente
Acabo de pedir 4 hoy (del sitio ZA) :)
leppie
1

Probablemente significan que si compra un Arduino Uno preconstruido y ensamblado, no necesita comprar un programador. Al igual que con muchos otros kits de inicio de electrónica. Puede programar la placa Arduino Uno con solo un cable usb (A> B).

Sin embargo, si va a construir un Arduino propio, por supuesto necesitará un circuito externo (por ejemplo, un programador AVR ISP) o el tipo de cosas Max232 o FTDI.

Superpelicano
fuente
0

La idea detrás del cargador de arranque de Arduino es que no se necesita ninguna especialidad hardware o circuitos a ellos re-programa, en comparación con la programación inicial de la misma, o microcontrolador mayores, que a menudo necesita un programador dedicado (como PicKit2 para PIC MCU). El gestor de arranque permite la programación a través de una conexión serie básica.

Por supuesto, en ese momento, necesitaba el enlace en serie, generalmente un convertidor rs232 de TTL a RS232. Luego, los puertos seriales se eliminaron gradualmente, usb a serial se volvieron ubicuos, permitiendo que eso reemplazara un max232 o similar. Y ahora, el uso del microcontrolador Atmel habilitado con USB permite incluso que eso sea innecesario, por lo que un solo ic con partes pasivas mínimas podría proporcionar las funciones Arduino y USB a serie. Ahora solo necesita un cable usb y algunos pasivos para cargar un boceto. La programación inicial del gestor de arranque todavía requiere la programación tradicional ICSP.

Transeúnte
fuente