||[[http://hl.cenditel.gob.ve/wiki/|wiki comunidad]] ||[[http://wiki.cenditel.gob.ve/wiki/hlpd|Proyecto Hardware Libre Cenditel]] ||[[http://www.cenditel.gob.ve/|Página Cenditel]] ||[[http://wiki.cenditel.gob.ve/wiki|wiki Cenditel]] ||[[http://fsl.cenditel.gob.ve/|Plataforma de Desarrollo Colaborativo]] || = Seminario AVR = <> <
><
> {{attachment:logohl.png||height="132",width="180"}} {{attachment:logohl.png||height="132",width="180"}} {{attachment:logohl.png||height="132",width="180"}} == Programas disponibles == ||'''Eclipse''' ||'''AVR-Studio''' ||'''AVR-Bascom''' || ||AVR plugin de Eclipse 2.3Complemento multiplataforma, diseñado para trabajar con aplicaciones de la serie Atmel AVR, integra la herramienta AVR gcc de eclipse haciendo mas sencillo su manejo por el parte del desarrollador. ||Entorno de desarrollo integrado, gratuito, diseñado para escribir y depurar aplicaciones AVR en ambiente Window ||Compilador de BASIC para AVR, diseñado para entorno window || === Instalación de Herramientas Libres GNU-GCC === ==== Herramientas requeridas ==== * Binutils-avr . Los paquetes .deb para arquitecturas de 32 bits y 64 bits se pueden descargar [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/b/binutils-avr/|aquí]]. Allí se elige la versión más actualizada y la arquitectura adecuada. * GCC-avr . Al igual que el Binutils-avr, el GCC-avr precompilado se puede descargar [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/g/gcc-avr/|aquí]]. Y como lo anterior, descargar la versión más actualizada y acorde con la arquitectura del computador. * AVR-libc . Puede ser descargado [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/a/avr-libc/|aquí]]. Para este, el mismo consejo que con los anteriores solo que ahora no importa la arquitectura. Al disponer de los programas anteriores, ya se puede ampezar a escribir código en lenguaje C para la programación de los microcontroladores AVR, pero para poder acceder a ellos y grabar en su memoria se deben disponer de algunos otros programas. ==== Herramientas opcionales ==== Como con los anteriores, la versión precompilada actualizada se puede descargar de * AVRDUDE. Esta herramienta, para los objeivos de este tutorial, es necesaria; ya que con ella se realizará, en un principio, la programación de los microcontroladores. Para poder utilizar programadores que utilizan puerto usb(nuestro caso) se debe instalar '''libusb''' antes de instalar el AVRDUDE . [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/a/avrdude/|Descargar]]. Las que siguen son opcionales por el momento, pero más adelante se hará uso de ellas: * GDB-avr . [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/g/gdb-avr/|Descargar]]. * SimulAVR . [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/s/simulavr/|Descargar]]. * AVaRICE . [[http://ubuntu.media.mit.edu/ubuntu/pool/universe/a/avarice/|Descargar]]. ==== Instalación mediante los repositorios oficiales ==== Trabajando en Linux (Debian o ubuntu), se pueden instalar/rectificar con el siguiente comando: {{{ # apt-get -f install binutils-avr gcc-avr avr-libc avrdude gdb-avr simulavr avarice }}} El comando anterior instalará las mismas herramientas de los apartados anteriores solo que con versiones de los repositorios, algo desactualizadas === Utilización del AVRDUDE === Una vez instalado este programa, comprobaremos que efectivamente así fue. Para ello escribimos en una terminal el comando: {{{ $ avrdude }}} La salida de este comando debería ser algo como: {{attachment:avrdude_terminal.jpg| Opciones del AVRDUDE |width=1080}} Lo anterior es la lista opciones del AVRDUDE. Ahora que ya sabemos que el programa funciona, se deben conocer algunos parámetros que hay que indicarle al programa para su funcionamiento. Primero tenemos que saber que programador estamos utlizando. En este caso los que se utilizarán son la tarjeta de desarrollo AVR DRAGON y el programdor USBasp. La opción para indicar que programador se va a utilizar es -c. Si a esa opción le sigue cualquier letra o simbolo, obtendremos una lista de los programadores soportados y con cual nombre los identifica el AVRDUDE. La orden podria ser: {{{ $ avrdude -c p }}} Obendremos lo siguiente: {{attachment:avrdude_programadores.jpg| Lista de programadores |width=1080}} En la lista que se desplegará en la terminal, se debe ubicar que programador estamos utilizando. En nuestro caso son dos; para el USBasp el comando para especificarlo es "usbasp" y para la tarjeta AVR DRAGON en modo de programación ISP es "dragon_isp". El modo de programación ISP se utilizará en un primer momento, luego se verán otros modos. Después de saber el programador a utilizar, debemos identificar con que código está especificado en el programa el microcontrolador que vamos a utilizar. Esto se puede hacer tecleando: {{{ $ avrdude -c dragon_isp }}} Con el comando anterior se obtendrá como resultado lo que se muestre en la imagen siguiente: {{attachment:avrdude_micros.jpg| Lista de microprocesadora |width=1080}} Esta es la lista de microcontroladores soportados por el AVRDUDE. Para nuestros fines prácticos el modelo a utilizar es el ATmega328p el cual está identificado como m328p. Para poder especificar el modelo del microprocesador se escribe: {{{ $ avrdude -p m328p }}} Por último, se debe especificar el puerto en el cual está conectado la tarjeta. Para este caso es el puerto usb. El comando sería: {{{ $ avrdude -P usb }}} Noten que la "P" es mayúscula. Ahora se debe proceder a conectar el programador(AVR DRAGON o USBasp) al microcontrolador. La conexión da la tarjeta AVR DRAGON con el ATmega328p la pueden conseguir [[http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/SCKT3200A2.htm|aquí]] y como podrán notar no se encuentra el modelo 328p pero los que están son similares a este y se puede utilizar la misma conexión. Recuerden que es en modo ISP. Si necesitan la conexión de otro microcontrolador con la AVR DRAGON, la pueden conseguir [[http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon.htm|aquí]], en la sección "Device Connection Sheets". Si tienen problemas con los comandos del AVRDUDE y están seguros que la conexión esta bien, traten de ejecutarlos como superusuario. Para probar todo el conjunto sería: {{{ $ avrdude -c dragon_isp -p m328p -P usb }}} El orden de las opciones no es importante, igual funcionará. Notese que la orden esta escrita como root. La salida en la terminal debe ser algo como: {{attachment:avrdude_dragon.jpg| Lectura del microprocesador |width=1080}} Para la conexión del USBasp, se pueden guiar por las siguientes imágenes: [[http://www.batsocks.co.uk/img/info_isp/ISP%206%20way%20pinout.png|Conexión de 6 pines]], [[http://www.batsocks.co.uk/img/info_isp/ISP%2010%20way%20pinout.png|Conexión de 10 pines]]. Si tienen el USBasp en el que se hace referencia en esta Wiki entonces tendrán un conector de 8 pines. Para su conexión pueden seguir el mismo diagrama que para el de 6 pines y no conectar los pines 7 y 8. También hay que recordar que el pin Vcc no hay necesidad de alimentarlo.