[RESOLU]Atmega 1284p bootload via duemillanove en ISP

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:

Bonjour
En fait tu utilises le duemillanove sans le atmega328.
Tu connectes Rx avec Rx et Tx avec Tx.
En fin de compte, c'est comme si tu remplaces le atmega328 par le atmega1284.
A+

L'option low power crytal pose problème.
Les lignes RX et TX sont à coté de l'oscillateur et cela plante la carte.
Il faut utiliser l'option full swing oscillator.

Dans board.txt, pour le nom de carte que tu a défini, il faut changer l'option
xxxxxx.bootloader.low_fuses=0xff
par
xxxxxx.bootloader.low_fuses=0xf7

@ Caape:
C' est aussi ce que j' ai fait, mais rien n' y change. ::slight_smile:
Mais merci de t' intéresser.

@Fdufnews:

Merci, je vais tester ça illico, il faut rebootloader pour que le board.txt soit pris en compte?

De mémoire c'est ce que j'avais fait

Effectivement, modification de board.txt, fermeture de l' ide, réouverture :grin: rechargement du bootloader, upload du sketch et bing!! à vos souhaits!!

Merci Fdufnews, 8)
ça me motive à aller voir de plus près ces histoires de réglage de fuses, afin de me dispenser d' oscillateur externe.