Partage
  • Partager sur Facebook
  • Partager sur Twitter

Soucis d'installation du bootloader sur un Atmega

Sujet résolu
    18 avril 2017 à 10:33:02

    Bonjour a tous,

    J'essaie depuis pas mal de temps ( a peut près un mois), d'installer le bootloader sur un ATmega328 AUR à l'aide d'un arduino nano clone. J'ai suivi chaque étapes trouvé sur le site arduino et d'autres sites internet. j'ai placé mes composants la où ils doivent être c'est à dire, un Quartz de 16MHz sur les broches PB6 et PB7, avec deux condensateurs de 18pF du Quartz à la masse, une resistance de 10Kohm de PC6 a la masse, un condensateurs de 100nF de la broches AVCC de l'Atmega à la masse et un condensateurs de 10µF entre les pins reset et GND de l'arduino , puis les connections de L'Atmega à l'arduino c'est a dire :

    Atmega | Arduino

    PC6      | SS

    PB5      | SCK

    PB4      | MISO

    PB3      | MOSI

    Le messages d'erreur quand j'appuie sur "Graver la séquence d'initialisation" est le suivant:

    avrdude: Device signature = 0x1e9514 (probably m328)
    avrdude: Expected signature for ATmega328P is 1E 95 0F

    J'espère que j'ai été clair dans mes explications, et que quelqu'un puisse m'aider vu que je débute dans ce domaine.

    cordialement.

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2017 à 13:08:54

      Ce message t'informe d'une erreur de signature du processeur.

      En français, cela signifie que ton montage est correcte puisque ton PC arrive à dialoguer avec le processeur afin de lire l'identifiant de celui-ci.

      En revanche, l'identifiant qu'il lit est 0x1e9514 (ce qui correspond à un atmega328) alors qu'il s'attend à lire 0x1e950F (ce qui correspond à un atmega328P).

      De mémoire, il me semble qu'il y a quelques petites différence entre atmega328 et atmega328P mais qu'ils sont tous les 2 compatible pour arduino (à vérifier).

      Du coup, vu que tu as des atmega328, il te faudrait configurer ton IDE arduino pour qu'il prenne en compte un atmega328 et non un atmega328P comme il le fait actuellement.

      Ou alors, achètes toi des processeurs atmega328P.

      -
      Edité par lorrio 18 avril 2017 à 13:12:24

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2017 à 13:50:42

        c'est bien se que je me disais...

        du coup comment je configure mon IDE arduino. il y a t'il des tuto sur internet ?

        PS:je suis sur Lubuntu 16.04 t version d'arduino 1.6.8

        -
        Edité par ManuelRios 18 avril 2017 à 14:43:54

        • Partager sur Facebook
        • Partager sur Twitter
          18 avril 2017 à 23:42:43

          Comme tu n'as besoin d'installer le bootloader qu'une seule fois, tu peux le faire en ligne de commande en exécutant directement avrdude: https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader#uploading-code---hard-way

          Le fichier à uploader est /usr/share/arduino/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex et il faut remplacer "-p m328p" par "-p m328" dans les 2 commandes du lien précédent.

          Sinon tu peux ajouter les variantes de l'atmega328 (et d'autres puces) dans le gestionnaire de cartes de l'IDE Arduino grâce à un paquet: https://github.com/sleemanj/optiboot/blob/master/dists/README.md

          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2017 à 10:56:35

            Bonjour, il y a un problème... "ma liste de fichier" s'arrete a usr/share, j'ai pas la suite....

            Que dois-je faire ?

            je suis pas sur d'avoir avrdude d'installer sur mon pc... donc quel version dois-je télécharger ?

            merci de votre aide

            -
            Edité par ManuelRios 19 avril 2017 à 11:39:14

            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2017 à 13:13:19

              Les fichiers optiboot_atmega328.hex et avrdude font partie de l'environnement Arduino, leur emplacement dépend de la façon dont tu as installé l'IDE, mais ils sont forcément présents.

              Cherche dans le répertoire où tu as installé/décompressé l'archive d'Arduino et dans le répertoire ~/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/ (ou un chemin qui y ressemble) et quelque chose comme ~/Arduino//hardware/tools/avr/bin/avrdude ou ~/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino6/bin/avrdude pour avrdude.

              • Partager sur Facebook
              • Partager sur Twitter
                19 avril 2017 à 13:46:30

                ok j'ai trouvé, mais vu qu'un problèmes ne viens jamais seul, sur le fichier c'est pas ecris comme prévu...

                :107E0000112484B714BE81FFF0D085E080938100F7
                :107E100082E08093C00088E18093C10086E0809377
                :107E2000C20080E18093C4008EE0C9D0259A86E02C
                :107E300020E33CEF91E0309385002093840096BBD3
                :107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
                :107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
                :107E6000A2D0813461F49FD0082FAFD0023811F036
                :107E7000013811F484E001C083E08DD089C08234E0
                :107E800011F484E103C0853419F485E0A6D080C0E4
                :107E9000853579F488D0E82EFF2485D0082F10E0AE
                :107EA000102F00270E291F29000F111F8ED06801E7
                :107EB0006FC0863521F484E090D080E0DECF843638
                :107EC00009F040C070D06FD0082F6DD080E0C81688
                :107ED00080E7D80618F4F601B7BEE895C0E0D1E017
                :107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
                :107EF00018F0F601B7BEE89568D007B600FCFDCFD4
                :107F0000A601A0E0B1E02C9130E011968C91119780
                :107F100090E0982F8827822B932B1296FA010C0160
                :107F200087BEE89511244E5F5F4FF1E0A038BF0790
                :107F300051F7F601A7BEE89507B600FCFDCF97BE46
                :107F4000E89526C08437B1F42ED02DD0F82E2BD052
                :107F50003CD0F601EF2C8F010F5F1F4F84911BD097
                :107F6000EA94F801C1F70894C11CD11CFA94CF0C13
                :107F7000D11C0EC0853739F428D08EE10CD085E9AC
                :107F80000AD08FE07ACF813511F488E018D01DD067
                :107F900080E101D065CF982F8091C00085FFFCCF94
                :107FA0009093C60008958091C00087FFFCCF809118
                :107FB000C00084FD01C0A8958091C6000895E0E648
                :107FC000F0E098E1908380830895EDDF803219F02E
                :107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
                :107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
                :047FF000FF270994CA
                :027FFE00040479
                :0400000300007E007B
                :00000001FF

                dois je remplacé le texte par un autre, c'est bien ça ? ou je dois modifié quelque chose avec le terminal ?

                encore merci de votre aide.

                -
                Edité par ManuelRios 19 avril 2017 à 16:06:11

                • Partager sur Facebook
                • Partager sur Twitter
                  19 avril 2017 à 16:16:00

                  C'est bien le bon fichier, avec le bon contenu. Les firmwares peuvent être en format hexadécimal comme ici ou binaires (souvent avec l'extension .bin), avrdude comprend les 2.

                  Juste pour résumer, tu dois exécuter ces 2 lignes (en changeant les chemins, et /dev/ttyACM0 si ce n'est pas le port sur lequel est connecté l'arduino):

                  /chemin/vers/avrdude -P /dev/ttyACM0 -b 19200 -c avrisp -p m328 -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m
                  /chemin/vers/avrdude -P /dev/ttyACM0 -b 19200 -c avrisp -p m328 -v -e -U flash:w:/chemin/vers/optiboot_atmega328.hex -U lock:w:0x0F:m



                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 avril 2017 à 16:28:53

                    ok et je le fais depuis le terminal c'est bien ça ?

                    le port connecté est /dev/ttyUSB0

                    -
                    Edité par ManuelRios 19 avril 2017 à 16:31:30

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 avril 2017 à 16:33:27

                      ManuelRios a écrit:

                      ok et je le fais depuis le terminal c'est bien ça ?

                      Oui.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 avril 2017 à 16:51:51

                        et bien sa ne fonctionne pas, j'écris se vous avez noté
                        /chemin/vers/avrdude -P /dev/ttyACM0 -b 19200 -c avrisp -p m328 -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m
                        en remplaçant /dev/ttyACM0 par /dev/ttyUSB0 et ça ne fonctionne pas.
                        voici le message d'erreur:
                        bash: /chemin/vers/avrdude: Aucun fichier ou dossier de ce type

                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 avril 2017 à 17:05:49

                          J'avais aussi indiqué qu'il fallait aussi remplacer les chemins, donc remplacer "/chemin/vers/" au début de chaque ligne par le chemin où se trouve avrdude et remplacer le "/chemin/vers/" au milieu de la seconde ligne par celui où se trouve le fichier optiboot_atmega328.hex.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 avril 2017 à 10:00:37

                            oh oui veuillez m'excuser, j'avais pas bien vu.. je viens d'entrer les deux commandes et il me dit: bash: /home/invite/.arduino15/packages/arduino/tools/avrdude : est un dossier.

                            serais-ce que je ne pas toute les permissions,vu que je suis sur un compte secondaires sur le PC ?

                            -
                            Edité par ManuelRios 20 avril 2017 à 10:08:24

                            • Partager sur Facebook
                            • Partager sur Twitter
                              20 avril 2017 à 10:13:05

                              Je serais plutôt d'avis de dire que c'est parce que /home/invite/.arduino15/packages/arduino/tools/avrdude est un dossier et qu'on ne peut pas exécuter un dossier.

                              Il est fort probable que ce dossier contienne tous les fichiers du logiciel avrdude (exécutable, lib, header...) et donc qu'il contienne donc aussi l'exécutable avrdude.

                              Essayes avec /home/invite/.arduino15/packages/arduino/tools/avrdude/avrdude [...]

                              -
                              Edité par lorrio 20 avril 2017 à 10:14:31

                              • Partager sur Facebook
                              • Partager sur Twitter
                                20 avril 2017 à 10:19:01

                                j'ai reussi, enfin presque... j'ai mis avrdude au début du programme puis les commandes donné par Alexisdm, mais le terminal me donne ce message d'erreur: "avrdude: verification error; content mismatch"


                                Et oui le chemin n'est pas fini, il a l’intérieur de ce dossier un autre dossier nommé "6.3.0-arduino8" puis les dossiers bin, lib, includes, etc  et share.

                                -
                                Edité par ManuelRios 20 avril 2017 à 13:50:03

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 avril 2017 à 14:41:41

                                  Tu peux mettre les quelques lignes qui précède le message d'erreur, ça aide pour avoir un peu de contexte...

                                  Je crois que ça devait être:

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

                                  Si c'est le cas, remplace "-U efuse:w:0x05:m" par "-U efuse:w:0xFD:m", ça revient au même, mais ça devrait supprimer l'erreur. Juste pour info (on en apprend tous les jours), au moment de l'écriture du guide sur sparkfun, les bits inutilisés des fusibles devaient être mis à 0, et sur les versions actuelles ils doivent être mis à 1 parce que c'est la valeur effectivement renvoyée par l'atmega, et efuse (le fusible étendu) n'a que les 3 premiers bits utilisés sur les atmega328, donc si on écrit 0x05, on va relire 0xFD. Si tu veux savoir le rôle des différents fusibles sans trop te plonger dans la datasheet: http://www.engbedded.com/fusecalc 

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    20 avril 2017 à 15:31:22

                                    du coup j'ai juste a changé ça et mon atmega sera flashé ? tout sera bon ?

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      20 avril 2017 à 16:11:44

                                      si ça mets ça, ça veut dire que c'est bon ?

                                      avrdude: safemode: hfuse reads as 6
                                      avrdude: safemode: efuse reads as FD
                                      avrdude: safemode: Fuses OK (E:FD, H:06, L:FF)

                                      avrdude done.  Thank you.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        20 avril 2017 à 18:18:06

                                        Non, c'était 0xD6 pour hfuse, tu as dû faire une erreur de recopie. Tu viens de désactiver la broche reset, et de verrouiller la possibilité de programmer ton atmega.

                                        Si tu as accès à la majorité des broches c'est encore récupérable, mais c'est beaucoup plus compliqué et tu as encore plus de chances de griller totalement la puce, parce qu'il faut un programmateur parallèle haute tension (HVPP) ou au moins en faire un toi même: https://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/

                                        -
                                        Edité par alexisdm 20 avril 2017 à 18:19:16

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          21 avril 2017 à 11:37:30

                                          ah oui !! je viens de vérifier j'ai bien 06 au lieu de D6... bon je vais ressouder un atmega sur ma breakout board et réessayer, normalement la ça devrait marcher, j'espere... je reviens a vous si j'ai un soucis
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            24 avril 2017 à 14:44:29

                                            bonjour, je viens de corriger le programme, et mis sur un nouvelle ATmega328 AUR, le message de conclusion est le suivant:

                                            avrdude: verifying ...
                                            avrdude: 1 bytes of lfuse verified
                                            avrdude: reading input file ""
                                            avrdude: error opening : No such file or directory
                                            avrdude: can't determine file format for , specify explicitly
                                            avrdude: read from file '' failed

                                            avrdude: safemode: hfuse reads as D6
                                            avrdude: safemode: efuse reads as FD
                                            avrdude: safemode: Fuses OK (E:FD, H:D6, L:FF)



                                            ai-je réussi ?

                                            Encore merci de m'avoir aidé Alexisdm et Lorrio.

                                            -
                                            Edité par ManuelRios 24 avril 2017 à 14:51:47

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              24 avril 2017 à 15:22:57

                                              Au moins tu ne l'as pas bloqué, donc pour la 1ère ligne c'est bon, les fusibles sont corrects, tu n'as plus besoin de ré-exécuter cette ligne.

                                              Pour la 2e commande, il ne trouve pas le chemin, donc je crois que tu as mis un espace entre "-U flash:w:" et le chemin vers le fichier optiboot_atmega328.hex alors qu'il ne devrait pas y en avoir.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                24 avril 2017 à 15:42:50

                                                Exact ! C'est bon j'ai réussi ! encore mille fois merci !
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Soucis d'installation du bootloader sur un Atmega

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown