<div dir="ltr"><div><div><div><div><div><div>Nop, he grabado el mismo bootloader para otros micros atmega corren de una.<br></div><br></div>Esta es la salida dp de haber grabado el bootloader:<br><br><pre style="margin-top:0px;display:inline">

fede@leni:~$ avrdude -p m32U4 -P /dev/ttyUSB0 -c avrisp -b 19200 -U flash:w:arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex<br><br>avrdude: AVR device initialized and ready to accept instructions<br>

<br>Reading | ################################################## | 100% 0.02s<br><br>avrdude: Device signature = 0x1e9587<br>avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed<br>         To disable this feature, specify the -D option.<br>

avrdude: erasing chip<br>avrdude: reading input file &quot;arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex&quot;<br>avrdude: input file arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex auto detected as Intel Hex<br>

avrdude: writing flash (32722 bytes):<br><br>Writing | ################################################## | 100% 9.66s<br><br>avrdude: 32722 bytes of flash written<br>avrdude: verifying flash memory against arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex:<br>

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

avrdude: input file arduino/arduino/hardware/arduino/bootloaders/caterina/Caterina-Leonardo.hex contains 32722 bytes<br>avrdude: reading on-chip flash data:<br><br>Reading | ################################################## | 100% 19.13s<br>

<br>avrdude: verifying ...<br>avrdude: 32722 bytes of flash verified<br><br>avrdude: safemode: Fuses OK<br><br>avrdude done.  Thank you.<br><br>fede@leni:~$ <br><br></pre><pre style="margin-top:0px;display:inline"><br></pre>

Después hay que setearle los fuses, y la salida fue la siguiente:<br><br><pre style="margin-top:0px;display:inline">fede@leni:~$ avrdude -p m32u4 -P /dev/ttyUSB0 -c avrisp -b 19200 -nv<br>avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10<br>

         Copyright (c) 2000-2005 Brian Dean, <a href="http://www.bdmicro.com/">http://www.bdmicro.com/</a><br>         Copyright (c) 2007-2009 Joerg Wunsch<br><br>         System wide configuration file is &quot;/etc/avrdude.conf&quot;<br>

         User configuration file is &quot;/home/fede/.avrduderc&quot;<br>         User configuration file does not exist or is not a regular file, skipping<br><br>         Using Port                    : /dev/ttyUSB0<br>
         Using Programmer              : avrisp<br>
         Overriding Baud Rate          : 19200<br>         AVR Part                      : ATmega32U4<br>         Chip Erase delay              : 9000 us<br>         PAGEL                         : PD7<br>         BS2                           : PA0<br>

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

         StabDelay                     : 100<br>         CmdexeDelay                   : 25<br>         SyncLoops                     : 32<br>         ByteDelay                     : 0<br>         PollIndex                     : 3<br>

         PollValue                     : 0x53<br>         Memory Detail                 :<br><br>                                  Block Poll               Page                       Polled<br>           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack<br>

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

           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00<br>           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00<br>           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00<br>

           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00<br>           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00<br>           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00<br>

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

         Varef           : 0.0 V<br>         Oscillator      : Off<br>         SCK period      : 0.1 us<br><br>avrdude: AVR device initialized and ready to accept instructions<br><br>Reading | ################################################## | 100% 0.02s<br>

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

avrdude: safemode: efuse reads as CB<br>avrdude: safemode: Fuses OK<br><br>avrdude done.  Thank you.<br><br>fede@leni:~$ <br><br><br><br></pre><pre style="margin-top:0px;display:inline"><br></pre><pre style="margin-top:0px;display:inline">

<br><br></pre><br>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. <br>

</div>Sin embargo sigue fallando la comuniación usb entre la placa y el micro. <br><br></div>Acá está la prueba <a href="http://www.youtube.com/watch?v=t-e35YtVw-g&amp;feature=youtu.be">http://www.youtube.com/watch?v=t-e35YtVw-g&amp;feature=youtu.be</a><br>

<br></div><br></div>Alan, eso que me pusiste por ahi...no lo puedo hacer, ni siendo root..<br>tenés la fuente?<br>sabés bien que es lo que genera?<br><br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">

2013/4/5 Andres Aguirre <span dir="ltr">&lt;<a href="mailto:aaguirre@fing.edu.uy" target="_blank">aaguirre@fing.edu.uy</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">y el bootloader no esperara que toques un botón al iniciar para arrancar a ejecutar ?<div>generalmente el código de los bootloader es:</div><div><br></div><div>if(condición_ejecución)</div><div>    //código del bootloader</div>



<div>else</div><div>    //salto a posición donde se encuentra el código del usuario</div><div><br></div><div>slaudos</div><div> </div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">



2013/4/4 Federico Andrade - InCo <span dir="ltr">&lt;<a href="mailto:fandrade@fing.edu.uy" target="_blank">fandrade@fing.edu.uy</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="ltr"><div>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.<br>





<br></div><div>Creo que el error viene por otro lado :S<br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/4 Andres Aguirre <span dir="ltr">&lt;<a href="mailto:aaguirre@fing.edu.uy" target="_blank">aaguirre@fing.edu.uy</a>&gt;</span><br>





<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div><br><div class="gmail_quote">2013/4/4 Federico Andrade - InCo <span dir="ltr">&lt;<a href="mailto:fandrade@fing.edu.uy" target="_blank">fandrade@fing.edu.uy</a>&gt;</span><br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

device descriptor read/64, error -32</blockquote></div><br></div>primero que nada, que tiene dentro el micro? viene de fábrica o le grabaste algo??</div><div class="gmail_extra">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 <a href="http://support.atmel.no/knowledgebase/avr32studiohelp/AT32UC3A_Software_Framework/DRIVERS/USBB/EXAMPLES/ENUM_EXAMPLE_FREERTOS/DOC/html/usb_host_task.jpg" target="_blank">http://support.atmel.no/knowledgebase/avr32studiohelp/AT32UC3A_Software_Framework/DRIVERS/USBB/EXAMPLES/ENUM_EXAMPLE_FREERTOS/DOC/html/usb_host_task.jpg</a>. 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.</div>







<div class="gmail_extra">saludos</div><span><font color="#888888"><div class="gmail_extra">andres</div><div class="gmail_extra"><br></div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>