Salut Barbudor
Eh bien, puisqu'il n'y a pas d'autre solution, je vais donc modifier et le PCB et le programme.
De ce fait, je vais donc câbler mon module SD aux broches 50 à 52.
Bonjour à tous,
J'ai donc modifié mon programme et je viens de passer commande pour mon nouveau PCB.
Mais , Barbudor, je peux, si tu as une solution pour le bootloader faire les essais sur la Méga nue en attendant.
JP
Salut Barbudor,
Loin de moi l'idée de t'imposer quoique ce soit.
Je m'estime déjà suffisamment heureux que les intervenants de ce forum prennent le temps de se pencher sur mon problème.
Bonne soirée à tous
JP
J'ai d'une part essayé de convertir le Makefile linux en fichier de commande windows pour builder le bootloader
Et j'ai aussi du reprendre un peu stk500v1 pour la mega2560.
Ca compile et génère un HEX mais je suis pas encore sur que ce soit bon
Voici déjà ce que j'ai fait
Demain je regarde pour faire un board.txt adapté pour facilement flasher la Mega2560
Bonjour à tous,
Bonjour Barbudor, je sais , ce n'est pas très poli de faire cette démarche mais bon...
As tu trouvé une solution au problème de chargement à partir de la carte SD ?
Bonne journée
JP
J'ai malheureusement un peu trop rapporté de boulot à la maison ces derniers jours, ne laissant pas trop de temps pour la bricole.
J'espérais aussi qu'une âme bienveillante jète un coup d'oeil a ce que j'ai fait pour confirmer...
je vais essayer de m'y remettre cette semaine
@bricopin
Quelle broche as tu choisit sur ta Mega pour le chip-select de la carte SD ?
Ci joint les modifs effectuées
winmake.cmd : fichier de commande qui remplace le makefile. Il permet de construire le bootloader pour ATmega328p ou pour ATmega2560. La broche a utiliser comme chipselect pour la carte SD doit être précisée dans le fichier CMD par son port (A, B, C, ...) et le numéro de bit dans le port.
par exemple pour ATmega328p j'utilise la pin 4 qui correspond au port 4, pin 4. Pour Mega2560 broche 49 (port L pin 0).
stk500v1 : ajouter le "defined(ATmega2560) pour que ca compile pour ATmega2560
board-arduino.h : idem
création d'un board.txt qui devrait correspondre
Dans ton répertoire sketches, créer un sous répertoire hardware (obligatoire) et dézipper dedans le fichier ci-dessous
Il faut modifier winmake.cmd pour définir la bonne broche CS
Modifier aussi pour le chemin à ton environnement Arduino et pour le programmateur que tu vas utiliser
Dans une fenêtre DOS :
lancer "winmake" pour compiler le bootloader
lancer "winmake flash" pour flasher le bootloader
Ensuite pour flasher tes sketches depuis l'IDE, utiliser la carte "2boots ATmega2560"
Bonjour Barbudor
Avant de faire les essais, je voudrais être sur de tout comprendre.
Quelle broche as tu choisit sur ta Mega pour le chip-select de la carte SD ?
La broche pour le chip-select est la broche 53, donc quelle sont les valeurs à mettre dans le winmake.cmd pour le port et pour le N° de bit (et comment les calcules tu ?)
stk500v1 : ajouter le "defined(ATmega2560) pour que ca compile pour ATmega2560
board-arduino.h : idem
La, j'ai besoin que tu m'explique ce que je dois faire.
Modifier aussi pour le chemin à ton environnement Arduino et pour le programmateur que tu vas utiliser
Ici également
Dans une fenêtre DOS :
lancer "winmake" pour compiler le bootloader
lancer "winmake flash" pour flasher le bootloader
Que font ces deux commandes.
Et enfin un grand merci
bricopin:
Avant de faire les essais, je voudrais être sur de tout comprendre.
Quelle broche as tu choisit sur ta Mega pour le chip-select de la carte SD ?
La broche pour le chip-select est la broche 53, donc quelle sont les valeurs à mettre dans le winmake.cmd pour le port et pour le N° de bit (et comment les calcules tu ?)
Voir pin_arduino.h dans le bon répertoire.
Pour Mega c'est : C:\arduino\hardware\arduino\variants\mega
stk500v1 : ajouter le "defined(ATmega2560) pour que ca compile pour ATmega2560
board-arduino.h : idem
La, j'ai besoin que tu m'explique ce que je dois faire.
Rien. J'explique ce que j'ai fait.
J'aurais du employé le participe passé au lieu de l'infinitif
Modifier aussi pour le chemin à ton environnement Arduino et pour le programmateur que tu vas utiliser
Ici également
Changer la ligne :
set ARDUINO=D:\Projets\tools\arduino
pour pointer vers le répertoire de base de ton environnement Arduino
Et changer aussi
set ISPTOOL=usbasp
set ISPPORT=usb
set ISPSPEED=-b 115200
Pour spécifier quel programmateur tu va utiliser
Dans une fenêtre DOS :
lancer "winmake" pour compiler le bootloader
lancer "winmake flash" pour flasher le bootloader
Que font ces deux commandes.
Elle font ce que je dit : l'une compile le bootloader avec les bonnes commandes et génère le fichier HEX du bootloader
L'autre flashe le bootloader dans le chip.
Bon, j'ai fais toute les modifs.
Mais lorsque je lance la commande "winmake" dans une fenêtre DOS, le résultat ne semble pas concluant.
Il me crée bien un répertoire Build, mais celui-ci est vide.
Est ce que j'ai bien compris la modif suivante ?
Changer la ligne :
Code:
set ARDUINO=D:\Projets\tools\arduino
pour pointer vers le répertoire de base de ton environnement Arduino
Je dois pointer vers le répertoire contenant arduin.exe ou bien vers le répertoire contenant mes fichiers de travail (ino) ?
Je joins la copie de le fenêtre DOS
OK, pour ça c'est bon, j'ai le repretoire Build et les fichier .elf et .hex
Maintenant, la commande "winmake flash" me retourne également un message d'erreur
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino\E
ssai SD2Boots\NIVELUP\hardware\2boots\bootloaders>"winmake flash"
'"winmake flash"' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
OK, la commande fonctionne, mais il y à des erreur
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>winmake flash
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>C:\W-Arduino\Arduino_1.0.3\har
dware\tools\avr\bin\avrdude -c usbasp -p atmega2560 -P usb -b 9600 -e -u -U lo
ck:w:0x3f:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m
avrdude: can't open config file "": No such file or directory
avrdude: error reading system wide configuration file ""
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>sleep 3
'sleep' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>C:\W-Arduino\Arduino_1.0.3\har
dware\tools\avr\bin\avrdude -c usbasp -p atmega2560 -P usb -b 9600 -U flash:w:
build\2boots-arduino-atmega2560-16000000L-PB0.hex -U lock:w:0x0f:m
avrdude: can't open config file "": No such file or directory
avrdude: error reading system wide configuration file ""
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>goto end
D:\A-Donnees\Projet verins élec\Developpements des applis\Applications\Arduino
Essai SD2Boots\NIVELUP\hardware\2boots\bootloaders>
La c'est OK, ça à bien flashé.
Maintenant, peut tu me dire confirmer ce qu'il me reste à faire afin d’éviter toute bévues.
1 - Je charge le sketch "NameBoardSketch.ino" sur la méga pour inscrire le nom de mon sketch sur l'Eeprom.
2 - Je copie mon sketch .hex sur la carte SD
3 - je fais les essais