You are on page 1of 11

GUIA PARA SUBIR SKETCH DESDE EL ENTORNO DE ARDUINO A

MICROCONTROLADORES ATMEGA328P-PU CON EL BOOTLOADER


PRECARGADO

GUSTAVO ADOLFO LOZANO COTES


COD. 1010213018
glozanoc@ucentral.edu.co

ELECTRONICA II

ING. JORGE ELIECER LOPEZ

FACULTAD DE INGENIERA ELECTRNICA


UNIVERSIDAD CENTRAL
BOGOT COLOMBIA
2014

INTRODUCCIN

Al tener un ATMega328P-PU con el bootloader precargado, ya se pueden cargar


en l sketch desde el entorno de arduino.
CMO PUEDEN CARGARSE LOS PROGRAMAS?
Resulta que los sketch se envan mediante los pines de comunicacin serial, este
se puede lograr mediante pasos muy sencillos, yo dira que hay alrededor de 4
formas de hacerlo, muy parecidas entre s, por lo que se buscar utilizar las 4
formas que solo diferencian acorde a los medios que se tengan: por otro arduino,
por RS232 de FTDI o por un conversor USB-TTL.
EXISTE ALGUNA OTRA FORMA?
Resulta que si, pero entonces no tendra sentido utilizar el bootloader y si se usa
este sistema el bootloader colapsa y no permite usar nuevamente una
programacin por comunicacin serial. Estamos hablando es de programacin por
ICSP que por la que se instala el bootloader pero tambin puede quemarse por
este medio cualquier otro sketch de arduino (incluido como anexo este
documento) pero se perder el bootloader.
EXISTEN VENTAJA ENTRE ESTAS FORMAS DE PROGRAMAR?
En realidad si las hay, un claro ejemplo de conocer si el bootloader est cargado y
es conectando un led en el pin 19 del micro y al resetear el ATMega328P-Pu, el
led parpadear 2 veces y luego empezar el programa en cambio mediante la
programacin por ICSP no pasa eso, no hay retraso en el programa, simplemente
empezar inmediatamente; este pequeo retraso puede ayudar en algn
programa que lo requiera.

Gustavo Adolfo Lozano

PROCEDIMIENTO

Primer Mtodo: Arduino UNO


1. Para este caso lo que se hace es sencillo, podemos sacar el chip de
nuestro arduino y poner nuestro ATMega328P-PU con el bootloader
cargado y luego cargamos el cdigo normalmente y despus de ello,
montar el siguiente esquema, el cual se conoce tambin con el nombre de
Arduino Stand Alone para consultas en internet :

Los materiales usados en el esquema son:

(x1) ATMega328P-PU con bootloader precargado


(x1) Pulsador
(x1) Led difuso
(x1) Resistencia 220
(x1) Resistencia 10k
(x2) 22pF cermico
(x1) Cristal 16MHz

2.

Una vez montado, podemos configurar la siguiente conexin de los pines


segn si representacin con el arduino:

28

27

26

25

24

23

22

21

20 19

18

17

16

15

11

12

13

14

10

3. Existen en internet versiones de impresin con las que se puede pegar


encima del microcontrolador imgenes parecidas a estas y as tener
presente la correspondencia de los pines del micro con las de una tarjeta
arduino.
4. Ya con lo anterior, se puede usar solamente el microcontrolador en vez de
tener que emplear la placa entera, este procedimiento se recomienda luego
de haber probado el cdigo en la placa y este haya funcionado a la
perfeccin, pues para un montaje en baquelita ya no se podr volver a usar
este tipo de programacin.

Segundo Mtodo: Arduino UNO (sin cambiar los micros)


1. Esta forma de hacerlo tambin requiere de un arduino que en su placa se
use un microcontrolador tipo DIP, puesto que el primer paso es retirarlo de
la placa.
2. Luego lo que debe hacerse es montar el esquema en protoboard del primer
mtodo.

3. Ahora se conectarn directamente (NO cruzados) los pines de Tx y Rx de


la placa con los del microcontrolador con el bootloader precargado que
seran el pin 3 y el pin 2 correspondientemente y el pin de reset
directamente al pin de reset del micro, que sera el pin 1, todo lo anterior
segn el esquema siguiente:

4. Como en el paso anterior no se tiene ningn integrad en la placa arduino,


es recomendable hacer alguna marca al micro que se tiene en la
protoboard para no confundirlo con el de la placa. Luego de esto, se carga
el sketch normalmente y listo, quedar el programa en el micro que tenmos
en la protoboard.

Tercer Mtodo: Arduino SMD


1. Lo que se hace ahora es algo muy similar al segundo mtodo, pues para
cargar los programas se requiere de un Autoreset que esto se hace
automticamente con la placa del arduino, para hacer este proceso con una
placa SMD figura montar un arreglo tal como se muestra en la siguiente
figura:

2. Lo que se hizo, fue conectar el pin de reset de la placa a tierra pues con
esto nos aseguramos que lo enviado por Rx y Tx al micro SMD no llege,
pues este ltimo va a estar siempre reseteado mientras no
desconectemos el pin de reset de tierra. Con lo anterior puede usarse Rx y
Tx de la placa como un simple USB-RS232 con niveles de voltaje TTL, este
truco es tambin usado en la programacin de mdulos Xbee y bluetooth
sin no se dispone de un cable FTDI Basic 5v.

3. Ya teniendo el montaje anterior, debe observarse con atencin los leds de


la placa que dicen Tx y Rx, estos leds son tamien de superficie y se
encuentran cerca del pin 13 de la placa arduino. Figura observar con
atencin estos leds y subir un sketch, que puede ser el ejemlo blink
(parpadeo); para ello lo que se va ha hacer es abrir el entorno de arduino,
en archivo, luego en ejemplos, luego en basics y finalmente en blink as:

4. Sin perder de vista los leds de Rx y Tx de la placa, cargamos el cdigo. Lo


que debe pasar es que esto leds van a parpadear 3 veces y en la pantalla
del entorno de arduino debe salir un error o quedarse subiendo por mucho
tiempo. Esto es para familiarizarnos con el comportamiento de estos
conversores y tambin para la introduccin del siguiente paso
5. Aun no hay ningn programa en el micro, pues el led del pin 19 del micro no
est parpadeando cada segundo como debera suceder con el blink. Para
cargar el programa, volveremos a subir el blink al micro sin perder de vista
los leds de Rx y Tx de la placa. Cuando estos empiecen a parpadear,
debemos presionar el pulsador de reset que tenemos en la protoboard y al
momento empezar a cargar el programa.
6. El anterior paso puede ser tedioso, pues los tres parpadeos de los leds de
Rx y Tx en la placa son un intervalo (que en realidad solo parpadea uno de
ellos, en la mayora de los casos, solo parpadea Rx); son un intervalo de
tiempo en el que se puede hacer el reset manual del micro. En el siguiente
enlace puede verse el procedimiento con sus errores y su resultado:
https://www.youtube.com/watch?v=XXcQ_Bob_Rw
Cuarto Mtodo: Cable FTDI

1. Ahora hemos conocido formas de hacerlo valindonos de placas Arduinos,


pero pueden programarse estos micros por otras formas, esta es una de
ellas, el Cable FTDI es el qe recomienda la Pgina oficial de arduino para la
programacin de la Lilypad, este cable sirve para programr cualquier micro
de Atmel que tenga el bootloader, una imagen del cable es la siguiente:

En Bogot no se consigue en tiendas de electrnica, por lo que puede encargarse


a Medelln en una tienda electrnica en el siguiente enlace:
http://www.didacticaselectronicas.com/index.php?
page=shop.product_details&flypage=flypage.tpl&product_id=912&category_id=93
&keyword=FTDI&option=com_virtuemart&Itemid=28
2. Una vez se posea el cable, se puede buscar su datasheet en la pgina
oficial de Sparkfun o mirar el Pdf del siguiente enlace:
http://www.sparkfun.com/datasheets/DevTools/FTDI%20Cable%205V.pdf
3. En realidad puede encontrarse de 2 formas, si se tiene el BreakBoard
pueden indentificarse sencillo los pines del FTDI, es el de la siguiente
imagen:

O puede conocerse por medio de la siguiente traduccin de la descripcin


de la pgina oficial de sparkfun (tomada de traductor.google.es):
Descripcin: El cable de FTDI es un USB a serie (nivel TTL) convertidor
que permite una conexin fcil con dispositivos de interfaz TTL a USB. Los
pines de E / S de este cable de FTDI estn configurados para funcionar a
5V.
El cable de FTDI est diseado en torno a un FT232RQ, que est ubicado
en un un conector USB. El otro lado del cable termina en un lanzamiento,
conector de 6 pines 0,1 "con el siguiente pinout: RTS, RX, TX, 5V, CTS,
GND (RTS es el cable verde y GND es negro).
Este cable tiene el mismo pinout y funcionalidad que nuestro consejo FTDI
Breakout; se puede utilizar para programar el Arduino Pro, Pro Mini y
Lilypad. Para el uso con los tableros, alinee los cables negro y verde del
cable FTDI con el 'BLK' y 'etiquetas GRN' en el PCB.
Hay pros y contras en el cable FTDI FTDI vs el bsico. El FTDI Basic tiene
grandes indicadores LED, pero requiere de un cable mini-B. El cable FTDI
est bien protegido contra los elementos, pero es grande y no se puede
incrustar en un proyecto con la misma facilidad. El FTDI Basic utiliza DTR
para provocar un reset del hardware en el que el cable de FTDI utiliza la
seal RTS.
4.

Una vez realizado el reconocimiento de los pines, se puede proceder


entonces a programar un sketch en el micro con el bootloader precargado.
Lo primero a tener en cuenta, es que los pines de comunicacin serial
pueden conectarse cruzados (Rx a Tx y Tx a Rx) como normalmente debe
hacerse, tambin deben conectarse los pines de Vcc y Gnd a la protoboard
como normalmente se hace. Ya con esto puede hacerse la programacin
por reset manual como se hico en el tercer mtodo. Lo anterior, as:

5.

Aunque no valdra la pena la inversin en un chip de ese costo para una


programacin de este tipo, por lo que existe un truco para generar un AutoReset en el microcontrolador y no hacerlo manualmente. Por lo que debe
montarse el siguiente esquema parecido al anterior:

6. En el diagrama anterior se usaron los siguientes componentes:

(x1) Cable FTDI 5v Breakout

(x1) Led difuso


(x1) Pulsador
(x1) Resistencia 220
(x1) Resistencia 10k
(x1) Cristal de 16MHz
(x2) Cermicos de 22pF
(x1) ATMega328P-PU con bootloader
(x1) Cermico de 0.1uF (104)

7. Lo que se hace es aprovechar el Pin llamado DTR en el integrado para

generar esto, por lo que puede hacerse este truco con cualquier conversor
USB-TTL para programar los micros de ATMEL con el bootloader
precargado.