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

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.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/6 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">ese error lo sufrimos mil veces con edgardito en un proyecto que trabajamos juntos :P<div>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.</div>



<div>abrazo</div><span class="HOEnZb"><font color="#888888"><div>andres</div><div><br><div><br></div></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">

2013/4/6 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><div><div>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.<br>





<br></div></div>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.<br></div>El micro está corriendo normal con el bootloader...toy desconcertado<br>





</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/6 Alan Jhonn Aguiar Schwyn <span dir="ltr">&lt;<a href="mailto:alanjas@hotmail.com" target="_blank">alanjas@hotmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div><div dir="ltr">Eso lo encontré en una página por ahí.<div>Quizás si buscás ese error encontrás algo. Parece ser un error común.<br><br><div><div></div><hr>From: <a href="mailto:fandrade@fing.edu.uy" target="_blank">fandrade@fing.edu.uy</a><br>





Date: Sat, 6 Apr 2013 15:41:41 -0300<br>To: <a href="mailto:aaguirre@fing.edu.uy" target="_blank">aaguirre@fing.edu.uy</a><div><br>CC: <a href="mailto:butia-devel-l@fing.edu.uy" target="_blank">butia-devel-l@fing.edu.uy</a>; <a href="mailto:butia@fing.edu.uy" target="_blank">butia@fing.edu.uy</a><br>





Subject: Re: [Butia-devel-list]        Placa Butiá basada en Arduino Leonardo (usando el micro ATmega 32u4)<br><br></div><div dir="ltr"><div><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></div><pre style="display:inline"><div>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></div>áá á á á To disable this feature, specify the -D option.<div>





<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></div>avrdude done. áThank you.<br><br>fede@leni:~$ <br><br></pre><pre style="display:inline"><br></pre>

DespuÚs hay que setearle los fuses, y la salida fue la siguiente:<br><br><pre style="display:inline"><div>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>





</div>

áá á á á Copyright (c) 2000-2005 Brian Dean, <a href="http://www.bdmicro.com/" target="_blank">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<div><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></div>avrdude done. áThank you.<br><br>fede@leni:~$ <br><br><br><br></pre><pre style="display:inline"><br></pre><pre style="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" target="_blank">http://www.youtube.com/watch?v=t-e35YtVw-g&amp;feature=youtu.be</a><br>







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

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 style="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><div><div><br><br><div><div>



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></div><blockquote style="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><div>Creo que el error viene por otro lado :S<br></div></div></div><div><div><div><br><br><div>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 style="border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><br><div>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 style="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></div>primero que nada, que tiene dentro el micro? viene de fßbrica o le grabaste algo??</div><div>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>saludos</div><span><font color="#888888"><div>andres</div><div><br></div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div><div>
<br>_______________________________________________
Butia-devel-l site list
<a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a>
<a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a></div></div></div>                                               </div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>