avr:programmer
Dernière modification : 2011/07/09 18:31
Accueil
/
Changements récents
Éditer (
Aide
) /
Historique
programmation ISP d'un AVR : exemple avec l'ATTiny45 Article de blog associé : [Utiliser un arduino comme programmeur ISP|http://kubuntu.free.fr/blog/index.php/2011/07/09/280-utiliser-un-arduino-comme-programmeur-isp] !! utiliser un arduino Il faut utiliser le sketch ArduinoISP présent dans les exemples. Il est aussi dispo sur le site [mega-isp|http://code.google.com/p/mega-isp/]. On le compile et le charge dans l'arduino. Il faut désactiver l'autoreset pour bypasser le bootloader. Pour un Duemilanove, le plus simple et le moins intrusif est de relier le reset au +5V par une réstance de 120ohms. Voir [ici|http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection] pour les autres méthodes. On relie les différentes pattes pour l'ISP : |h Arduino |h ATTiny45 |h Fonction | |, 10 |, 1 | /reset | |, 11 |, 5 | MOSI | |, 12 |, 6 | MISO | |, 13 |, 7 | SCK | Enfin, le sketch mega-isp utilise 3 leds d'état. |h Arduino |h led (anode) | |, 7 | jaune: prog en cours | |, 8 | rouge: erreur | |, 9 | vert: heartbeat | Note: par défaut ArduinoISP utilise une vitesse de 19200bps. On peut changer cela dans le code. [data/Arduino/resized_Arduino_ISP.png|data/Arduino/Arduino_ISP.png] Enfin pour programmer notre ATTiny, on utilise avrdude : {{avrdude -V -p t45 -c avrisp -b 19200 -P /dev/ttyUSB0 -U flash:w:led.hex}} Liens: * http://arduino.cc/en/Tutorial/ArduinoISP * http://www.arduino.cc/playground/Code/MegaISP * http://code.google.com/p/mega-isp/ ---- !! Reprogrammer le bootloader d'une arduino à partir d'un arduino (Yeah! mise en abime !) * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267120897 * http://arduino.cc/en/Tutorial/ArduinoToBreadboard !!! Connections Le 1er arduino est chargé avec le sketch ArduinoISP comme ci-dessus. Puis on le connecte vers le port ICSP du 2ème (celui à flasher) ou directement sur les pattes qui vont bien. [data/Arduino/resized_Arduino_ISP_Arduino.png|data/Arduino/Arduino_ISP_Arduino.png] !!! Flash via la GUI '''Attention:''' il faut l'IDE 22 ou le sketch mega-isp de google-code (Cf [issue14|http://code.google.com/p/mega-isp/issues/detail?id=14] * choisir la carte dans le menu board ** UNO pour avoir l'optiboot ** duamilanove avec atmega328 ** autre chose suivant votre modèle d'arduino * burn bootloader w/ArduinoISP ** Si vous avez changé la vitesse dans le sketch ArduinoISP, voir /usr/share/arduino/hardware/arduino/programmers.txt arduinoisp.speed !!! Commandes avrdude Les paramètres sont à trouver dans les fichiers de définition hardware : * /usr/share/arduino/hardware/arduino/boards.txt ([source|https://github.com/arduino/Arduino/blob/master/hardware/arduino/boards.txt]) regarder aussi dans les préférences : * /usr/share/arduino/lib/preferences.txt * ~/.arduino/preferences.txt sous la forme : {{<board>.bootloader.xxx=YYY}} les fichiers hex du boot sont sous : ''/usr/share/arduino/hardware/arduino/bootloaders/...'' * débloquer l'accès au bootloader {{ avrdude -p m328p -P /dev/ttyUSB0 -c avrisp -b 19200 -e -U lock:w:0x3F:m }} * flasher le bootloader {{ avrdude -p m328p -P /dev/ttyUSB0 -c avrisp -b 19200 -D -U flash:w:ATmegaBOOT_168_atmega328.hex }} * rebloquer l'accès au bootloader {{ avrdude -p m328p -P /dev/ttyUSB0 -c avrisp -b 19200 -U lock:w:0x0F:m }} ---- !! BitBang technic Permet de flasher l'arduino en utilisant le mode bitbang du chipset FT232 nécessite de patcher avrdude et de souder un connecteur sur la carte arduino * http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html * http://doswa.com/blog/2010/08/24/avrdude-5-10-with-ftdi-bitbang/ * http://www.arduino.cc/playground/Hacking/AvrdudeFTDIBitbang ---- !! Utiliser un stk500 Atmel propose deux connecteurs normalisés pour la programmation ISP : [data/Arduino/ISP.png] Ils sont documentés dans la note d'application 42 ([pdf|http://www.atmel.com/atmel/acrobat/doc2521.pdf]) Le stk500 est un programmeur USB qui se branche sur un tel connecteur. Les branchements sur l'ATTiny se font sur les mêmes pattes que précédemment. '''Attention:''' la source de courant doit provenir de la cible. ie: le montage doit fournir le +5V vers la patte VTG. On utilise toujours avrdude pour programmer, seul l'option ''-c'' change: {{avrdude -V -p t45 -c stk500 -P /dev/ttyUSB0 -U flash:w:led.hex}}
Mot de passe :
Wiki utilisant
WiKiss 0.3
2024/04/25 08:31 -- 3.138.122.195
Éditer (
Aide
) /
Historique