Go Down

Topic: Ptit pb bootloader (Read 735 times) previous topic - next topic

youbs

Bonjour,

a l'aide du ParallelProgrammer j'arrives bien a charger le bootloader pour ATMEGA168. Ensuite je charge un sketch.

C'est deux opérations se passent sans probleme !!

Lorsque je veux recharger un nouveau sketch j'ai le message suivant :
Code: [Select]
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


Pour pallier à ça, je suis obligé de recharger le bootloader puis ensuite le sketch.

Sur le site il parle de quatre étapes pour le bootloader, avec l'ide les quatres étapes sont-elles respectées ?? Ou faut-il faire autre chose ??

C'est un peu lourd pour charger  :-/
Merci

PS: je suis sous Arduino 0012 Alpha

nrolland

Je dirais 2 pistes possibles.
- Soit tu effaces ton bootloader au chargement de ton 1er sketch (vérifie qu'il est bien locké =>phase 4 dont tu parlais)
- Soit ton reset ne fait pas pointer vers le code du bootloader.

Tu peux lancer les différentes commandes de chargement du boot en ligne de commande  directement dans un terminal.
Qd tu prends l'option verbose dans le preference.txt (ou qq chose comme ca) ca dit quoi les différentes lignes de commandes executées dans la console de l'IDE de l'Arduino

Nicolas

youbs

Bonjour

Voici la commande qd je programme le bootloader :
Quote
avrdude -CD:\arduino-0012\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pm168 -cdapa -F -e -Ulock:w:0x3F:m -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m


Comment je peux voir si la phase 4 c'est bien passé

Merci

nrolland

Je me souvenais pas de ces valeurs pour les fuses

il me semblait plutot que c'était qq chose comme ca
lfuse=0xF8, hfuse=0xDF and efuse=0xFF

D'ou viennent tes valeurs ?

Nicolas


youbs

Ce sont les valeurs par défaut, je n'ai pas touché à mon fichier de préférence.

Mais ce sont les même que sur cette page :
http://arduino.cc/en/Hacking/Bootloader?from=Main.Bootloader

Par contre je viens de m'apercevoir que la valeur de lock ne correspond pas d'après cette même page

Ulock:w:0x3F:m au lieu de Ulock:w:0x0F:m  :-?

Je vais essayer de tester ça se soir !!!

nrolland

ce sont surtout les valeurs de efuse qui me semblent bizarre.
Tu as un site qui est bien pour calculer les fuses.
http://www.engbedded.com/cgi-bin/fc.cgi/?P_PREV=&P=ATmega168
Tu peux voir que les 2 derniers menus (boot reset vector et boot size section) doivent etre programmés
Ainsi tu auras le reset vector a $0000 et la taille de la flash alloué pour le bootloader a 1024 (ce qui est le cas pour le bootloader de l'arduino).
La valeur correspondante est a F8 pour l'efuse.
Essaye et donne moi des nouvelles.
Si jamais ca marche donne des nouvelles au team arduino pour qu'il corrige les erreurs.
je retrouve ces valeurs ici http://www.arduino.cc/playground/Learning/Burn168

Nicolas

Go Up