[RESOLU] Mega2560 avec USBASP

Bonjour,
J'ai un problème que je n'arrive pas a résoudre depuis une journèe.

J'ai l'Arduino Mega2560 que je veux programmer avec l'USBASP, mais ca ne fonctionne pas.

Le téléchargement fonctionne bien avec arduino lorsque que je branche le cable USB normalement.

Avec Atmel Studio 7 et le programmateur l'AVRISP MKII ca fonctionne très bien.

Avec Atmel studio et l'USBASP ca fonctionne très bien, en fait tout fonctionne, sauf quand j'utilise
l'USBASP avec arduino.

Je précise que quand je télécharge avec l'USBASP ou l' AVRISP MKII, quand je revient sur l'arduino et que je télécharge normalement avec le cable USB ca ne fonctionne plus, ce qui est normal car le bootloader a été effacer, donc je remet le bootloader et tout refonctionne.

Sauf que toujours l'USBASP ne fonctionne pas.

Je suppose que dans le forum il y a au moins une personne qui pourrais m'aider et qui utilise surement l'USBASP avec arduino.

J'ai tout tenté en mettant le fuse a 0 ou a 1 pour BOOTRST, et ca ne donne rien.

L'usbasp est un clone, tout le monde l'utilise et il fonctionne tres bien avec atmel studio 7.

La carte Mega2560 que j'utilise est un clone mais de bonne facture avec un Atmega16UE, et les non les autres chinois avec le CHG... ou autre, d'après les commentaires sur ma carte tout le monde etait content il disaient meme que c'était encore mieux que l'original, je précise cela pour éviter qu'on me dise que c'est un clone, d'ailleurs elle fonctionne très bien.

Merci de votre aide.

j'ai omis de mettre le message d'erreur:

avrdude: ser_open(): can't open device "\.\COM15": Le fichier sp�cifi� est introuvable.

avrdude: ser_drain(): read error: Descripteur non valide

avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

avrdude: stk500v2_ReceiveMessage(): timeout
le port série sélectionné
n'existe pas ou votre Arduino n'est pas connectée
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: sorry no info avail
avrdude: stk500_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Descripteur non valide

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

I use drivers libusb-win32 1.2.6 for USBasp on windows 10 X64.
I have tested with drivers libusbk 3.0.7 and is a same.

J'ai avancé d'un pas.
avec le drivers libusbk 3.0.7 j'arrive a uploader le bootloader dans le menu outils/Graver la séquence d'initialisation.
par contre pour les les sketchs ca ne fonctionne pas.

Pour le téléchargement j'utilise l'option dans le menu Croquis/Téléverser avec un programmateur, ce que je ne faisait pas avant.

dans les deux cas j'ai les warnings suivants:

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: warning: cannot set sck period. please check for usbasp firmware update.

J'ai reussi a upgrader le firmware de l'usbasp, je n'ai plus le message, tout se passe comme si le sketch était uploader mais il n'est pas uploader, je n'ai aucune erreur, à la sortie de l'arduino, surement peut etre un parametre dans avrdude.conf.

si quelqu'un a une idée ou soit le programmateur n'est pas fonctionelle avec arduino même si il fonctionne avec Atmel Studio 7. ce n'est pas la version de l'USBasp avec pcb bleu, il est marron.

Par contre quand je lance la commande avrdude -v j'ai cela:

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "D:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf"


avrdude: no programmer has been specified on the command line or the config file
         Specify a programmer using the -c option and try again

EDIT:
Si le sketch ce charge bien mais qu'il ne se lance pas ca veut dire que le BOOTRST est pas désactivé, mais j'ai vérifié, il est bien a 1, donc désactivé. il faut surement je pense le modifier dans le fichier boards.txt ou programmers.txt

En fin j'ai trouvé, tout fonctionne, le BOOTRST doit etre uncheked donc 0 et non checked.
J'ai pu le modifier à l'aide de l'AVRISP MKII avec Atmel Studio 7

En fait il doit etre positionné pour un programmateur externe. logique inversé, 0 activé et 1 non activé, il me semble.

Félicitation, tu as finalement trouvé tout seul!

Peux-tu détailler ce que tu as fait avec BOOTRST? Je ne parviens pas non plus à charger via ASP, mais sous Linux Mint.

Pour le BOOTRST il suffit de positionner le fuse soit avec avrdude au niveau de la commande
mais je n'ai pas utilisé avrdude, Il faut regarder les paramétres d'avrdude pour positionner les fuses.

Je l'ai fait fait avec l'AVRPISP MKII, qui est un original, l'avantage c'est que Atmel Studio le reconnait et t'affiche un écran avec les fuses, il suffit de décocher la case BOOTRST, normalement elle est coché si tu utilise arduino avec le cable USB pour pouvoir télécharger les sktechs.

Si la case BOOTRST est décocéhr tu peut utiliser un programmateur externe par contre tu ne peux plus utiliser le cable USB pour télécharger les sketchs via upload dans arduino, il faut re flasher le bootloader, via le menu, outil de arduino avec le même programmateur externe qui fonctionne.

Pour positionner les fuses ,de l'arduino il te faudra soit un programmateur externe que tu connectera sur l'ISP de ton arduino pour pouvoir le programmer à l'aide d'avrdude. Un des fuses doit être a 0xD9 au lieu de 0xD8.

Dans mon cas avec la Mega2560, les fusibles sont positionnés ainsi:
Extended: 0xFD
HIGH: 0xD9
LOW: 0xFF

pour les parametres d'avrdude il faut utiliser -U lfuse pour low, -U hfuse pour le fuse HIGH, -U efuse pour extended, il faut regarder sur google ou sur le forum.

Merci :slight_smile: