[RESOLU]Atmega 1284p bootload via duemillanove en ISP

Bonjour à tous,

je m' apprête à charger le bootloader du 1284p fourni par Skywodd dans ce topic.

J' ai préparer un pcb sous forme de shield pour le monter sur mon arduino 2009, ( bon d' accord, Duemilanove!) dessus j' ai monté un résonateur avec les capa adéquate.

Le routage est adapté pour un flash ISP.

Coté soft, j' ai rajouté les lignes dans le fichier boards.txt donné par Skywodd dans le topic suscité au préalable.

Maintenant, il me manque la marche à suivre.

il faut sélectionner outils>programmateur>arduino as ISP,
ensuite, sélectionner outils>type de carte>atmega1284p 16MHz.

Mais celà me parait pas fonctionnel; que met on dans le sketch pour charger le bootloader?

Ne serait-ce pas par le port série, puis envoyer directement un sketch d' exemple?

Bref je n' ai pas tout compris visilement... :disappointed_relieved:

Merci pour vos lumière.

Bonjour,
Peut être une piste dans : icareDuino

Bonjour,

Quel erreur fournit le logiciel ?

Pour plus de détails -> Fichier -> Préférences, puis cocher "afficher plus de détails compilation / téléversement".

@+

Zoroastre.

weetoz:
il faut sélectionner outils>programmateur>arduino as ISP,
ensuite, sélectionner outils>type de carte>atmega1284p 16MHz.

Mais celà me parait pas fonctionnel; que met on dans le sketch pour charger le bootloader?

Soyons clair de quel sketch parles-tu?
Dans la carte arduino qui sert de programmateur tu charges le sketch ArduinoISP que tu trouves dans le menu Fichier/Exemples
Tu raccordes la carte Arduino à la carte dans laquelle tu veux programmer le bootloader
Tu choisis le bon type de carte 1284xx avec le bootloader que tu veux
Tu sélectionnes Arduino as ISP dans le menu Outils/Programmateur
Tu cliques Graver la séquence d'initialisation dans le menu Outils.

Il y a aussi la solution présentée par Nick Gammon:

Je l'ai utilisée sur ma propre carte 1284p et j'en suis content.

Merci à vous pour vos indication. :wink:

Désolé pour le coté très brouillon de ma question, en effet je dois préciser que je recherche à utiliser la méthode wiring.co

Dans cette méthode, il faut télécharger un IDE qui se nomme Wiring, ici

Aussi, c' est un atmega 1284-p pu.
Mon atmega 328 a un bootload de Arduino UNO, Mais si ma carte est une Duemianove, il suffit de sélectionner : outils ->type de carte -> arduino uno pour charger mon sketch.

@ Icare, merci pour ton intervention,
visiblement, tu utilises un interface usbtiny... je n' en possède pas, je voudrais utiliser ma duemilanove pour
graver le bootloader et mes différents sketchs.
Super pour les différentes méthodes d' intégrations des pins, je regarderais tous ça après...

@fdufnews, merci également,
pour le sketch, c' est ArduinoISP, j' arrive à l' uploader dans le 328p, ensuite je branche le 1284p-pu ( mosi, miso...) , je selectionne la carte 1284p 16MHz dan outis, type de carte.
voici le retour monitor:

avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

je vais regarder la méthode gammon...
Merci à tous pour vos commentaires. 8)

Bonjour,
Regarde la discussion suivante, tu y trouveras peut être ce que tu cherches.
@+

Pour ton information l'IDE Wiring est l'original !
L'Ide Arduino n'est que le fork de l'IDE Wiring.
A mon avis tu ne perd pas au change, depuis le fork les bibliothèques ont plus progressé chez Wiring que chez Arduino.

Seul bémol chez Wiring :ils n'ont pas su créer de communauté comme celle d'arduino.

Au départ c'est un projet universitaire :
professeur : Massimo Banzi
étudiant : Hernando Barragan
À l'évidence le coté marketing est du coté Banzi et le coté technique du côté Barragan.
C'est comme chez Apple avec Jobs et Wozniack ou chez Microsoft avec Gates et Allen
C'est rarement le meilleur technicien qui tire la couverture à lui.

Bonjour à tous,

j' ai réussi avec la méthode la plus simple: ( à 2 heures du matin, " gravure de la séquence d' initialisation réussi", ça fait plaisir.) :sunglasses:

1- Télécharger l'"optiboot_atmega1284p.hex"et le copier dans /hardware/arduino/bootloaders/optiboot.
2- Ajouter ces lignes dans /hardware/arduino/boards.txt

m1284p.name=ATmega1284p 16MHz
m1284p.upload.protocol=arduino
m1284p.upload.maximum_size=130048
m1284p.upload.speed=115200
m1284p.bootloader.low_fuses=0xff
m1284p.bootloader.high_fuses=0xde
m1284p.bootloader.extended_fuses=0xfd
m1284p.bootloader.path=optiboot
m1284p.bootloader.file=optiboot_atmega1284p.hex
m1284p.bootloader.unlock_bits=0x3F
m1284p.bootloader.lock_bits=0x0F
m1284p.build.mcu=atmega1284p
m1284p.build.f_cpu=16000000L
m1284p.build.core=standard
m1284p.build.variant=standard

3- Ouvrir l' IDE Arduino
4- Téléverser ArduinoISP comme n' importe quels autres sketchs.
5- Câbler le 1284p à l' arduino. ( je ne décris pas le câblage ici ).
6- Sélectionner Outils -> Programmateur -> Arduino as ISP
7- Sélectionner Outils -> Type de carte -> Atmega 1284p 16 MHz
8- Sélectionner Outils -> Graver la séquence d' initialisation.

Ce n' est pas fini pour autant... :sleeping:

Merci 68tjs pour l' info sur Wiring, et la p' tite " storie" façon Silllicon Valley.
Je pense tester Wiring un peu plus tard ( genre quelques jours ).

Merci Icare pour le lien, malheureusement mon anglais est à la masse...
Du coup même chose, quelques jours...

Merci Fdufnews, en fait je me suis un peu mélangé les béquilles dans les divers tuto et doc trouvé ici et là, j' avais besoin de remettre tout ça en ordre, et après faut manipuler, il y a que ça de vrai!! :smiley:

Voilà, un beau résolu. 8)

[édit ] ... ps si résolu que ça.

Bonjour bonsoir à tous,

impossible de charger un sketsch, même pas le " Blink ".
Pour info:

Blink.ino:18:21: error: Arduino.h: No such file or directory
Blink.ino: In function 'void setup()':
Blink:20: error: 'OUTPUT' was not declared in this scope
Blink:20: error: 'pinMode' was not declared in this scope
Blink.ino: In function 'void loop()':
Blink:25: error: 'HIGH' was not declared in this scope
Blink:25: error: 'digitalWrite' was not declared in this scope
Blink:26: error: 'delay' was not declared in this scope
Blink:27: error: 'LOW' was not declared in this scope

J' utilise l' IDE 1.0.5 et 1.0.6.

J' opte pour la méthode NickGammon, celle-ci me parais plus intéressante au vu des sketchs proposé.

Il y a t-il un risque si j' essais de re-graver un bootloader sur mon 1284p-pu?

Voici le retour monitor pour le sketsch Atmega_Board_detector:

Atmega chip detector.
Written by Nick Gammon.
Version 1.11
Compiled on Dec 30 2014 at 17:49:33
Entered programming mode OK.
Signature = 1E 97 06 
Unrecogized signature.
LFuse = 62 
HFuse = 00 
EFuse = FF 
Lock byte = FF 
Clock calibration = A3 

First 256 bytes of program memory:

