[Butia-devel-list] Placa Butiá basada en Arduino Leonardo (usando el micro ATmega 32u4)

Federico Andrade - InCo fandrade en fing.edu.uy
Sab Abr 6 15:41:41 UYT 2013


Nop, he grabado el mismo bootloader para otros micros atmega corren de una.

Esta es la salida dp de haber grabado el bootloader:


fede en leni:~$ avrdude -p m32U4 -P /dev/ttyUSB0 -c avrisp -b 19200 -U
flash:w:arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9587
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.

avrdude: erasing chip
avrdude: reading input file
"arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex"
avrdude: input file
arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex
auto detected as Intel Hex

avrdude: writing flash (32722 bytes):

Writing | ################################################## | 100% 9.66s

avrdude: 32722 bytes of flash written
avrdude: verifying flash memory against
arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex:

avrdude: load data flash data from input file
arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex:
avrdude: input file
arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex
auto detected as Intel Hex

avrdude: input file
arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex
contains 32722 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 19.13s

avrdude: verifying ...
avrdude: 32722 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

fede en leni:~$


Después hay que setearle los fuses, y la salida fue la siguiente:

fede en leni:~$ avrdude -p m32u4 -P /dev/ttyUSB0 -c avrisp -b 19200 -nv
avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"

         User configuration file is "/home/fede/.avrduderc"
         User configuration file does not exist or is not a regular
file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : avrisp

         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0

         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200

         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3

         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
               Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages
MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ----- ---------
           eeprom        65    10     8    0 no       1024    8      0
 9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256
 4500  4500 0x00 0x00

           lfuse          0     0     0    0 no          1    0      0
 9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0
 9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0
 9000  9000 0x00 0x00

           lock           0     0     0    0 no          1    0      0
 9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0
    0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0
    0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel AVR ISP
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V

         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9587
avrdude: safemode: lfuse reads as E0
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB

avrdude: safemode: lfuse reads as E0
avrdude: safemode: hfuse reads as D8

avrdude: safemode: efuse reads as CB
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

fede en leni:~$







Esta es la salida dp de haber grabado el bootload. Descubrí por ahi que el
bootloader cuando está funcionando prende y apaga un led en una de las
patas del micro, entonces le puse el led y efectivamente le mismo está
corriendo.
Sin embargo sigue fallando la comuniación usb entre la placa y el micro.

Acá está la prueba
http://www.youtube.com/watch?v=t-e35YtVw-g&feature=youtu.be


Alan, eso que me pusiste por ahi...no lo puedo hacer, ni siendo root..
tenés la fuente?
sabés bien que es lo que genera?




2013/4/5 Andres Aguirre <aaguirre en fing.edu.uy>

> y el bootloader no esperara que toques un botón al iniciar para arrancar a
> ejecutar ?
> generalmente el código de los bootloader es:
>
> if(condición_ejecución)
>     //código del bootloader
> else
>     //salto a posición donde se encuentra el código del usuario
>
> slaudos
>
>
>
> 2013/4/4 Federico Andrade - InCo <fandrade en fing.edu.uy>
>
>> En el micro grabé el bootloader que viene con la placa Arduino Leonardo.
>> Exactamente el mismo, además fueron seteados los fuses tal cual la placa
>> Arduino Leonardo (que tiene el mismo micro). Al final del proceso de
>> grabación, el programita que graba, leé la memoria y hace un checksum de lo
>> que leyo comparado con lo que queria grabar y eso dio bien, o sea que estoy
>> bastante seguro que el checksum esta ok.
>>
>> Creo que el error viene por otro lado :S
>>
>>
>> 2013/4/4 Andres Aguirre <aaguirre en fing.edu.uy>
>>
>>>
>>> 2013/4/4 Federico Andrade - InCo <fandrade en fing.edu.uy>
>>>
>>>> device descriptor read/64, error -32
>>>
>>>
>>> primero que nada, que tiene dentro el micro? viene de fábrica o le
>>> grabaste algo??
>>> Cuando uno conecta algo al USB se da un proceso llamado enumeración
>>> entre el dispositivo y el host, es básicamente un protocolo que permite que
>>> el sistema operativo descubra que tipo de dispositivo es y asigne recursos
>>> para el
>>> http://support.atmel.no/knowledgebase/avr32studiohelp/AT32UC3A_Software_Framework/DRIVERS/USBB/EXAMPLES/ENUM_EXAMPLE_FREERTOS/DOC/html/usb_host_task.jpg.
>>> En este protocolo el device intercambia descriptores con el host, esto
>>> tiene que estar implementado por tu micro por vos o por una biblioteca del
>>> fabricante que implemente el stack usb. Hay muchas cosas interesantes acá
>>> que uno puede especificar que está bueno para charlar más adelante.
>>> Asegurate que tengas los bits adecuados en tu micro.
>>> saludos
>>> andres
>>>
>>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://www.fing.edu.uy/pipermail/butia-devel-l/attachments/20130406/234febc9/attachment.html


Más información sobre la lista de distribución Butia-devel-l