Go Down

Topic: [Résolu] problème de chargement boatloader sur ATMega328p (Read 1 time) previous topic - next topic

shadow57

Bonjour

Je suis en train d'essayer de charger le bootloader sur un ATmega328p en standalone sans oscillateur externe à partir d'un arduino Mega2560 mais je bloque.

J'ai réalisé la dernière partie de ce tuto https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard afin de chargé l' ATmega328p sans oscillateur

j'ai ensuite charger l'exemple "ArduinoISP" dans le mega2560

j'ai ensuite connecté le mega à l'ATmega de la façon suivante

mega2560  Atmega328p
50               18
51               17
52               19
53                1
+5                7
gnd               8

avec la pin reset du mega etant branché à un condo de 100nF au +5v indiqué à la fin de ce tuto http://www.instructables.com/id/How-to-use-Arduino-Mega-2560-as-Arduino-isp/

j'essaye ensuite de charger le bootloader en sélectionnant la carte "ATmega328 on a breadboard (8 MHz internal clock)"  avec le programmeur "arduino as ISP" j'obtiens le message suivant

Code: [Select]
Arduino : 1.6.7 (Windows 10), Carte : "ATmega328 on a breadboard (8 MHz internal clock)"

C:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/bin/avrdude -CC:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM4 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xE2:m

avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Erreur lors de la gravure de la séquence d'initialisation.




Quelqu'un aurait-il une idée?

shadow57

#1
Dec 04, 2016, 02:36 pm Last Edit: Dec 04, 2016, 02:42 pm by shadow57
Je suis pas tombé sur ce post en cherchant sur le net je regarde ce qu'il en est

shadow57

Alors j'ai fait cette partie par-contre je suis pas sur de mon coup avec la Mega2560 la connexion il faut bien que je le face sur la pin11?

Ach ! ... Au temps pour moi. Je pense avoir trouvé le problème (de configuration).

Contrairement aux ATmega328P sortis directement d'usine, un modèle vendu déjà programmé avec le bootloader Arduino Uno n'a plus d'horloge interne activée.

Par conséquent, il faut lui en fournir une externe, juste le temps de reprogrammer son horloge interne.

Pour créer une horloge, il suffit d'utiliser une sortie PWM de l'Arduino Uno qui te sert de programmateur ISP, en modifiant légèrement le croquis "ArduinoISP" fourni, comme suit :

• attribuer la pin 9 à la sortie d'horloge, et modifier la sortie de la led LED_HB initialement prévue sur cette pin :
Code: [Select]

#define CLOCKOUT  9 // pin sortie horloge 8 MHz
#define LED_HB    6 // anciennement pin 9


• ajouter la programmation de la sortie d'horloge dans la fonction setup() :
Code: [Select]

void setup() {
  pinMode(CLOCKOUT, OUTPUT);     // sortie A du timer 1 sur pin 9
  TCCR1A = (1<<COM1A0);          // toggle OC1A on Compare Match
  TCCR1B = (1<<WGM12)|(1<<CS10); // mode CTC, pas de prédiviseur
  OCR1A =  0;                    // fréquence maxi
...


Une fois l'Aduino servant de programmateur mis à jour, sa pin D9 produit un signal d'horloge à 8 MHz, et peut être connectée à l'entrée XTAL1 (pin 9) de l'ATmega328P à programmer.

Cette liaison doit être retirée dès que l'horloge interne de l'ATmega328P est reprogrammée, dans le cas où un croquis téléchargé par la suite utiliserait sa pin 9 comme une sortie,

shadow57

J'obtiens le même message lors du chargement du bootloader  :smiley-confuse:

Cette video peut aidé.
Porter son arduino sur une breadboard
Installation boot loader arduino. Ftdi. Atmel 8Mhz. Etc.

https://youtu.be/G-ZIcA3fS7c

shadow57

#5
Dec 05, 2016, 06:06 pm Last Edit: Dec 05, 2016, 06:22 pm by shadow57
Je viens de vérifier le tout j'ai pareil

En forçant l'écriture à partir de l'invité de commande malgré la signature à 0 cela pourrait marcher?

shadow57

#6
Dec 05, 2016, 10:36 pm Last Edit: Dec 05, 2016, 10:53 pm by shadow57
En forçant j'obtiens ça, il a l'air d'avoir écrit et lu  quelque chose  mais à vu de nez je dirais que ça a pas marché 

Code: [Select]
Microsoft Windows [version 10.0.10586]
(c) 2015 Microsoft Corporation. Tous droits réservés.

C:\Users\Shadow>C:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/bin/avrdude -CC:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf -v -F -patmega328p -cstk500v1 -PCOM4 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xE2:m

avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Shadow\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino6/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATmega328P is 1E 95 0F
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.07s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x00 != 0x3f
avrdude: verification error; content mismatch

avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.


C:\Users\Shadow>

shadow57

YES  tu es au top  :D

la pin RESET était pas la bonne dans l'exemple pour le Mega en suppriment tout le blabla et en copiant ton code ça fonctionne pour l'init des PIN

Code: [Select]
#include "pins_arduino.h"
#define RESET     SS


ça fonctionne

Go Up