Charger un programme à partir d'une carte SD

NIVELUP.HEX

J’ai donc charger “NameBoardSketch.ino” sur la mega en choisissant la carte “2boots atmega 2560”
J’ai copier sur une carte SD’formatté en FAT) le fichier NIVELUP.HEX
Je raccorde le tout et lorsque je fais un reset, il ne se passe rien.

Je viens de refaire un essai,et apparemment c’est le “winmake flash” qui à un problème (je n’avais pas fais attention la fois précedente.
Les led du programmateur USBASP s’allument bien, mais pas pas celle de la carte Mega.
De plus, il y a des erreurs (listing ci-joint)
JP

winmake flash.txt (5.62 KB)

Y’a pas d’erreurs a part cette histoire habituel de “cannot set sck period”

Là, faudrait un coup de pouce d’un expert parce que je n’ai pas de Mega2560 pour essayer moi même

Bonjour, Comme j'avais un doute, j'ai décidé de tout reprendre depuis le début. Donc, je recharger le bootloader d'origine et il me semble que ça fonctionne mais je n'en suis vraiement pas certain. J'ai toujours cette erreur même erreur (cannot set sck period). Par contre, je ne peux plus charger de sketck (blink par exemple) : j'ai les erreurs suivantes

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

JP

Bonjour, Bon, après avoir plusieurs essais, j'ai réussi à reflacher ma carte avec le bootloader d’origine même si je ne comprends pas pourquoi. J'ai ensuite pu chargé blink est donc vérifier que ça fonctionnait bien. Maintenant, je voudrais tout reprendre calmement depuis le début. Barbudot, pourrais tu STP me faire un listing de ce que je dois faire et surtout l'ordre dans le quel je dois le faire. En effet, je me demande si je ne suis pas un peu emmêle les pinceaux en suivant les différents posts liés à ce sujet. En te remerciant JP

Bonjour à tous, Après quelques jours de pose, je reprends le problème. Mais, avant de retenter les différentes manips (que je ne suis pas sur d'avoir bien exécutés), j’aimerais savoir ceci. Une fois toutes les modifications effectuées, que se passe t' il concrètement lors d'un appui sur reset ou d'une remise sous tension. 1- Est ce que le programme est lu directement a partir de la carte SD ? 2- Est ce que le programme est d'abord copié de la carte SD vers l'Arduino Mega puis ensuite lu à partir de la Mega. Merci bien JP

Je suis désolé, je t’ai un peu laisse tombé, mais pas aml débordé ces derniers temps. Ma UNO est au placard depuis les vacances de Noel…

Normalement le bootloader modifié, s’il trouve la carte SD et le bon fichier HEX va recopier ce fichier HEX dans la flash de l’ATmega puis lancer son exécution.
Si tu laisse la carte SD, a chaque reset la flash est remise à jour.

S’il n’y a pas de carte flash, il écoute le port série pour une téléchargement standard et si rien ne vient il enchaine sur le programme déjà en flash.

Sur un ATmega, le programme doit forcément être dans la flash pour être exécuté.

Il faudrait au moins que je teste en mode Uno si ca marche. Par contre je n’aurais pas de Mega pour tester la version Mega.

Salut Barbudor, Si je peux encore abuser de tes connaissances, je suis prêt à te faire passer une carte Mega et un module SD pour essai. JP

Bonjour à tous,

Je suis actuellement en train de chercher à charger un programme à partir d'une carte SD. J'ai bien lu tout ce topic, et fait les manips de Barbudor.

J'utilise un programmateur différent, un AVRISP MKII (Olimex). J'ai donc fait les modifs suivantes pour le programmateur :

set ISPTOOL=avrispmkii
set ISPPORT=usb
set ISPSPEED=-b 115200

La commande "winmake" fonctionne. Quand je lance la commande "winmake flash" par contre, ça coince.

C:\Users\letoffe\Documents\Arduino\hardware\2boots\bootloaders>winmake flash

C:\Users\letoffe\Documents\Arduino\hardware\2boots\bootloaders>"C:\Program Files
 (x86)\Arduino"\hardware\tools\avr\bin\avrdude -c avrispmkii -p atmega2560 -P us
b -b 115200 -C "C:\Program Files (x86)\Arduino"\hardware\tools\avr\etc\avrdude.c
onf -e -u -U lock:w:0x3f:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m

avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_getsync(): timeout communicating with programmer

avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: stk500v2_recv_mk2: error in USB receive

et ce en boucle. J'ai regardé la doc de mon programmateur : https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/resources/AVR-ISP-MK2.pdf J'ai tenté la section 5.2 pour mettre à jour le firmware, mais toujours le même problème...

Quelqu'un aurait-il une idée?

Merci d'avance !