0: FF FE FF 01 02 FF FF FF FF FF FF FF FF FF FF FF 
10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
30: FF FF FF 19 FF FF FF FF FF FF FF FF 1E FF FF FF 
40: FF FF FF FF FF FF 23 FF FF FF FF FF FF FF FF FF 
50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
80: FF FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF 
90: FE FF FF FF FF FF 4B FF FF FF FF FF FF FF FF FF 
A0: FF FF FF FF FF FF FF 53 FF FF FF FF FF FE FF FF 
B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
D0: FF FF 69 FF FF FF FF FF FF FF FF FF FF FF FF FF 
E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 77 
F0: FF FF FF FF FF FF FF FF FF 7C FF FF FF FF FF FF

Donc visiblement pas de bootloader, plus inquiètant, en lisant les lignes " First 256 bytes of programming memory",
dans son exemple, les deux dernières lignes ne contiennent que des paires de F.

J' ai essayé avec et sans oscillateur externe, refait le câblage, rien n' y change.

Si vous avez des pistes...

Bonsoir,
Pourquoi ne pas essayer une des méthodes proposées qui marchent ?
@+

Les erreurs retournées ne concernent pas le bootloader mais un problème de compilation.

Blink.ino:18:21: error: Arduino.h: No such file or directory

Le compilateur ne trouve pas Arduino.h d'où les erreurs suivantes qui sont en rapport avec des noms et fonctions définies dans le dit Arduino.h

Si tu as choisis la bonne cible dans le menu Outils/Type de carte alors c'est que tu as mal configuré la description de ta carte dans le fichier board.txt ou mal placé les fichiers associés à cette nouvelle cible dans le répertoire hardware

Bonsoir Icare,

effectivement, j' ai été impatient, devant les divers tutos, j' ai essayé de faire un choix... j' ai éliminé Wiring S, car l' IDE ne fonctionnait pas correctement et de plus ce dernier utilise des sketch en .pde,

puis je suis tombé sur ton post
mais visiblement, lorsque j' ai cru avoir réussi, je me suis loupé, j' avais utilisé l' optiboot fourni par Skywodd dans ce post, et appliqué cette procédure:

weetoz:
1- Télécharger l'"optiboot_atmega1284p.hex"et le copier dans /hardware/arduino/bootloaders/optiboot.
2- Ajouter ces lignes dans /hardware/arduino/boards.txt

m1284p.name=ATmega1284p 16MHz

m1284p.upload.protocol=arduino
m1284p.upload.maximum_size=130048
m1284p.upload.speed=115200
m1284p.bootloader.low_fuses=0xff
m1284p.bootloader.high_fuses=0xde
m1284p.bootloader.extended_fuses=0xfd
m1284p.bootloader.path=optiboot
m1284p.bootloader.file=optiboot_atmega1284p.hex
m1284p.bootloader.unlock_bits=0x3F
m1284p.bootloader.lock_bits=0x0F
m1284p.build.mcu=atmega1284p
m1284p.build.f_cpu=16000000L
m1284p.build.core=standard
m1284p.build.variant=standard



3- Ouvrir l' IDE Arduino
4- Téléverser ArduinoISP comme n' importe quels autres sketchs.
5- Câbler le 1284p à l' arduino. ( je ne décris pas le câblage ici ).
6- Sélectionner Outils -> Programmateur -> Arduino as ISP
7- Sélectionner Outils -> Type de carte -> Atmega 1284p 16 MHz
8- Sélectionner Outils -> Graver la séquence d' initialisation.

J' ai dû faire une belle bétise, car quand j' ai voulu testé le sketch " Blink " ça a foiré...

Donc, j' ai regardé les deux autres méthodes que 68tjs et toi m' avez proposé, n' ayant pas de carte usbtiny ou autre carte du genre pour graver le bootloader, j' opte pour la solution Nick Gammon, la plus abordable pour moi.

J' ai testé le sketch Atmega_board detector pour voir le retour monitor, et là visiblement, quelque chose a bien été gravé, mais quoi?

Voici un retour monitor du même skecht avec un Attiny 85 vierge:

Atmega chip detector.
Written by Nick Gammon.
Version 1.11
Compiled on Dec 30 2014 at 19:30:36
Entered programming mode OK.
Signature = 1E 93 0B 
Processor = ATtiny85
Flash memory size = 8192 bytes.
LFuse = 62 
HFuse = DF 
EFuse = FF 
Lock byte = FF 
Clock calibration = 81 
No bootloader support.

