ProblèmeS atmega128

Bonjour a tous ! Je poste pour la 1ere fois car je commence a avoir trop de problèmes qui s'accumule et il est temps que j'y remédie :smiley: !

J'ai fait une carte d'essai avec un atmega128 en suivant respectivement ce schéma :

,J'ai mis exactement les même condos que le schéma, Les longueurs de fils sont réduit au plus court, J’alimente l'atmega en 5v,

Ce qui qui fonctionne :
-Je peu uploader le bootloader et envoyer des programmes en passant le le SPI,
-Je peux communiquer par RX et TX entre l'atmega et l'ide arduino en passant par un convertisseur usb/serial,

Ce qui ne fonctionne pas :
-Je ne peux pas envoyer le programme par le port serie (je pense que ça vient du condo d'auto reset), J'ai le message d'erreur avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xd1

-Un problème très bizarre, si je fait des reset sur l'atmega il reboot le programme normalement, mais si je débranche l'alimentation il faut que j attend 30sec avant de avant de réalimenter la carte sinon le programme ne démarre pas (testé avec simple blink)

Peux être que ces 2 problèmes sont lié ? Genre un condo a rajouté,,,
Si quelqu'un a la solution il me fera gagner des précieuses secondes entre chacun de mes testes ^^,

Ensuite j'ai un autre problème moins grave avec la librairie TMRPCM,
Elle fonctionne très bien avec mon mega2560 et des atmega328, mais avec mon atmega128 j'ai une longue liste d'erreur dont la 1ere est :

C:\Program Files\Arduino\libraries\TMRpcm\TMRpcm.cpp:19:27: error: 'ICIE1' was not declared in this scope
const byte togByte = _BV(ICIE1); //Get the value for toggling the buffer interrupt on/off

^
(je peux mettre la liste des erreurs complète si vous voulez, j'ai pas tout mis pour ne pas faire peur a ceux qui passe sur ce poste:) )
Impossible de trouver une solution sur google, Je pense que c'est un fichier qui définie les timers du 128 qui ne se charge pas,,, enfin, je dis surement des conneries:D,

tonytony72:
Ensuite j'ai un autre problème moins grave avec la librairie TMRPCM,
Elle fonctionne très bien avec mon mega2560 et des atmega328, mais avec mon atmega128 j'ai une longue liste d'erreur dont la 1ere est :

Bonsoir
Tu a intégré avec quoi le support de l'atmega128 sous l'IDE arduino ?

le .hex du bootloader atmega128 "trouvé où ?"

pour ICIE1 il semble qu'il ne soit pas defini pour l'atmega128
il existe pour le 328 et le 2560 bit 5 du registre TIMSK1

J'ai juste installé ça.
C'est l'ide qui a installer automatiquement les cartes grace au a l'url donné sur ce lien.

édit :

pour ICIE1 il semble qu'il ne soit pas défini pour l'atmega128
il existe pour le 328 et le 2560 bit 5 du registre TIMSK1

J'avais deja essayer de remplacer ICIE1 par 5, mais après ça donne encore des erreurs (d'autre truc encore non défini)

tonytony72:
J'ai juste installé ça.
C'est l'ide qui a installer automatiquement les cartes grace au a l'url donné sur ce lien.

édit :J'avais deja essayer de remplacer ICIE1 par 5, mais après ça donne encore des erreurs (d'autre truc encore non défini)

Tes manips OK (328 et 2560) avec TmrPCM tu les a validées avec les boards "generiques" installés par l'IDE ?
si oui regarde ce que donne une compile atmega2560
OK "2560 generique" et ensuite 2560 "megacore"

"2560 generique" et ensuite 2560 "megacore"

Je viens de tester les 2 et la compile fonctionne sans problème pour les 2.
Du coup j'ai essayer toute les cartes megacore. Les cartes 2560, 2561, 1280, 1281 et 640 fonctionne bien. Seulement la 64 et 128 on ce message d'erreur :(.

tonytony72:
Je viens de tester les 2 et la compile fonctionne sans problème pour les 2.
Du coup j'ai essayer toute les cartes megacore. Les cartes 2560, 2561, 1280, 1281 et 640 fonctionne bien. Seulement la 64 et 128 on ce message d'erreur :(.

Bon !
meme si ce n'est surement pas ce que tu attend ! :wink:
c'est déjà une "info"
J'ai "joué" avec TmrPCM mais essentiellement avec 328Pet 2560
je n'ai pas de 64 et 128
A ce stade , je penche vers 2 refs non supportés par la lib ,
meme si le 128 (mais pas le 64 )est évoqué :

defined (__AVR_ATmega32U4__) || (__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) || (__AVR_ATmega128__) ||defined(__AVR_ATmega1281__)||defined(__AVR_ATmega2561__)

Je ne suis pas assez bon "codeur" pour t'aider plus avant là dessus
un petit mail au concepteur de la lib pour lui demander si le 128 est "réellement supporté" avec test fait ?
c'est une lib sympa , mais qui ne semble plus trop maintenue

un petit mail au concepteur de la lib pour lui demander si le 128 est “réellement supporté” avec test fait ?

Je n’a’i pas trouvé le mail du concepteur, je vais continuer a chercher.
Sinon tu ne connais pas une autre lib qui lit les fichier audio? Aprè srecherche je trouve que TMRPCM.

Bonjour

pb de bootloader :
-valeur du quartz ? qualité de la connection du quartz et ses 2 condensateurs ?
-9 bootloaders Mega128 dans le dépot MegaCore, lequel a été installé en ISP ?
Quartz(ou résonnateur) et bootloader doivent être en adéquation.(le 30s d'attente donne à penser que ce n'est pas les cas)

Compatibilité de la librairie TMRPCM avec Atmega128 ?

Utiliser le canal 'Github' pour signaler le pb, prendre connaissance des divers pb signalés, entrer en contact et proposer des correctifs ou améliorations. Github c'est plus qu'un endroit où télécharger un soft.

Par l'onglet 'issue' du dépot Github on voit ,le 11mai, que la question a été posée et reste sans réponse à ce jour.

Par ce moyen on entre en contact avec le 'Projet' , pas seulement avec l'auteur. Il m'est arrivé de trouver (ou quelquefois proposer) des solutions en dialoguant de cette manière avec l'ensemble des utilisateurs d'un logiciel.
'Jeu collectif' : si plusieurs travaillent sur cette question la solution viendra plus vite.

-valeur du quartz ? qualité de la connection du quartz et ses 2 condensateurs ?

Bien vue! apparemment j'avais un des deux condos cms qui était mal soudé ! Du coup le programme démarre sans délais de 30sec après avoir réalimenté !! Par contre ca n'as pas résolu le problème de téléversement avec le usb/serial.

-9 bootloaders Mega128 dans le dépot MegaCore, lequel a été installé en ISP ?

J'ai un quartz de 16mhz,J'ai donc installé celui la : "optiboot_flash_atmega128_115200_16000000L.hex" .
Et dans board :

128.menu.clock.16MHz_external=16 MHz external
128.menu.clock.16MHz_external.upload.speed=115200
128.menu.clock.16MHz_external.bootloader.sut_cksel_bits=111111
128.menu.clock.16MHz_external.bootloader.high_fuses=0xc6
128.menu.clock.16MHz_external.bootloader.extended_fuses=0xff
128.menu.clock.16MHz_external.bootloader.file=optiboot_flash/{build.mcu}/optiboot_flash_{build.mcu}{upload.speed}{build.f_cpu}.hex
128.menu.clock.16MHz_external.build.f_cpu=16000000L

Pour TMRPCM, j’avais vu le problème posé sans réponse :frowning: .

un petit UP :smiling_imp:

Bonjour

Si le quartz ou résonnateur est un 16MHz le bootloader a été bien choisi.
Que donne un petit reset manuel à la fin de la compilation et au tout début du téléversement ?

Que donne un petit reset manuel à la fin de la compilation et au tout début du téléversement ?

Salut,
Si je ne fait pas de reset, au début du téléversement les led rx et et tx clignote juste un coup et l'ide met 30s-1min avant d'afficher une erreur.
Si je fait un reset (tester au moins 20 fois a différent moment) les led rx et tx se met a clignoté rapidement pendant quelque seconde comment si le téléversement fonctionnais, met au bout de 5-10sec le message d'erreur réapparait.
Point important, après mon reset, mème quand rx et tx clignote rapidement le programme de l'atmega démarre normalement!!, du coup c'est surement pour ça que le téléversement se fait pas.

Après une 50taine d'essai j'ai enfin réussi a téléverser le programme!! Du coup c'est un problème de condo?