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

Andres Aguirre aaguirre en fing.edu.uy
Dom Abr 7 11:28:59 UYT 2013


Pero es un bootloader USB?
Activar el usb si no trae el stack USB implementado es como conectar una
placa de red a un pc pero no tener un stack tcp-ip en el Sistema Operativo.


2013/4/6 Federico Andrade - InCo <fandrade en fing.edu.uy>

> Claro, pero no es que yo escribí el bootloader, sino que agarré el
> bootloader que hicieron los de arduino, el mismo que venden quemado en
> todos sus micros para que la gente los pueda programar usando el ide de
> ellos. En particular, agarré el que usan para este micro. Es un bootloader
> que ya está mas que testeado y está en producción.
> De todas fomas, estuve leyendo el codigo y si bien no lo entendí todo, el
> tipo activa el usb sí y hace un montón de cosas con eso.
>
>
> 2013/4/6 Andres Aguirre <aaguirre en fing.edu.uy>
>
>> ese error lo sufrimos mil veces con edgardito en un proyecto que
>> trabajamos juntos :P
>> Se nos daba por envejecimiento del software, luego de varios días de
>> usarse el sistema aparecía eso. Generalmente porque se colgaba el
>> microcontrolador, el pc le mandaba un reset al dispositivo y este no
>> respondía a los mensajes de enumeración (justamente porque estaba colgado).
>> Si decis que mueve el led, primero asegurate que el bootloader realmente
>> implemente el protocolo USB y que no tengas que ponerlo vos. Ya sabes que
>> clase USB estas usando? todo eso es parte de lo que tenes que pensar, vas a
>> querer que se muestre como serial? como un dispositivo de interfaz humana?
>> hay muchas alternativas.  Me suena que no tenes nada que hable USB del otro
>> lado. Acordate que el micro solo trae el transceiver USB, el stack tenés
>> que implementarlo por software o usar una biblioteca que lo haga.
>> abrazo
>> andres
>>
>>
>>
>>
>> 2013/4/6 Federico Andrade - InCo <fandrade en fing.edu.uy>
>>
>>> El error fue lo primero que busque.En mi maquina da error 32 que es
>>> broken pipe y en otra pc me da 71 que es error en el protocolo. Por lo que
>>> estuve leyendo, estos errores se asocian a problemas de hardware que
>>> generan problemas de comunicación...pero no puedo descubir donde ni cual es
>>> el problema.
>>>
>>> Los voltajes están bien, probe en distintas máquinas, con distintos
>>> cables. Probe la continuidad desde las patas del micro y la punta que va en
>>> la pc del cable usb y estaba todo ok.
>>> El micro está corriendo normal con el bootloader...toy desconcertado
>>>
>>>
>>> 2013/4/6 Alan Jhonn Aguiar Schwyn <alanjas en hotmail.com>
>>>
>>>> Eso lo encontré en una página por ahí.
>>>> Quizás si buscás ese error encontrás algo. Parece ser un error común.
>>>>
>>>> ------------------------------
>>>> From: fandrade en fing.edu.uy
>>>> Date: Sat, 6 Apr 2013 15:41:41 -0300
>>>> To: aaguirre en fing.edu.uy
>>>>
>>>> CC: butia-devel-l en fing.edu.uy; butia en fing.edu.uy
>>>> Subject: Re: [Butia-devel-list] Placa Butiá basada en Arduino Leonardo
>>>> (usando el micro ATmega 32u4)
>>>>
>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________ Butia-devel-l site list
>>>> Butia-devel-l en fing.edu.uy
>>>> https://www.fing.edu.uy/mailman/listinfo/butia-devel-l
>>>>
>>>
>>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://www.fing.edu.uy/pipermail/butia-devel-l/attachments/20130407/1a7ccd18/attachment.html


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