MEGA 2560 : Comment graver/flasher le BOOTLOADER

Suite un problème d’upload entre mon pc et la carte Arduino MEGA 2560 j’ai eu à flasher un nouvel BOOTLOADER.

En effet le message d’erreur suite a la tentative d’envoi du firmware Marlin était le suivant :

avrdude: verification error, first mismatch at byte 0x0002          0xc1 != 0xf7

La partie du code que j’ai surlignée peut différer du vôtre.

Après plusieurs dizaines d’essais sans succès j’ai décidé de flasher le bootloader,. Ce qui a résolu mon problème. Ci-dessous, les étapes pour sa réalisation : (à utiliser en dernier recours, à vos risques et perils ;-D)

Liste des pré-requis :

  • Arduino UNO  (sert de programmeur)
  • Arduino MEGA 2560 (à programmer)
  • Fils
  • Càble usb
  • PC et logiciel Arduino

Schéma de câblage :

pschema cablage uno bootloader burnjpg

Résumé du câblage :

Arduino Uno      Mega 2560

D10 (SS)           Reset
D11 (MOSI)         D51
D12 (MISO)         D50
D13 (SCK)          D52

Gnd                Gnd
+5V                +5V

Avant de connecter Arduino au PC par le câble USB il faut vérifier votre câblage.

Le câblage est bon? Passons à la suite

Télécharger ce fichiers : Arduino BOOTLOADER

Le décompresser dans le dossier « exemples » de Arduino

C:\…\arduino-1.0.5\examples

Ouvrir le logiciel ARDUINO

Connecter le câble USB à l’arduino UNO

Ouvrir le fichier Atmega_Board_Programmer.ino qui se trouve dans :

C:\…\arduino-1.0.5\examples\Atmega_Board_Programmer

Transférer

Ouvrir le Serial monitor, vous  verrez ça :

Atmega chip programmer.
 Written by Nick Gammon.
 Entered programming mode OK.
 Signature = 0x1E 0x98 0x01
 Processor = ATmega2560
 Flash memory size = 262144 bytes.
 LFuse = 0xFF
 HFuse = 0xD8
 EFuse = 0xFD
 Lock byte = 0xCF
 Bootloader address = 0x3E000
 Bootloader length = 8192 bytes.
 Type 'G' to program the chip with the bootloader ...

Ecrire G et envoyer

Voilà le résultat attendu :

Erasing chip ...
 Writing bootloader ...
 Committing page starting at 0x3E000
 Committing page starting at 0x3E100
 Committing page starting at 0x3E200
 Committing page starting at 0x3E300
 Committing page starting at 0x3E400
 Committing page starting at 0x3E500
 Committing page starting at 0x3E600
 Committing page starting at 0x3E700
 Committing page starting at 0x3E800
 Committing page starting at 0x3E900
 Committing page starting at 0x3EA00
 Committing page starting at 0x3EB00
 Committing page starting at 0x3EC00
 Committing page starting at 0x3ED00
 Committing page starting at 0x3EE00
 Committing page starting at 0x3EF00
 Committing page starting at 0x3F000
 Committing page starting at 0x3F100
 Committing page starting at 0x3F200
 Committing page starting at 0x3F300
 Committing page starting at 0x3F400
 Committing page starting at 0x3F500
 Committing page starting at 0x3F600
 Committing page starting at 0x3F700
 Committing page starting at 0x3F800
 Committing page starting at 0x3F900
 Committing page starting at 0x3FA00
 Committing page starting at 0x3FB00
 Committing page starting at 0x3FC00
 Committing page starting at 0x3FD00
 Committing page starting at 0x3FE00
 Committing page starting at 0x3FF00
 Written.
 Verifying ...
 No errors found.
 Writing fuses ...
 LFuse = 0xFF
 HFuse = 0xD8
 EFuse = 0xFD
 Lock byte = 0xCF
 Done.
 Type 'C' when ready to continue with another chip ...

Sans oublier de remercier l’auteur de ce site en anglais qui m’a permis de débloquer la situation.

10 Responses

  1. Jean-Pierre Kessedjian Jean-Pierre Kessedjian

    at |

    Bonjour,
    J’ai voulu tester votre méthode et j’obtiens le message ci dessous.Pouvez vous m’aider ? Merci d’avance

    …. by means of ‘__attribute__((progmem))’

    Ce rapport contiendrait plus d’informations si l’option
    « Montrer les informations de sortie pendant la compilation »
    était activée dans Fichier > Préférences.

    Reply
  2. Peu Importe Peu Importe

    at |

    Change le BAUD_RATE = 115200;

    Reply
  3. christophe christophe

    at |

    Moi tout fonctionne comme jusqu’à la fin, aucun message d’erreur mais impossible tout de même de téléverser quoique ce soit; j’ai toujours çà:
    « avrdude: k500v2_ReceiveMessage(): timeout »
    Tout avec arduino 1.0.5, à comprends pas !

    Reply
  4. coppola coppola

    at |

    génial j était a deux doit de jeter ma carte un grand merci sa remarche et au première coup encore merci

    Reply
  5. jiao44 jiao44

    at |

    Bonjour, j’ai suivi vos consignes, avec la version 1.0.5, le téléversement se fait.

    Par contre, je n’arrive pas à avoir le message avec le serial monitor, même en tapant « G » et envoyer (même avec le « 115200 baud »). Le seul message que j’ai dans le serial monitor et qui reste fixe est :

    Atmega chip programmer.
    Written by Nick Gammon.
    Version 1.21
    Compiled on Aug 30 2016 at 22:31:41

    Comment faire ?

    Merci d’avance ! 🙂

    Reply
  6. jerseys custom jerseys custom

    at |

    jerseys custom

    look here MEGA 2560 : Comment graver/flasher le BOOTLOADER | ELECTRO tuto

  7. INDJENDJE INDJENDJE

    at |

    Merci et félicitation, j’ai pu réinitialiser ma carte et effacer l’erreur (Err:MINTEMPS) j’ai pris la main sur ma Prusia I3.
    Demain, je vais essayer la première impression

    Reply

Laisser un commentaire