Bonjour à tous, tout est dans le titre de ce topic.
Je possède une carte arduino nano achetée en 2013.
À l'époque il existait des cartes nano équipées d'ATmega128 et d'ATmega328.
Je me demandais s'il n'y avait une instruction, ou une petit sketch pour avoir ma réponse.
Merci de m'éclairer, bien cordialement à tous
Normalement une gravure sur le microcontrôleur permet de l'identifier. Pouvez-vous faire une photo (nette) en gros plan de celui-ci et l'envoyer sur le forum ? Ou bien regarder de près voir si vous ne pouvez pas la voir vous même ?
Bonjour,
Ça ne serait pas plutôt un 168 et non pas un 128 ?
De toutes façons dans l’IDE Arduino (1.8.19) vous avez le choix :
- 168
- 328
Il vous suffit de télécharger votre code et vous verrez bien de quoi il en retourne.
Il y a d’autres façons de vérifier mais elles sont un peu plus compliquées.
À ma connaissance mais en 2013 Arduino et ses cartes je ne connaissais pas, les nanos n’étaient pas équipées de128 (sous réserve).
Après vous pouvez peut-être lire comme vous le suggère @pandaroux007 de quoi il en retourne sur le micro-contrôleur quoiqu’il est possible qu’une copie ne porte pas de mention.
Bonne journée
PS : essayez de téléverser un sketch de base (blink…) avec les options bootloader 328 -old bootloader et bootloader 168. Vous trouverez ça dans l’onglet processeur si ma mémoire est bonne.
Merci de ce retour rapide. Mes vieux yeux ne voyaient pas bien, et avec du mal j'ai pu déchiffrer le tye de micro controleur. il s'agit d'un ATmega328.
Cependant, je crois qu'avec le temps, les gravures et/ou autres informations sur les composants, CI TTL ou CMOS, ont tendance à disparaitre.
Pas grave, on survivra au moins jusqu'à demain.
Merci pour tout
Merci philippe86220,
Comme je viens du monde linux, je pensais qu'il existait une instruction du genre:
lscpu, ou bien cpuinfo ou encore d'autres .. qui permettent de savoir quel genre de controleur on a.
Du coup, j'ai fait ce que vous préconiser pour savoir ce qui est installé sur le nano que je possède. C'est le bootloader 328_àld qui marche.
Maintenant je me mets au travail, pas trop fort quand même
Bonne soirée à tous
Non, mais on peut lire la signature du CPU avec avrdude.
- Si on donne le bon type de CPU on a la confirmation.
- Si on donne un type erroné de CPU avrdude affiche la signature qu'il a trouvé avec le type supposé de CPU associé à cette signature.
Les copies d'écran ci-dessous on été faites avec une Arduino Diecimila connectée au PC
frederic@frederic-BMAX:~$ avrdude -P /dev/ttyUSB0 -c arduino -b 57600 -p m168p
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e950f (probably m328p)
avrdude error: expected signature for ATmega168P is 1E 94 0B
double check chip or use -F to override this check
avrdude done. Thank you.
frederic@frederic-BMAX:~$ avrdude -P /dev/ttyUSB0 -c arduino -b 57600 -p m328p
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e950f (probably m328p)
avrdude done. Thank you.
C'est une question pas une réalisation ou un projet fini donc déplacement du fil de discussion dans la racine du forum francophone
@fdufnews
On connaît ton prénom maintenant ![]()
Bonne soirée
Oui, mais c'est pas bien grave ![]()
Oui bien sûr ![]()
Il me semble qu’on peut identifier le micro-contrôleur également avec microchip studio.
Bonne soirée
Un peu grillé par @fdufnews (c'est la faute de mon épouse favorite qui est venu me distraire. Quand j'ai pu cliquer sur envoyer je n'avais vu qu'il avait répondu entre temps
)
Pour les microcontrôleurs Atmel avr Il y a un programme qui s'appelle avrdude (pour info avec les ESP32 le programme s'appelle esptool.py).
Avrdude est le programme, écrit par le concepteur du micro, qui permet, a toutes les IDEs, de transférer le programme dans le micro.
Avrdude fait plein d'autres choses qui sont expliqué dans son manuel que l'on peut obtenir avec un moteur de recherche.
Avrdude peut être utilisé par l'intermédiaire d'une des IDEs existantes, ou en ligne de commande.
La signature d'un microcontrôleur n'est pas enregistrée dans la puce, elle est "gravée en dur" dans la puce.
Le contenu de la signature se trouve dans la datasheet du microcontrôleur.
Cas IDE Arduino.
Si l'IDE, par l'intermédiaire d'avrdude, trouve une signature de puce qui ne correspond pas à celle qui est attendue, elle l'affiche dans le moniteur.
Eventuellement activer le mode bavard (verbose).
Il ne reste plus qu'a :
soit faire une recherche sur cette signature (moteur de recherche ou IA).
soit lire les datasheets des micro "probables".
Hi every body!
Merci pour tous vos conseils éclairés, que dis-je, ils m'ont permis de communiquer en direct avec le vieux nano qui dormait au fond d'un de mes "tiroirs".
Après installation de AVRdude sur une UBUNTU 20.04, je suis allé cherché la signature du controleur comme préconisé par la procédure de @fdfnews.
Et bien, il semble qu'il s'agit bien d'un ATMega328P.
Je vais creuser de ce coté .
Merci à tous, GG
Sinon tu peux trouver avrdude qui est installé avec l'IDE dans le répertoire ~/.arduino15/packages/arduino/tools/avrdude
Sinon pour ceux qui possèdent un Mac :
Si AVRdude n'est pas installé et que vous ne souhaitez pas utiliser celui de l'IDE Arduino :
1/ Dans le terminal, pour l'installer :
brew install avrdude
2/ Puis pour connaître le périphérique utilisé par la carte Arduino :
ls /dev/cu.*
Ensuite il faut prendre le bon est taper cette ligne de commande, en ce qui me concerne avec une UNO :avrdude -c arduino -p m328p -P /dev/cu.usbmodem31401 -b 115200 -v
réponse du terminal :
Si j'indique un mauvais modèle de microcontrôleur, par exemple :
avrdude -c arduino -p m168p -P /dev/cu.usbmodem31401 -b 115200 -v alors qu'il s'agit d'un 328p :
Avrdude version 8.0
Copyright see avrdude/AUTHORS at main · avrdudes/avrdude · GitHubSystem wide configuration file is /opt/homebrew/etc/avrdude.conf
User configuration file /Users/philippecostes/.avrduderc does not existUsing port : /dev/cu.usbmodem31401
Using programmer : arduino
Setting baud rate : 115200
AVR part : ATmega168P
Programming modes : SPM, ISP, HVPP, debugWIRE
Programmer type : Arduino
Description : Arduino bootloader using STK500 v1 protocol
HW Version : 3
FW Version : 4.4AVR device initialized and ready to accept instructions
Device signature = 1E 95 0F (ATmega328P, ATA6614Q, LGT8F328P)
Error: expected signature for ATmega168P is 1E 94 0B
** - double check chip or use -F to carry on regardless**Avrdude done. Thank you.
Dans le fichier avrdude.conf vous avez toutes les signatures et si vous avez installé comme moi avrdude par Homebrew vous pouvez le lire en tapant :
cat /opt/homebrew/etc/avrdude.conf car l'installation du fichier se fait normalement ici : opt/homebrew/etc/avrdude.conf
et pour finir j'ai demandé la liste des signatures à ChatGPT :
| Microcontrôleur | Signature |
|---|---|
| ATmega328P | 0x1E 0x95 0x0F |
| ATmega328 | 0x1E 0x95 0x14 |
| ATmega168 | 0x1E 0x94 0x06 |
| ATmega168P | 0x1E 0x94 0x0B |
| ATmega88 | 0x1E 0x93 0x0A |
| ATmega88P | 0x1E 0x93 0x0F |
| ATmega8 | 0x1E 0x93 0x07 |
| ATmega16 | 0x1E 0x94 0x03 |
| ATmega32 | 0x1E 0x95 0x02 |
| ATmega64 | 0x1E 0x96 0x02 |
| ATmega128 | 0x1E 0x97 0x02 |
| ATmega1284P | 0x1E 0x97 0x05 |
| ATmega2560 | 0x1E 0x98 0x01 |
| ATmega2561 | 0x1E 0x98 0x02 |
| ATtiny13 | 0x1E 0x90 0x07 |
| ATtiny25 | 0x1E 0x91 0x08 |
| ATtiny45 | 0x1E 0x92 0x06 |
| ATtiny85 | 0x1E 0x93 0x0B |
| ATtiny2313 | 0x1E 0x91 0x0A |
| ATtiny4313 | 0x1E 0x92 0x0D |
| ATtiny861 | 0x1E 0x93 0x08 |
| AT90USB162 | 0x1E 0x94 0x82 |
| AT90USB646 | 0x1E 0x96 0x82 |
Ici toujours par ChatGPT la liste des commandes courantes :
Cheat Sheet AVRDude - Français
Lire la signature
avrdude -c arduino -p m328p -P /dev/cu.usbmodemXXXX -b 115200 -v
Lire la mémoire flash
avrdude -c arduino -p m328p -P ... -b ... -U flash:r:backup.hex:i
Écrire dans la mémoire flash
avrdude -c arduino -p m328p -P ... -b ... -U flash:w:firmware.hex:i
Lire les fuse bits
avrdude -c arduino -p m328p -P ... -b ... -U lfuse:r:-:h -U hfuse:r:-:h
Dry run (pas d'écriture)
avrdude -n
Ignorer la vérification de la signature
avrdude -F
Mode verbeux (plus de détails)
avrdude -v
Choisir un programmateur
-c arduino | usbasp | usbtiny | stk500v1 | ...
Spécifier le microcontrôleur
-p m328p | t85 | m168 | ...
Définir le port série
-P /dev/cu.usbmodemXXXX ou COM3
Définir le baudrate
-b 115200
un peu plus de commandes dans ce fichier PDF :
cheat_sheet_avrdude_complet_fr.pdf (2,3 Ko)
Au final c'est à la portée de tout le monde ... (Pas besoin de sortir de l'ENA pour travailler en ligne de commande c'est juste plus convivial lorsque c'est l'IDE qui le fait pour vous).
PS : C'est en complément des informations de @fdufnews car les commandes sont les mêmes sur toutes les plateformes
Pour ma part j'ai la version 8.0 d'avrdude.
Merci pour ces dernières précisions.
Je ne peux installer "HOMEBREW" sur mon mac, car trop ancien (2014 - MOJAVE). Je ne peux plus installer Xcode, ce qui semble nécessaire pour "homebrew".
Cependant, je suis allé consulter le fichier "avrdude.conf" dans mon vieil ubuntu, et je constate qu'il est très conséquent. Je saurai me servir de vos conseils.
Autre question idiote: comment mettre ce topic en "résolu" ?
Pour tous ceux qui ont éclairé ma lanterne, un grand merci. Nul doute que je reviendrai vers vous dans un avenir bien proche.
En principe il faut cocher la case solution au niveau du message qui l’a donnée en l’occurrence la réponse en #6 de @fdufnews
Bonne soirée
Non ce n’est pas moi c’est le message de @fdufnews en #6