First 256 bytes of program memory:

0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

On voit bien la différence sur les lignes " First 256 bytes of programming memory".

Maintenant, ma question est: est-ce que je peux récupérer mes âneries ou jeter mon 1284p-pu et en recommander un autre.

Pour l' instant, mes première recherches ne sont pas réjouissantes, mais je ne désespère pas. :sunglasses:

Je te remercie une fois de plus pour tes réponses et indication, j' en profite aussi pour te féliciter avec ton " IcareDuino", la grande classe!

@Fdufnews,

en effet, j' ai comparé les lignes rajoutées et le fichier boards.txt " mighty", pas de différence à part une ligne commenté:
#mighty_opt.build.core=arduino:arduino
dans la première section.

J' ai tenté de regraver le bootloader optiboot_atmega1284p.hex,
et voici le retour d' erreur:

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Mighty 1284p 16MHz using Optiboot"
avrdude: Expected signature for ATMEGA1284P is 1E 97 05
         Double check chip, or use -F to override this check.

Alors que le retour monitor de atmega_board_detection donne:

Signature = 1E 97 06

Visiblement, j' avais gravé le mauvais bootloader.

Je pense que lorsque j' ai gravé la séquence d' initialisation, j' ai dû rester sur la carte UNO.

Bonsoir,
Celui là fonctionne : Arduino on ATmega1284P | maniacbug
voir sous : Get the Software

Bonjours,

me revoici avec un atmega tout neuf et enfin bootloadé! 8)

Voici le retour monitor du sketch atmega board detector de Nick Gammon:

Atmega chip detector.
Written by Nick Gammon.
Version 1.12
Compiled on Jan 21 2015 at 15:52:56
Attempting to enter programming mode ...
Entered programming mode OK.
Signature = 1E 97 05 
Processor = ATmega1284P
Flash memory size = 131072 bytes.
LFuse = FF 
HFuse = DE 
EFuse = FD 
Lock byte = CF 
Clock calibration = 51 
Bootloader in use: Yes
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 1024 bytes starting at 1FC00

et celui de fuse_calculator:

Atmega fuse calculator.
Written by Nick Gammon.
Version 1.9
Compiled on Jan 21 2015 at 15:57:49
Attempting to enter programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x97 0x05 
Processor = ATmega1284P
Flash memory size = 131072
LFuse = 0xFF 
HFuse = 0xDE 
EFuse = 0xFD 
Lock byte = 0xCF 
Clock calibration = 0x51 
OCD Enable.............................. [ ]
JTAG Enable............................. [ ]
Enable Serial (ICSP) Programming........ [X]
Watchdog Timer Always On................ [ ]
Preserve EEPROM through chip erase...... [ ]
Boot into bootloader.................... [X]
Divide clock by 8....................... [ ]
Clock output............................ [ ]
Bootloader size: 1024 bytes.
Start-up time: SUT0: [ ]  SUT1: [ ] (see datasheet)
Clock source: low-power crystal.
Brownout detection at: 2.7V.

Malheureusement, je n' arrive pas à uploader le sketch blink... :cry:

avrdude: stk500_getsync(): not in sync: resp=0x00

J' enlève le 328p qui a servi d' arduino as isp, je câble comme suit:

Arduino 1284p
RX TX0 ( pin 15 )
TX RX0 ( pin 14 )
Reset Reset ( pin 9 ) avec et sans résistance de pull-up, et j' ai aussi testé avec une capa de 100nF entre les deux broches resets.

Je me demande si il ne faut pas laisser le 328p sur l' Arduino avec le sketch arduino as ISP?

Si vous avez d' autre idées, n' hésitez pas! :sunglasses:

avec le 328p sur la duemilanove, ça ne fonctionne pas non plus:
avrdude: stk500_getsync(): not in sync: resp=0x0d
Mais le code d' erreur a légèrement changé! :grin: