ATMEL STUDIO 6 , DOS ARQUITECTURAS UN ENTORNO
Atmel® Studio 6 es un ambiente de desarrollo integrado (IDE) para desarrollo y debug-ging de aplicaciones basadas en microcontroladores Atmel ARM® Corte !M " M y Atmel A#R®$ Atmel Studio 6 proporciona un entorno compacto y %&cil de usar para escribir' compilar y debugear las aplicaciones escritas en CC o en c*digo assembler$ assembler$ Atmel Studio 6 es gratis y +iene con una gran librer,a de c*digo %uente libre - con $.. e/emplos de proyectos para ARM y A#R- para agili0ar el proceso de dise1o$ Dispositivos soportados y librerías de software.
Atmel Software Framework (ASF) es un colección de archivos fuente listo para usar, escritos y optimizados por expertos y testeados en cientos de diseños !as li"rer#as para los drivers de perif$ricos, los stacks de comunicaciones y las aplicaciones espec#ficas, pueden ser utilizadas para completar su proyecto r%pidamente y f%cilmente Atmel Software Framework tra"a&a con todos los dispositivos "asados en los procesadores A' *ortex+ , A-' .* y A-' /01A, y al2unos me2aA-', es decir mas de 344 microcontroladores 5ara la compilación del códi2o 2enerado en *6*77 tra"a&a un compilador 18. o con 9A' Atmel Software Framework usa un con&unto de interfaces para pro2ramas de aplicación est%ndar (A59s) para todos los microcontroladores Atmel Atmel "asados en procesadores A' *ortex: y AA-' 0sto simplifica como, su códi2o de aplicación se comunica con los perif$ricos del chip y las interfases de comunicación Ase2urando Ase2urando ;ue el códi2o de la aplicación desarrollada se puede mi2rar f%cilmente a todo el porfolio de productos de A+0!
Compilador C/C++ integrado.
Atmel Studio < incluye un compilador 1** * y *77, ensam"lador y un simulador, y una interfaz, sin dificultades con de"u22ers y pro2ramadores =aciendo el desarrollo de códi2o mas f%cil *omenzar un nuevo proyecto p royecto es muy f%cil, el 8ew 5ro&ect >izard confi2ura todos los seteos del compilador y el linker, ;uedando todo listo para comenzar a escri"ir el códi2o Se puede comenzar creando un proyecto en "lanco o seleccionar uno de los mas de ?444
proyectos de e&emplo disponi"les 0l editor de Atmel Studio < simplifica la edición de su códi2o, de&%ndolo mas eficiente 0scri"iendo al2unas pocas letras de un s#m"olo, Atmel Studio < le mostrara un listado de su2erencias 0scri"a un acceso directo para ampliar fra2mentos de códi2o ;ue utiliza con frecuencia 9nstant%neamente se puede ver el contexto y la definición de un s#m"olo con sólo hacer click en $l 5ase el mouse so"re los s#m"olos de códi2o mientras nave2a para ver información relacionada a este 0l @Solution 0xplorer presenta una vista or2anizada de todos sus proyectos y sus archivos, ofreci$ndole un acceso simple a comandos ;ue se aplican a ellos 5uede crear f%cilmente aplicaciones conteniendo mBltiples microcontroladores y desarrollar el códi2o para todos ellos dentro de la misma solución
Debugging y simulación.
Atmel Studio < se conecta sin pro"lemas a todas los de"u22ers y pro2ramadores de Atmel •
•
A#R Dragon !M 2!A3ICE4
•
A#RE 5E7
•
SAM ICE
Aprovechando la venta&a de los modernos microcontroladores Flash, de enviar datos de de"u2 a la 5*, Atmel Studio < nos da una perfecta visión de lo ;ue esta sucediendo dentro del microcontrolador 5uede presentarnos el estado del procesador, la memoria y todas las interfases de comunicación y analó2icas en vistas ;ue pueden ser f%cilmente entendidas, ofreciendo de esta forma acceso a par%metros cr#ticos del sistema Cando de esta forma el camino m%s r%pido para identificar un pro"lema y optimizar el diseño, ya sea en el la"oratorio o en el campo
Simulation
0l simulador de Atmel Studio < modela con precisión la ar;uitectura A-' y sus dispositivos Simula la *5., incluyendo todas las instrucciones, interrupciones y la mayor#a de las entradas salidas analó2icas incluidas en el chip 0ste simulador en la actualidad sólo es compati"le con los dispositivos A-' 0l simulador opera dentro del Atmel Studio < aplicación como un d estino de depuración 0sto permite al usuario utilizar los comandos de depuración normales, como 0&ecutar, 5ausa, 'eset, paso a paso, "reakpoints, etc !as entradas : salidas, la memoria y re2istro son completamente funcionales utilizando el simulador httpD66wwwatmelcom6icrosite6atmelEstudio<6defaultaspx httpD66wwwatmelcom6icrosite6atmelEstudio<6videosaspx
Herramientas Para la Compilación de Programas 5ara compilar pro2ramas en ensam"lador, * o *77 es necesario contar con la cadena de herramientas Atmel A-' +oolchain, la cual cuenta a su vez con las aplicaciones necesariasD compilador *6*77, assem"ler, linker, de"u22er e incluso li"rer#as en * para el desarrollo de pro2ramas +odas estas aplicaciones son tipo command line, es decir ;ue de"en e&ecutarse desde una ventana de comando SCGS, sin em"ar2o su uso se simplifica
con el uso de un 0ntorno de Cesarrollo 9nte2rado, el cual permite escri"ir el códi2o de pro2rama y compilarlo desde la misma interfaz 2r%fica 5ara ello dos de las alternativas m%s populares sonD •
•
A! "tudio #D 0s el 0ntorno de Cesarrollo 9nte2rado (0C9) oficial de Atmel, cuenta con todas las herramientas necesarias para escri"ir, compilar, depurar y pro2ramar microcontroladores A-', todo desde la misma interfaz 2r%ficaH el instalador completo tiene un tamaño de un poco m%s de <44I y puede ser "a&ado 2ratuitamente de este enlace, previo llenado de un formulario de re2istro $inA! D 0s un con&unto de aplicaciones ;ue permiten escri"ir, compilar, depurar y pro2ramar microcontroladores A-', incluye los e&ecuta"les del Atmel A-' +oolchain los cuales son e&ecutados de manera transparente 0ste 0C9 no es tan completo ni sofisticado como el anterior, sin em"ar2o posee las herramientas necesarias y su tamaño de descar2a es menor (menos de 34I) 5ude ser descar2ado 2ratuitamente del enlace respectivo en el sitio oficial del proyecto >inA-'D httpD66winavrsourcefor2enet6
#IS8A9 MICR5 E A!ME9 S!8DI5 6$ Arc:i+o-;ue+o-;S
Cesde ahi podremos crear un nuevo sketch de Arduino y por supuesto, al i2ual ;ue el 9C0 ori2inal, de"emos seleccionar la placa correcta y el puerto *G donde est% conectadaD
*omo se puede ver, estan todas las placas de Arduino y para los m%s avispados, ha"reis visto ;ue tam"i$n soporta la versión ?Jx de Arduino, ;ue es la necesaria para utilizar el Arduino C.0 0n mi caso, he pro"ado con un Arduino .8G y ha funcionado todo a la primera 0l funcionamiento es muy similar a la hora de compilar y pro2ramar la placa 5ara compilar6verificar podemos pulsar directamente %& o "ien en el menB '(uild / (uild "olution' y para car2ar el pro2rama en la placa, iremos al menu 'Pro)ect / *pload ast ",etc- (uild'
El programador >ue se o%erta en la tienda +irtual permite programar cual>uier microcontrolador A#R de A!ME9' los cuales se di+iden en dos grupos? A!ME3A >ue son de muc:os pines y los A!!I@ >ue son los de pocos pines$ El programador no tiene un 0*calo debido a >ue cada microcontrolador tiene las terminales de programaci*n en pines di%erentes y el programador A!ME9 de la tienda +irtual es un programador uni+ersal de los microcontroladores A!ME9$ PRIMEROS PASOS:
A#R -bit 38 !oolc:ain? Release 4$B$$ !:e A#R -bit 38 !oolc:ain supports all A#R -bit de+ices$ !:e A#R -bit !oolc:ain is based on t:e %ree and open-source 3CC compiler$ !:e toolc:ain includes compiler' assembler' lin
F C Standard 9ibrary %or A#R -bit 9ayout 9isted belo are some directories you mig:t ant to
A#R -bit 38 !oolc:ain is a collection o% eecutable' open source so%tare de+elopment tools %or t:e Atmel A#R -bit series o% microcontrollers$ It includes t:e 38 3CC compiler %or C and C $ Compiler !:e compiler is t:e 38 Compiler Collection' or 3CC$ !:is compiler is incredibly Teible and can be :osted on many plat%orms' it can target many diQerent processorsoperating systems (motor de compiladores)' and can be conPgured %or multiple diQerent languages (inter%aces de usuarios)$!:e 3CC included in A#R -bit 38 !oolc:ain is targeted %or t:e A#R -bit microcontroller and is conPgured to compile C or C$ UU CA8!I5? !:ere are ca+eats on using C$ See t:e a+r-libc AV$ C language is not %ully supported and :as some limitations$ libstdc is unsupported$UU ecause t:is 3CC is targeted %or t:e A#R -bit MC8s' t:e main eecutable t:at is created is prePed it: t:e target name? Ja+r-gccJ (it: U$eeU etension on MS Windos)$ It is also re%erred to as A#R 3CC$ Ja+r-gccJ is /ust a Xdri+erX program only$ !:e compiler itsel% is called Jcc$eeJ %or C' or Jccplus$eeJ %or C$ Also' t:e preprocessor Jcpp$eeJ ill usually automatically be prepended it: t:e target name? Ja+r-cppJ$ !:e actual set o% component programs called is usually deri+ed %rom t:e suY o% eac: source code Ple being processed$ 3CC compiles a :ig:-le+el computer language into assembly' and t:at is all$ It cannot or< alone$ 3CC is coupled it: anot:er pro/ect' 38 inutils' :ic: pro+ides t:e assembler' lin
Assembler' 9in
re%erenced as 38 as or gas$ inutils includes t:e lin
mat:ematical %unctions (e+eryt:ing mentioned in Kmat:$:;' and a bit more)$ !:us it is a good idea to alays include t:e J-lmJ lin
!ock "its are used for protectin2 pro2ram and data memory (they are used with "oth the A+MN and A-') +hey arenKt uni;ue to AtmelH axim uses them as well, in their secure M4J? products Gther manufacturers use similar protection techni;ues, "ut 2ive them a different name +.+G'9A! C0 A+0! S+.C9G
0ntre sus caracteristicas m%s importantes tenemosD : +iene inte2rado con su propio compilador en *, el A-' 18. * *ompiler (1**) : 5rovee un solo entorno de desarrollo para micrcontroladores de M:"its, 3O:"its y A' *ortex: Creando un nuevo A! C Pro)ect
Al e&ecutar el pro2rama nos aparece la pantalla de inicioH para la creación de un nuevo proyecto hacemos clic en 8ew 5ro&ect
!ue2o aparece la ventana 8ew 5ro&ect, a;ui tendremos tres campos importantes de los cuales ele2ir
0l primer campo ser% el len2ua&e de pro2ramación ;ue utilizaremos, en nuestro caso ele2iremos entre *6*77 o Assem"ler (para los primeros tutoriales)H el se2undo campo a ele2ir es el tipo de proyecto ;ue realizaremos, a;u# tra"a&aremos con 1** * 0xecuta"le 5ro&ectH en el tercer campo colocaremos el nom"re del proyecto y la u"icación de este Al terminar de ele2ir las caracteristicas del proyecto de damos clic en GP e inmediatamente nos aparece la ventana de elección de microcontrolador
A;ui ele2iremos el tipo de microcontrolador con el ;ue tra"a&aremos, en este caso estamos eli2iendo un microcontrolador de la familia me2aA-' de M "its y el microcontrolador ele2ido es el A+me2a?< !ue2o de dale clic en GP nos aparece el entorno de pro2ramación
A partir de ahora ya podemos a empezar la pro2ramación, sin em"ar2o antes de empezar es recomenda"le setear un par de caracteristicas importantes Definición de la %recuencia de !elo)
!a primera es la frecuencia de relo& ya ;ue al2unas li"rerias (por e&emplo la li"reria delay) necesita la definición de dicha frecuencia para mostrar los resultados esperados 5ara esto vamos a la "arra de menu y le damos clic en 5ro&ect y lue2o en (nom"re del proyecto) 5roperties
9nmediatamente se nos a"re una nueva pestaña, a;ui vamos a la opcion +oolchain y ele2imos Sym"ols, se2uidamente en la ventana Cefined Sym"ols (:C) hacemos clic en el icono Add 9tem (la ho&a con una cruz verde) y nos aparece la ventana Add Cefined sym"ols (:C)
Ahi colocamos lo si2uiente, por e&emplo si se va a tra"a&ar con una frecuencia de relo& de M=z se escri"e FE*5.QM444444 y le damos clic en GP Definición de ibrerias 0ternas
0n el caso de ;ue tra"a&emos con li"rerias externas vamos a la opcion Cirectories hacemos clic en el icono Add 9tem (la ho&a con una cruz verde) y nos aparece la ventana Add 9nclude 5aths (:9)
0n esta ventana ele2imos la ruta en donde se encuentra nuestras li"rerias externas, en este caso las li"rerias estan en *DR.sersRuserRCocumentsRAtmel!i"s, lue2o le damos clic en GPy 2uardamos el proyecto 0sta solución tomar% los datos de las li"rerias externas, compilar% el códi2o y 2enerar% un hex, pero no copiar% las li"rerias a la carpeta de nuestra solución "olution
0plorer
0n el caso de ;ue ;ueramos compartir tanto nuestro códi2o como las li"rerias usadas lo recomenda"le es crear carpetas de forma &erar;uica y ordenada 5ara la creación de carpetas, hacemos click derecho en el proyecto, vamos a Add y creamos un nuevo folder 8ew Folder
0n este caso crear$ tam"ien una su"carpeta llamada .A'+ donde ir%n los archivos de mi li"rer#a
5ara a2re2ar los archivos de mi li"rer#a a la carpeta .A'+ creada, hacemos click derecho en la carpeta, ele2imos Add y seleccionamos 0xistin2 9tem
Iuscamos la u"icación de nuestras li"rerias, las seleccionamos y presionamos Add
como vemos las li"rerias han sido correctamente a2re2adas
Al2o importante al tener en cuenta es lo si2uiente, al incluir en nuestro códi2o las li"rerias, si estas son de forma externa de"emos usar Tinclude Uuart6uarthV , pero si las incluimos a traves del Solution 0xplorer de"emos usar Tinclude uart6uarth Compilación
5ara la compilación de pro2rama desarrollado, en la ventana principal hacemos clic en Iuild Solution
Si la compilación fue exitosa, en la parte inferior se mostrar% el mensa&e Iuild succeeded, en caso contrario mostrar% los errores encontrados y descripciones de estos errores Al2unas consideraciones finales de la pro2ramacion en *D : !o ;ue esta despu$s de (66) es considerado como comentario : (W) D Si2nifica ;ue el nBmero esta en hexadecimal : 4Ixxxxxxxx si2nifica ;ue el numero in2resado esta en "inario