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

Bonjour, j'essaie de graver la séquence d'initialisation sur un atmega328P-U via un arduino nano.

J'ai bien envoyer le programme ArduinoSPI vers le nano et le câble fonctionne bien.
le branchement est le suivant :

Nano : D13 vers Pin19 SCK (Atmega328P)
Nano : D12 vers Pin18 MISO (Atmega328P)
Nano : D11 vers Pin17 MOSI (Atmega328P)
Nano : D10 vers Pin1 RESET (Atmega328P) + PullUP 10k
Nano : 5V vers VCC (Atmega328P)
Nano : GND vers GND (Atmega328P)

J'utilise le gestionnaire de carte miniCore.

Donc j'ai toujours l'erreur suivante :

> Erreur lors de la gravure de la séquence d'initialisation.
> Reading | ################################################## | 100% 0.02s
> 
> avrdude: Device signature = 0x0000ff
> avrdude: Expected signature for ATmega328P is 1E 95 0F
>          Double check chip, or use -F to override this check.

Par contre a chaque fois que j’essaie pour la première fois un nouveau atmega328P :

> avrdude: Version 6.3-20201216
>          Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
>          Copyright (c) 2007-2014 Joerg Wunsch
> 
>          System wide configuration file is "C:...avrdude.conf"
> 
>          Using Port                    : COM3
>          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 = 0x1e950f (probably m328p)
> avrdude: erasing chip
> avrdude: reading input file "0x3f"
> avrdude: writing lock (1 bytes):
> 
> Writing | ################################################## | 100% 0.02s
> 
> 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.00s
> 
> avrdude: verifying ...
> avrdude: 1 bytes of lock verified
> avrdude: reading input file "0b11111101"
> avrdude: writing efuse (1 bytes):
> 
> Writing | ################################################## | 100% 0.03s
> 
> avrdude: 1 bytes of efuse written
> avrdude: verifying efuse memory against 0b11111101:
> avrdude: load data efuse data from input file 0b11111101:
> avrdude: input file 0b11111101 contains 1 bytes
> avrdude: reading on-chip efuse data:
> 
> Reading | ################################################## | 100% 0.00s
> 
> avrdude: verifying ...
> avrdude: 1 bytes of efuse verified
> avrdude: reading input file "0b11010111"
> avrdude: writing hfuse (1 bytes):
> 
> Writing | ################################################## | 100% 0.03s
> 
> avrdude: 1 bytes of hfuse written
> avrdude: verifying hfuse memory against 0b11010111:
> avrdude: load data hfuse data from input file 0b11010111:
> avrdude: input file 0b11010111 contains 1 bytes
> avrdude: reading on-chip hfuse data:
> 
> Reading | ################################################## | 100% 0.01s
> 
> avrdude: verifying ...
> avrdude: 1 bytes of hfuse verified
> avrdude: reading input file "0b11110111"
> avrdude: writing lfuse (1 bytes):
> 
> Writing | ################################################## | 100% 0.02s
> 
> avrdude: 1 bytes of lfuse written
> avrdude: verifying lfuse memory against 0b11110111:
> avrdude: load data lfuse data from input file 0b11110111:
> avrdude: input file 0b11110111 contains 1 bytes
> avrdude: reading on-chip lfuse data:
> 
> Reading | ################################################## | 100% 0.01s
> 
> avrdude: verifying ...
> avrdude: 1 bytes of lfuse verified
> 
> avrdude done.  Thank you.
> 
> 
> avrdude: Version 6.3-20201216
>          Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
>          Copyright (c) 2007-2014 Joerg Wunsch
> 
>          System wide configuration file is "C:\.../avrdude.conf"
> 
>          Using Port                    : COM3
>          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
> 
> Erreur lors de la gravure de la séquence d'initialisation.
> Reading | ################################################## | 100% 0.02s
> 
> avrdude: Device signature = 0x00ff00
> avrdude: Expected signature for ATmega328P is 1E 95 0F
>          Double check chip, or use -F to override this check.
> 
> avrdude done.  Thank you.

Voila je ne comprend pas pourquoi ça ne fonctionne pas j'ai vérifier 10 fois mon câblage plus changer les fil.

hello
MERCI RITON

J'ai suivis cette explication et ton lien me donne rien de nouveau. Merci quand même.

Ici tu programmes les fusibles de l'ATmega.
Je ne comprends pas ce que tu veux faire ensuite.

J'essaie de programmer 1 fois les fusibles mais ça ne fonctionne pas. Ensuite je veux simplement y envoyer un programme mais je doit deja programmer les fusibles.

Dans ta copie d'écran on voit que la programmation des fusibles s'est bien passée

Dans la vidéo il explique qu'il ne charge pas de bootloader donc il n'y a rien de plus en principe.

Pour charger un programme, il faut utiliser le menu "Croquis/Téléverser en utilisant un programmateur" et non pas le bouton téléverser de la barre d'outils.

Tu as sélectionné la bonne option pour l'horloge, en fonction de ton montage?

Le message lors de la première tentative de chaque nouveau atmega (j'en ai essayé 6) est toujours le même.
Comme si ça gravé et aussitôt ça redémarre pour finalement me dire : Erreur lors de la gravure de la séquence d’initialisation. Donc j'imagine que ça n'a jamais fonctionné.

Ensuite dans les tentatives suivante j'ai toujours

avrdude: Device signature = 0x00ff00
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.

J'ai changé mon arduino nano par un autre nano, j'ai aussi essayé avec un Uno, j'ai refait les bootloaders des nano, j'ai essayé avec les pin ICSP directement "au cul" des nano, j'ai changé les jump, j'ai refait plein de fois le cablage, j'ai même changé de breadboard, j'ai essayé sur un autre PC, j'ai essayé plusieurs cable USB. J'ai selectionné l'horloge interne 8mhz et l'horloge externe 16Mhz et plein d'autre options du miniCore
Toujours la même erreur......

Évidement quand je veux téléverser un programme ça ne fonctionne pas puisque les fusibles ne sont pas gravé :

avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.
Mauvais microcontrôleur trouvé. Avez-vous sélectionné la bonne carte dans le menu Outils > Type de carte ?

Bonjour,

Je vois que tu as sélectionné "clock extern 16MHz".
Est ce que ton atmega328 a un quartz externe? Sinon après écriture des fusibles, tu ne pourras plus y accéder sans avoir cablé le quartz (et les condensateurs).

Ah Super ! Oui c'était bien ça le problème, effectivement a chaque nouveau atmega je sélectionné avec un quartz externe car j'en ai besoin à la base et pour ma breadboard qui me sert simplement de téléversement je n'avais pas mis de quartz d’où l'erreur.... J'ai cherché toute la soirée et c'était simplement ça le problème ! Merci encore en espérant que ce poste aide quelqu'un d'autre.