Bonjour
Je voudrais installer le bootloader sur un MCU Atmega328PU.
Mais n’ayant pas encore reçu les Quartz 16 MHz j’aimerais le faire au moyen de l’horloge interne de 8MHz. Mais j’aurais quelques questions auxquelles je ne trouve pas de réponse.
Voilà donc:
peux-t-on installer le bootloader sur un Atmega328p vierge directement sur une carte Arduino en remplaçant celui déjà installé ?
2)peux-t-on installer le bootloader sans quartz mais seulement avec l’horloge interne 8MHz ?
peux-t-on revenir à une fréquence de 16Mhz après avoir configurer l’Atmega en 8MHz? En d’autres termes est-ce réversible ?
J’ai déplacé votre sujet de la section forum anglais à la section forum français.
Veuillez vous référer au guide suivant pour plus d’informations. Règles de la section du forum français.
Merci.
ps :un arduino 16mhz supposé avec quartz a démarré sans juste avec les condos du quartz ... mais évidemment je le conseille pas.
PS2 j'ai pas précisé mais ca va de soi .. pour charger le bootloader faut le faire avec le connecteur ICSP
puis board = Atmega328p on a breadboard (8MHz internal clock)
Et enfin Burn Bootloader
Les connexions sont les suivanes:
Carte Arduino. > Atmega328p vierge sans quartz
10. ——————-——— > 1
11. ——————-———> 17
12. ——————-———> 18
13. —————————> 19
+5vusb ————-———-> 7 et 20 >> +5v
GND usb ———————-> 22 >> GND
Voici le message retourné par le compilateur
Arduino : 1.8.19 (Mac OS X), Carte : "ATmega328 on a breadboard (8 MHz internal clock)"
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): unknown response=0x12
Erreur lors de la gravure de la séquence d'initialisation.
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
Ton atmega328 est un processeur neuf?
Si c'est la cas ça doit fonctionner car il est configuré d'origine avec une horloge interne.
Par contre si il a été configuré en horloge externe, il faut un quartz pour que ça fonctionne.
Pourquoi tu précises 5Vusb et GNDusb ? Il s'agit bien du 5V et du GND de la carte UNO?
Bonjour
En fait la carte Arduino est alimenter par l’USB de l’ordinateur et je reprend le +5v et GND de la carte pour alimenter le mcu vierge qui se trouve sur la breadboard.
Comment savoir si l’atmega328 est configuré en 8MHz ?
Pour moi les Atmega328p que j’ai acheté n’ont pas de bootloader
Je t’avoue que je suis un peu paumé
En tout cas merci pour aide.
re bonjour
quand on en a beaucoup a programmer il est souhaitable de réaliser un programmateur adapté soit directement a enficher sur uno soit en réalisant un truc spécifique. la planche a pain ca va bien un moment mais on est jamais a l'abri d'une erreur ou d'un contact merdique.
Un atmega 328P neuf est configuré en mode "test sous pointes" avant découpe du wafer (disque de silicium de quelques dizaines de cm de diamètre).
La config est indiquée dans la datasheet :
oscillateur interne 8 MHz
diviseur par 8 sur l'horloge en service
soit une horloge à 1 MHz.
La datasheet explique tous les réglages possibles.
Pour connaitre la config, il faut lire les "fuses".
Les f uses se lisent avec un programmeur ISCP (carte spécialisée USBasp ou carte arduino + programme ArduinoISCP)
Les fuses se lisent avec le logiciel avrdude dont il existe une notice avec de nombreux exemples.
Attention :
Les fuses sont une zone d'eeprom protégée, c'est pour cela qu'il faut le logiciel spécial avrdude.
Technologiquement en sortie de fabrication l'eeprom est nativement à l'état 1.
L'état "sortie de fabrication" est tous les bits à 1
Pour modifier un bit "Fuse" il faut le mettre à l'état 0.
Bonjour @68tjs
+1
L’avantage d’avrdude c’est qu’il est multiplateforme alors que Microchip studio ne tourne que sous Windows si ma mémoire est bonne.
Il y a également minicore si on veut faire simple : https://github.com/MCUdude/MiniCore
Mais à l’époque où je l’avais testé il souffrait de quelques imperfections.
Même si c'est un peu exagéré d'utiliser un IDE uniquement pour lire la configuration du µC, pour information un palliatif à Microchip studio est MPlab X qui est multiplateforme, je crois que Atmel studio aussi d'ailleurs.
Bonjour
La configuration du MCU 328P se fait toujours au moyen de la carte Arduino uno avec mini core, microchip studio, MPlab x ou avrdude ? Car je n’ai que ce moyen pour l’instant.
Merci
La configuration se fait avec avrdude. Avrdude est un programme écrit par le concepteur du microcontroleur Atmel,( acheté depuis par Microchip).
Ce n'est pas un programme provenant de je ne sais où.
Les logiciels que tu cites utilisent avrdude.
avrdude est obligatoirement inclu dans les fichiers des l'IDEs.
avrdude s'utilise aussi seul en ligne de commande, je sais cela ne plait pas aux windowsiens, mais c'est ce qui fonctionne le mieux.
Question sécurité je pense qu'écrire une ligne est moins dangereux que de se tromper en cliquant au mauvais endroit, cela n'engage que moi.
Une recherche gogole "avrdude manual" donne accès au manuel d'emploi.
Ce document est très clair, il y a les lignes de commande pour lire et les lignes de commandes pour écrire.
C'est la version 6.4, avrdude doit être en 7 maintenant.
Je n'ai pas trouvé de version plus récente probablement parce qu'elle serait inutile.
La 6.4 décrit ce qu'il faut faire.
Le manuel donne la ligne exacte à taper pour lire la configuration des fuses.
La datasheet de l'atmega328p donne ce à quoi cela correspond.
Bonsoir @franck911
Si tu es débutant, le plus simple pour toi c’est minicore. Tu ne mets pas de quartz bien sûr puisque tu n’en as pas pour l’instant et que ton 328p est configuré sur son oscillateur interne
Essaye ça :
Bonne bidouille
Bonne soirée
PS : avec minicore tu choisis 8 mhz interne bien sûr.
Bonjour
Donc j’avance petit à petit, j’ai utilisé minicore et voilà le résultat retourné. Peut-être ai-je mal choisi le programmeur j’ai essayé avec Arduino as ISP ou AVRISP mkII. Je ne vois pas ce qui cloche !!!
Merci pour le coup de main, je désespère pas.
Arduino : 1.8.19 (Mac OS X), Carte : "ATmega328, Yes (UART0), EEPROM retained, 328P / 328PA, BOD 2.7V, LTO disabled, External 16 MHz"
avrdude: Version 7.1-arduino.1
Copyright the AVRDUDE authors;
see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
System wide configuration file is /Users/franck/Library/Arduino15/packages/MiniCore/hardware/avr/2.2.2/avrdude.conf
User configuration file is /Users/franck/.avrduderc
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem641
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : possible i/o
RETRY pulse : SCK
Serial program mode : yes
Parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Alias 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 1 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
signature 0 0 0 0 no 3 1 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 1 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 version 1.x firmware
avrdude stk500_getparm() error: protocol expects OK byte 0x10 but got 0x14
avrdude stk500_getparm() error: protocol expects sync byte 0x14 but got 0x02
avrdude stk500_getparm() error: protocol expects sync byte 0x14 but got 0x10
Hardware Version: 32767
Firmware Version: 48.48
Topcard : STK502
Vtarget : 1.8 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude stk500_initialize() error: protocol expects OK byte 0x10 but got 0x01
avrdude main() error: initialization failed, rc=-1
- double check the connections and try again
- use -B to set lower ISP clock frequency, e.g. -B 125kHz
- use -F to override this check
avrdude stk500_disable() error: protocol expects sync byte 0x14 but got 0x10
avrdude done. Thank you.
Erreur lors de la gravure de la séquence d'initialisation.
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
Je précise que je travaille avec un 328pu.
Je n'ai pas eu le temps de regarder l'origine de ton message d'erreur.
Je repars en forêt faire des photos animalières car c'est la période du brame du cerf.
Bonne journée
PS : Contrairement au tuto je grave le bootloader (j’ai fait un essai sans puis avec)
A lire : RitonDuino: janvier 2020
Bonjour
Merci de ton retour.
En téléversant par l’USB dans la UNO j’ai déjà ce warning qui apparaît (voir photo), j’ai refait des essais sans succès Apparemment dans ce que j’ai pu voir sur les messages d’erreur c’est que les valeurs retournées ne sont pas celles attendues.
Y a t-il un problème avec le MACos ?