The git repo behind my blog.

bootloader_atmega.html 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Phyks' blog - Graver un <em>bootloader</em> sur ATmega8</title>
  6. <link rel="stylesheet" href="//phyks.me/design.css"/>
  7. <link type="text/plain" rel="author" href="//phyks.me/humans.txt"/>
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <link rel="alternate" type="application/rss+xml" title="RSS" href="//phyks.me/rss.xml" />
  10. </head>
  11. <body>
  12. <div id="wrapper">
  13. <!-- Sidebar -->
  14. <aside id="sidebar-wrapper">
  15. <header><h1><a href="//phyks.me">~Phyks</a></h1></header>
  16. <h2>Catégories</h2>
  17. <nav id="sidebar-tags">
  18. <div class="tag"><a href="//phyks.me/tags/Arch.html">/Arch (2)</a> </div><div class="tag"><a href="//phyks.me/tags/Autohébergement.html">/Autohébergement (3)</a> </div><div class="tag"><a href="//phyks.me/tags/Dev.html">/Dev (7)</a> </div><div class="tag"><a href="//phyks.me/tags/DIY.html">/DIY (2)</a> </div><div class="tag"><a href="//phyks.me/tags/Électronique.html">/Électronique (2)</a> </div><div class="tag"><a href="//phyks.me/tags/Libre.html">/Libre (7)</a> </div><div class="tag"><a href="//phyks.me/tags/Linux.html">/Linux (5)</a> </div><div class="tag"><a href="//phyks.me/tags/Phyks.html">/Phyks (7)</a> </div><div class="tag"><a href="//phyks.me/tags/Smartphone.html">/Smartphone (2)</a> </div><div class="tag"><a href="//phyks.me/tags/Vim.html">/Vim (1)</a> </div><div class="tag"><a href="//phyks.me/tags/Web.html">/Web (6)</a> </div><div class="tag"><a href="//phyks.me/tags/Weechat.html">/Weechat (2)</a> </div>
  19. </nav>
  20. <h2>Derniers articles</h2>
  21. <ul id="sidebar-articles">
  22. <li><a href="//phyks.me/2014/10/dhcp_server.html">Utiliser son PC sous Arch pour connecter un Raspberry Pi à Internet</a></li><li><a href="//phyks.me/2014/08/sortez_vos_emails.html">Sortez vos emails, c'est pas sale&nbsp;!</a></li><li><a href="//phyks.me/2014/08/synchronisation_backups_1.html">Synchroniser ses ordinateurs 1/2</a></li><li><a href="//phyks.me/2014/08/free_mobile_fluctuant.html">Les énigmes du réseau Free Mobile</a></li><li><a href="//phyks.me/2014/07/notification_sms_free.html">Recevoir ses emails par SMS avec Free Mobile</a></li><li><a href="//phyks.me/archives.html">Archives</a></li>
  23. </ul>
  24. <h2>Liens</h2>
  25. <ul id="sidebar-links">
  26. <li><a href="//phyks.me/contact.html" title="Contact">Me contacter</a></li>
  27. <li class="monospace"><a href="//links.phyks.me" title="Mon Shaarli">find ~phyks -type l</a></li>
  28. <li><a href="https://github.com/phyks/" title="Github">Mon Github</a></li>
  29. <li><a href="//phyks.me/divers.html" title="Divers">Divers</a></li>
  30. </ul>
  31. </aside>
  32. <!-- Page content -->
  33. <header id="header">
  34. <h1><a href="//phyks.me">~Phyks</a></h1>
  35. </header>
  36. <div id="note_responsive">
  37. <p><em>Note</em> : Cliquez sur la bande bleue à gauche pour faire apparaître le menu.</p>
  38. </div>
  39. <div id="articles">
  40. <article>
  41. <aside>
  42. <p class="day">02</p>
  43. <p class="month">Décembre</p>
  44. </aside>
  45. <div class="article">
  46. <header><h1 class="article_title"><a href="//phyks.me/2013/12/bootloader_atmega.html">Graver un <em>bootloader</em> sur ATmega8</a></h1></header>
  47. <!--
  48. @author=Phyks
  49. @date=02122013-1502
  50. @title=Graver un <em>bootloader</em> sur ATmega8
  51. @tags=DIY, Électronique
  52. -->
  53. <p>Pour un projet avec mon <em>hacklab</em> <a href="http://hackens.org">hackEns</a> (éclairage de façades avec des LEDs de puissance, dans la même veine que <a href="http://www.youtube.com/watch?v=yRxQgc-OKFg">AllColorsAreBeautiful</a> du CCC, voir <a href="http://hackens.org/projets/ledhill">cette page</a> pour plus d'infos), on a eu besoin de graver 30 <em>bootloaders</em> sur des ATmega8. On n'a pas de programmateur et on le fait donc avec des Arduinos. Comme toujours, il nous a fallu 2h de debug avant de graver le premier :) (mais cette fois, ça a été rentable avec 30 <em>bootloaders</em> gravés d'un coup !).</p>
  54. <p>Du coup, je fais une petite compil' des liens qui marchent et des trucs importants à vérifier pour ne pas perdre deux heures (les messages d'erreur du soft Arduino étant *tellement* explicites... et il y a 10 méthodes différentes, chacune aboutissant à une erreur différente sur le net).</p>
  55. <p>Tout d'abord, un bon lien qui marche bien : <a href="http://arduino.cc/en/Tutorial/ArduinoToBreadboard">ArduinoToBreadboard</a> dans la doc Arduino. Les montages sont clairs et ont été testé par moi-même ces derniers jours :).</p>
  56. <h2>Gravure de <em>bootloader</em></h2>
  57. <p style="text-align: center;">
  58. <a href="http://arduino.cc/en/uploads/Tutorial/BreadboardAVR.png"><img style="max-width: 45%; max-height: 500px;" src="http://arduino.cc/en/uploads/Tutorial/BreadboardAVR.png" alt="Montage pour graver le bootloader"/></a> <a href="//phyks.me/2013/12/burn.jpg"><img style="max-width: 45%; max-height: 500px;" src="//phyks.me/2013/12/burn.jpg" alt="Montage pour graver le bootloader, in situ"/></a>
  59. </p>
  60. <h2>Envoi de programmes</h2>
  61. <p style="text-align: center;">
  62. <a href="//phyks.me/2013/12/upload.jpg"><img src="//phyks.me/2013/12/upload.jpg" alt="Montage pour l'upload" style="max-width: 45%; max-height: 500px;"/></a> <a href="//phyks.me/2013/12/upload2.jpg"><img style="max-width: 45%; max-height: 500px;" src="//phyks.me/2013/12/upload2.jpg" alt="Montage pour l'upload"/></a>
  63. </p>
  64. <h2>Notes diverses</h2>
  65. <ul>
  66. <li>Testé avec un Arduino Uno comme programmateur, sans capacités ni résistances sur les pins de <em>reset</em>. Et ça fonctionne ! Par contre, on a eu des problèmes avec un Arduino Mega, donc on est resté sur l'Uno (sans chercher plus, sûrement un problème de <em>reset</em> automatique).</li>
  67. <li>Si ça ne marche pas, vérifier que l'ATmega est bien enfoncé dans la <em>breadboard</em> ! C'est stupide, mais on oublie une fois sur deux... :)</li>
  68. <li>Hyper important ! Sur le montage pour graver le <em>bootloader</em>, la résistance au <em>reset</em> est en <em>pull-up</em> (connectée au 5V) et non en <em>pull-down</em> (connectée au GND). J'ai perdu 1h là-dessus...</li>
  69. <li>Testé et approuvé avec la dernière version du soft Arduino et du <em>sketch</em> ArduinoISP. Pas besoin d'une vieille version a priori.</li>
  70. <li>Si ça ne marche toujours pas, bien vérifier le montage, encore et encore :)</li>
  71. <li>Mieux vaut utiliser le soft Arduino que la ligne de commande avec <samp>avrdude</samp>. En effet, Arduino gère tout seul les <em>fuse bits</em> (utilisation d'un cristal externe, temps de démarrage, protection du <em>bootloader</em>) et c'est donc moins prise de tête. Sinon, pour les calculer, c'est <a href="http://www.engbedded.com/fusecalc/">par ici</a> et <a href="http://treehouseprojects.ca/fusebits/">par ici</a> pour plus d'infos sur l'utilisation d'un quartz externe.</li>
  72. <li>Lorsque le <em>bootloader</em> est gravé, pour envoyer des programmes facilement, il faut qu'il puisse <em>reset</em> sur serial (sinon, il faut faire un <em>reset</em> manuel à chaque fois). Pour ça, il faut mettre une capacité et une résistance sur le pin de <em>reset</em> (cf schematics des Arduino).</li>
  73. </ul>
  74. <footer><p class="date">Le 02/12/2013 à 15:02</p>
  75. <p class="tags">Tags : <a href="//phyks.me/tags/DIY.html">DIY</a>, <a href="//phyks.me/tags/Électronique.html">Électronique</a></p></footer>
  76. </div>
  77. </article>
  78. </div>
  79. <footer id="rss">
  80. <p><a href="//phyks.me/rss.xml"><img src="//phyks.me/img/rss.png" alt="RSS"/></a></p>
  81. </footer>
  82. </div>
  83. </body>
  84. </html>