Go Down

Topic: Problème de compilation après remplacement du microcontrôleur (Read 165 times) previous topic - next topic

Fazzeex

Bonjour,

J'ai réalisé un système d'ouverture de porte automatique contrôler avec un émetteur-récepteur RF, la porte s'ouvrait grâce à un moteur qui était contrôlé par une shield. Lorsque j'ai transmis mon projet à mon coordinateur ( apprenti électronicien), je pense qu'il y a eu un soucis et que mon contrôleur à grillé. Du coup j'en ai commandé un nouveau chez Farnell, même référence (ATMEL ATMEGA328P-UP).

Mais, lorsque je l'ai remonté sur ma platine, impossible de compiler mon code, ni un code minimaliste avec juste une loop vide et un startup. Voici mes messages d'erreurs :

Code: [Select]

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x99
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x99


J'ai beau chercher sur le net, je ne trouve pas d'infos sur ce problème.
Sachat que les deux LEDs Rx et Tx ne s'allume même pas.

Mon ancien était une version 1422 et mon actuel un 1622, mais je ne pense que cela vienne de la.

Voilà, en espérant que quelqu'un ait déjà eu ce problème et qu'il connaisse la solution.
Merci d'avance

OS : W10
IDE : 1.6.8

Zorro_X

Il faut d'abord graver le bootloader sur ton µC, sinon ce sera impossible de charger du code dessus. Pour ca il te faut un arduino déjà fonctionnel pour l'utiliser comme ISP...

Fazzeex

Merci pour ta réponse rapide !

Donc si je comprends bien, il faut un Arduino complet ? (Platine + uC) ou juste la platine ? Pour pouvoir l'utiliser comme ISP.

Zorro_X

Ca dépend de ce que t'as déjà en fait : regarde les différentes schémas de montage qu'il y a dans le lien que je t'ai mis. Tu dois choisir celui qui te convient le mieux... Après, il faut juste suivre les pas qui se résument en : charger le code ISP sur l'arduino "fonctionnel" puis utiliser cet arduino pour graver le bootloader sur ta puce "vierge"...

Edit : "fonctionnel" veut dire "avec le bootloader déjà dessus". Donc oui, un Arduino "complet", pas seulement la platine sans l'Atmega...

Fazzeex

Ah d'accord, ça répond à ma question.

Merci beaucoup pour tes réponses !


3Sigma

Bonjour,

Tu peux aussi utiliser simplement un programmateur ISP. Pour info, c'est aussi possible d'acheter des ATmega avec bootloader Arduino déjà intégré.

Zorro_X

Ah d'accord, ça répond à ma question.

Merci beaucoup pour tes réponses !
Avec plaisir ! j'ai eu le même "problème" lorsque je me suis acheté une 10e d'Atmegas "vierges" il y a presque un an, mais la manip n'est pas compliquée et ca coûte beaucoup moins cher "vierge" qu'avec le bootloader déjà chargé dessus... ;)

B@tto

Le plus simple c'est quand même d'acheter un programmateur type USBasp, 5$, ça évite de racheter une UNO complète et c'est quand même largement plus pratique que d'utiliser une autre UNO en ISP Programmer.
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

Zorro_X

Le plus simple c'est quand même d'acheter un programmateur type USBasp, 5$, ça évite de racheter une UNO complète et c'est quand même largement plus pratique que d'utiliser une autre UNO en ISP Programmer.
S'il faut acheter quelque chose oui, mais si t'en as déjà un sous la main non... ;)
Comme j'en ai plusieurs chez moi, c'est ma méthode "préférée", mais ca n'engage que moi ! ;)

68tjs

Vous ne concluez pas un peu vite sur l'absence de bootloader ?
De quoi était constitué le "controleur" (-->juste un 328 ou il y avait-il une interface USB/UART en plus ?) et qu'est-ce qui a crammé ?
Il faudrait un peu plus d'explications que ce dont on dispose.

Les messages d'erreurs sont représentatifs à 90% d'un problème de reconnaissance du programmeur par l'USB du PC c'est à dire au niveau de l'interface USB/UART, c'est à dire hors 328p.

Avis personnel : la société Arduino met toujours en avant la solution d'utiliser une deuxièmme carte pour servir de programmeur. Bien évidement c'est leur intéret de vendre le maximum de cartes surtout à 25€ la Uno officielle.
Il existe une autre solution plus simple (pas de câblage à faire, pas de programme à charger, toujours disponible instantanément)  et moins coûteuse c'est le programmeur (tinyUSB ou USBasp ou autres) que l'on trouve courament un peu partout dont sur Ebay.
Avec cette solution il n'est même pas utile de graver un bootloader qui occupe de la place en mémoire et qui sert juste à reprogrammer le micro par l'interface série (RX/Tx, reset).
Inutile aussi d'avoir une interface USB/UART si elle ne sert qu'à la programmation.

Mais celà ne dispense pas d'avoir à configurer les fuses qui est une opération distincte de la gravure du bootloader même si arduino fourre tout sous le même nom et fait tout en même temps.
Par defaut un avr sortie usine est configuré sur l'horloge interne peu précise (8 Mhz) et avec le diviseur par 8 activé c'est à dire qu'il tourne à 1 MHz.

Go Up