Mettre un atmega328 en arduino

Oui ça j'ai bien compris, moi sur ma carte (je n'aime pas de travailler sur breadboard en fait), j'ai un quartz à 16 M Hz en fait. Donc ce n'est pas un problème d'atmega selon moi

Bon... fait une photo pour montrer ton montage parceque là je ne comprends plus trop ce que tu utilises ou fait comme montage :sweat_smile:

Bonjour,

Jean-François:
La différence c'est que si sur ton breadboard ton Mc fonctionne avec son horloge interne à 8MHz et que tu essayes de lui charger un bootloader en envoyant des infos à 16MHz.... ben ça va pas le faire.
Un peu comme si tu dois prendre le train, tu monte dedans quand il est encore à quai... pas trois minute plus tard XD.

Je rajoute mon petit grain de sel, le bootloader doit être compiler pour le bon µc et avec la bonne fréquence de quartz, cependant il faut aussi que les fusibles soit correct sinon c'est comme vouloir faire avancer un train sans rails :wink:
Pour avoir les fusibles en hexa (donc rien à calculer !) dans le dossier hardware/arduino ce trouve boards.txt qui contient tout les fuses qui vont bien pour le bootloader spécifié.

Exemple, la uno :

uno.bootloader.low_fuses=0xff -> fusibles L
uno.bootloader.high_fuses=0xde -> fusibles H
uno.bootloader.extended_fuses=0x05 -> fusibles E
uno.bootloader.file=optiboot_atmega328.hex -> le fichier .hex du booloader (dans hardware/arduino/bootloader)
uno.build.mcu=atmega328p -> nom du µc ici un ATmega328[color=red]p[/color]
uno.build.f_cpu=16000000L -> quartz 16Mhz

ce qui donnerai :

avrdude -c avrisp -p atmega328p -U flash:w:optiboot_atmega328.hex
avrdude -c avrisp -p atmega328p -U lfuse:w:<0xFF>:m
avrdude -c avrisp -p atmega328p -U hfuse:w:<0xDE>:m
avrdude -c avrisp -p atmega328p -U efuse:w:<0x05>:m

Donc je suppose qu'à la place du quartz à 16 MHz, je dois en mettre un à 8 M? Les fuses, je pensais qu'avec la manière préconisée sur le site, il n'y aurait pas de problème : je croyais que ça se faisait automatiquement. Sinon Jean-François, j'aimerais bien t'envoyer le schematic et le board de mon projet, tu as bien eagle?

Non, je n'utilise pas Eagle.

darkduino:
Sinon Jean-François, j'aimerais bien t'envoyer le schematic et le board de mon projet, tu as bien eagle?

Ce serait peut-être aussi une bonne idée de mettre sur le forum le schéma en .JPG et des photos de ce qu'on fait car la plupart des discussions proviennent des innombrables sous-entendus qui ne sont pas compris par les autres intervenants. Ainsi chacun parle de choses différentes par manque de précision dans les propos.

Exact Jean-Marie, c'est pourquoi je demandais que cela soit illustré par photos ou schémas. :wink:

Hello,
je prends la chose en cours de route, et je crois que j'ai eu le même genre de soucis. Je développe des cartes 'arduino compatibles', au sens 328+ftdi+bootloader & pinout cohérent, et je suis donc dans la même situation que toi lors de la mise en route de mes cartes en fin de ligne d'assemblage.

Il se trouve que j'ai creusé la question, et bien que ce serait possible/envisageable d'utiliser une UNO comme proggy/flasheur vers une carte 2009 compatible, je n'ai pas trouvé de moyen simple de le faire. Je me suis tourné vers une de mes bonne vieilles 2009 "d'origine", et je n'ai aucun problème/j'ai gagné du temps.

Dans ton cas, je dirais que la chose la plus simple à faire, c'est de trouver soit quelqu'un qui a une 2009, soit directement un proggy compatible & d'attaquer le port ISP 6 points de ta carte cible, pour flasher le bootloader depuis l'interface.
J'ai utilisé passe un temps des USBtiny, mais... bon, c'est un peu de la merd... pardon: j'en ai pas été satisfait :confused: J'ai utilisé aussi des proggy sur port parallèle (bidouillables en deux deux), mais j'ai plus forcément de port parallèle (et passé l'age de faire du mc gyverisme comme ca :grin:). J'ai utilisé un dragon, mais il m'a claqué dans les doigts assez vite (cf les commentaires "élogieux" à propos de ce proggy d'entrée de gamme).

Je te proposerais bien de flasher ton 328, mais rien qu'en frais de port, ca va pas être très rentable pour toi... sauf si tu es en région parisienne, auquel cas je t'invite à passer à l'Electrolab pour faire la manip !

C'est sûr qu'on est un peu dans le vide pour le moment. Le schéma est celui-ci où j'ai fait des court-circuit entre les 2 RESET, même chose pour MISO, MOSI et CLOCK

En gros, si j'ai bien compris, si je veux utiliser ce circuit, je dois avoir une duemilanove fonctionnelle?

Je ne vis pas en région parisienne, même pas en france, je suis de belgique, je vais voir si je peux m'arranger avec qqn d'ici pour emprunter une duemilanove

Si tu mets l'Atmega de ta Uno sur la Duemilanova, est ce que cette dernière fonctionne ?

J'avais déjà essayé, ça ne fonctionne pas

Je reformule :

si tu mets blink sur ta Uno et que tu mets ensuite ton atmega sur la duemilanove, est ce que blink fonctionne ?

Effectivement le blink fonctionne toujours lorsque l'atmega est sur la duemilanove, c'est étrange!

Donc, tu as essayé de mettre le sketch ArduinoISP sur ta Uno, tu as ensuite mis l'Atmega sur ta 2009, tu as fait ce branchement :

Tu as changé le port qui identifie la plaque Arduino dans l'IDE, dans "tools" tu as séléctionné "Arduino duemilanove or Nano w/ Atmega328.
Ensuite toujours dans "tools" tu as lancé "Burnbootloader" > "w/ Arduino as ISP" .

L'ensemble est une question XD

Donc j'ai mis le sketch ISP sur ma UNO.
J'ai mis l'atmega sur la duemilanove avec le branchement adéquat.

Mais quand je mets arduino duemilanove or nano, ça foire!

Tu as changé l'identité de la carte dans l'IDE ?

Dans tools- board j'ai mis arduino duemilanove or nano, ç'est ça que tu veux dire?

"tools" >> "serial port" >> l'id de ta carte 2009

Oui mais en fait il y a une confusion quand je programme. Il y a le µC qui vient de la uno qui est sur la 2009 et il y a un µC vide sur la carte que j'ai faite. Il n'y aurait pas moyen de lancer tout le soft sur la 2009 et qu'après je mette le µC de la 2009 sur la UNO avec le soft qui soit OK? En fait comme avec le blink qui fonctionne sur la 2009 sans que je ne fasse quoi que ce soit

La méthode ne fonctionne qu'avec la puce Ftdi, sur la Uno elle a été remplacée par un atmega8 donc ça ne marchera pas.... la finalité c'est qu'il faut que tu utilises la 2009 comme programmeur comme sur le schéma, avec dessus l'atmega ou tu a mis AvrIsp en utilisant la Uno.