Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Problème programmation avrdude



  1. #1
    boux

    Problème programmation avrdude

    Bonjour,

    Ayant un arduino, je veux le mettre à l’épreuve pour qu'il me programme un ATMEGA16.
    En premier lieu j'ai chargé le programme de test dans l'arduino.
    Ensuite j'ai relié l'alimentation et les broches MISO/MOSI/SCK/RESET de l'arduino au µC. Je n'ai rien rajouter d'autres, pas de quartz par exemple ?

    J'ai téléchargé et installé avrstudio. J'ai fais un nouveau projet en indiquant que je programme un ATMEGA. J'ai créé un petit programme de quelques lignes dont voici :

    #include <avr/io.h>
    #include <util/delay.h>


    int main(void)
    {

    DDRA |= (1<<DDA0); // Pin A1 en sortie
    while(1)
    {
    PORTA |= (1<<DDA0); // LED allumée
    _delay_ms (1000);
    PORTA &= ~(1<<DDA0); // LED éteinte
    _delay_ms (1000);
    }
    }
    Une fois compilé, j'ai ouvert avrdude et essayé de le paramétrer comme il faut pour envoyer le code dans le µC, au moment de cliquer sur programmer, rien ne se passe, le logiciel plante. Voici comment j'ai paramétré avrdude :

    Sans titre.png

    Je n'ai jamais dis que ce soit dans avrstudio ou avrdude quelle source d'horloge utiliser (quartz, oscillateur interne...). A quel niveau dois-je le faire ?



    Si quelqu'un a une idée sur mes problèmes je suis preneur

    -----


  2. Publicité
  3. #2
    boux

    Re : Problème programmation avrdude

    L'image a été validé, si quelqu'un peut me dire ce qui cloche ?
    Merci à vous !

  4. #3
    boux

    Re : Problème programmation avrdude

    Bonsoir,
    J'ai ressayé avec les commandes de windows mais je galère assez. Si quelqu'un pouvait me dire quelles commandes envoyer et comment paramétrer l'horloge en interne dans un premier temps ce serait super ! J'utiliserai un quartz par la suite, un problème après l'autre.

    Bonne soirée.

  5. #4
    boux

    Re : Problème programmation avrdude

    Petit up !

  6. #5
    PA5CAL

    Re : Problème programmation avrdude

    Bonjour

    Ce que tu veux faire n'est pas clair.

    Je crois comprendre, d'après ce que tu expliques au début, que tu utilises une carte Arduino (équipé par exemple de son ATMega328P si c'est un Uno) pour programmer un µC ATMega16 indépendant. Ensuite tu parles d'utiliser avrdude, avec les paramètres "qui vont bien" pour envoyer le code vers ce µC. Ai-je bien compris ?


    avrdude sert à communiquer avec l'Arduino, et il me semble qu'en l'absence de dispositions particulières (à propos desquelles tu ne dis rien), le code et les paramètres sélectionnés seront programmés dans l'Arduino, et non pas dans le µC auquel il est relié.

    Les dispositions en question consistent à programmer préalablement l'Arduino pour qu'il se comporte comme un programmateur ISP, et à paramétrer le logiciel de transfert (avrdude ou autre) en conséquence.

    Pour info, la programmation d'un µC externe à partir de l'IDE standard de l'Arduino passe habituellement par la sélection de « Arduino as ISP » dans la liste des programmateurs, et non pas « AVR ISP » comme je le vois dans ta copie d'écran d'avrdude gui.


    D'autre part, l'ATMega16 nécessite une horloge pour pouvoir fonctionner. En l'absence de quartz dédié, il faudra le paramétrer pour qu'il tourne sur son horloge interne.

  7. A voir en vidéo sur Futura
  8. #6
    boux

    Re : Problème programmation avrdude

    Bonjour PA5CAL et merci pour ta réponse !

    Tu as bien compris ce que je veux faire. Mon Arduino est bien un Arduino UNO.

    J'ai chargé dans l'ATMEGA 328p le programme fourni dans l'IDE d'Arduino. Il se trouve dans File>Example>ArduinoISP

    Que faut-il faire ensuite ? J'ai vu que dans l'IDE d'Arduino il y avait dans le menu tools>bootloader> w/ Arduino as ISP

    Est-ce ce mode que je dois activer ? Lorsque je le fais j'ai des erreurs, mais je ne dois pas m'y prendre comme il faut.

    Ensuite, comment paramétrer mon ATMEGA16L ? Notamment pour configurer l'horloge ?

    Un grand merci PA5CAL,

    Bon dimanche.

  9. Publicité
  10. #7
    PA5CAL

    Re : Problème programmation avrdude

    Tout dépend de l'état actuel de ton µC. Son fonctionnement est conditionné par :
    1- les « fusibles » (fuses) de configuration (reprogrammables)
    2- le « bootloader » (amorce de démarrage) exécuté à la mise sous tension
    3- le programme utilisateur à exécuter

    Les systèmes comme l'Arduino sont conçus pour se concentrer sur le développement du programme (3), en fournissant par défaut une configuration (1) et un bootloader (2) dont l'utilisateur n'a pas à se préoccuper.

    Ton µC peut t'avoir été fourni déjà préparé pour un tel usage, auquel cas il n'y a plus qu'à programmer le code compilé dans la mémoire « programme »... si la configuration prévue convient.

    Dans le cas contraire, il faudra en plus programmer les « fusibles » de configuration, pour fixer les paramètres de fonctionnement de la puce (comme le partage des mémoires, le choix de l'horloge, l'activation ou la désactivation de différentes fonctions ou protections, etc.), et le code du « bootloader ». La datasheet du µC donne toutes les informations nécessaires à une bonne compréhension des options possibles.

    Les différents « fusibles », le « bootloader » et le programme utilisateur peuvent se programmer au travers de l'interface SPI, mais de manière distinctes.


    Pour info :
    • les bits CKSEL3..1 des « fusibles » fixent le type d'horloge à utiliser. Les valeurs de 0001 à 0100 correspondent à une horloge interne de 1 à 8 MHz ;
    • l'ATMega16L sort d'usine préprogrammé dans une configuration comportant notamment :
    - une horloge interne à 1MHz (CKSEL3..1=0001)
    - une programmation par l'interface SPI activée (attention, cette fonction pourrait ensuite être désactivée !)



    En résumé, il faudrait savoir dans quelle situation se trouve ton µC actuellement, et ce que tu devras (ou non) y programmer.

    La teneur des messages d'erreur qui t'ont été retournés pourrait donner également des indications utiles sur la cause du problème rencontré.
    Dernière modification par PA5CAL ; 17/03/2013 à 16h06.

  11. #8
    PA5CAL

    Re : Problème programmation avrdude

    (Oups.. il faut lire CKSEL3..0 . Il y a 4 bits, numérotés de 0 à 3)

  12. #9
    boux

    Re : Problème programmation avrdude

    Bonsoir,

    Je ne pensais pas que c'était aussi compliqué ! C'est ça quand on travaille sur des platines de développement déjà toutes configurer !

    Si j'ai bien compris, les "fuses" permettent donc de choisir la source d'horloge, d'activer entre autres le mode ISP etc...
    Ces "fuses" se configurent via AVRdude comme on peut voir sur le screenshot de mon premier message ? Un "fuse", une fois configuré est il ré-programmable ?
    Et le bootloader, comment le charger dans le µC ?

    Alors pour ce qui est de mon ATMEGA16, il est neuf. Mais j'aimerai quand même programmer les fuses pour être sûr.
    Une fois que ce sera fait, il suffira donc de charger le bootloader et mon fichier .hex
    J'espère que je vais y arriver !!

    En tout cas merci beaucoup de ton aide, car je me perds un peu dans la datasheet !

    Bonne soirée.


    Ps : Bravo, 9 000 messages !

  13. #10
    PA5CAL

    Re : Problème programmation avrdude

    Citation Envoyé par boux Voir le message
    Ces "fuses" se configurent via AVRdude comme on peut voir sur le screenshot de mon premier message ?
    Ce sont les champs "Low Fuse", "High Fuse", "Lock Fuse", "Extended Fuse" etc. qui apparaissent vers le milieu de la fenêtre. On y entre la valeur hexadécimale correspondant à la valeur des bits.

    Citation Envoyé par boux Voir le message
    Un "fuse", une fois configuré est il ré-programmable ?
    Oui, généralement. Toutefois, la programmation de certains "fuses" peut entraîner la mise en place d'une configuration qui empêche une re-programmation par des moyens conventionnels. Pour donner un exemple, si tu interdis la programmation par la liaison SPI en mettant à 1 le bit SPIEN (bit 5 de High Fuse), alors il ne te sera plus possible de re-programmer ton µC par ce moyen. Mais il y a d'autres cas de figure qui représentent un certain danger.

    Il faut donc faire particulièrement attention, lors de la programmation des "fuses", à la configuration qu'on souhaite obtenir et à ses conséquences.

    Citation Envoyé par boux Voir le message
    Et le bootloader, comment le charger dans le µC ?
    De la même manière que le programme dans la procédure ISP, mais pas dans la même mémoire de destination.

  14. #11
    boux

    Re : Problème programmation avrdude

    Merci pour les infos. Je vais essayer de mon côté.

  15. #12
    boux

    Re : Problème programmation avrdude

    J'ai abandonné la carte arduino pour le moment et je me penche sur l'utilisation de ce kit pour programmer mon ATMEGA 16 : http://www.seeedstudio.com/wiki/Atme...ISP_Programmer

    Malheureusement les problèmes me suivent. J'ai pas réussi à installer les drivers sous Windows 8, je suis donc passé sur Windows XP où ça fonctionne.
    Ensuite, sous AVR Studio 4, mon kit est bien reconnu. Mais si je vais dans la fenêtre des fuses j'ai un message d'erreur qui apparait directement sans que je fasse la moindre chose, si je lance la programmation idem. Que reste-il à paramétrer, ou à connecter ?
    J'ai alimenté en 5V mon µC, j'ai connecté les fils MISO/MOSI/SCK/RESET/GND/VTG. VTG je l'ai connecté sur la pin VCC du µC, mais est-ce normal qu'il n'y est pas de tension provenant du programmateur entre VTG et GND ?

    Bon dimanche.

  16. Publicité
  17. #13
    abracadabra75

    Re : Problème programmation avrdude

    Bonjour.
    Peut-être ce site te permettra de configurer tes fuses plus facilement:
    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  18. #14
    boux

    Re : Problème programmation avrdude

    Bonjour abracadabra75,
    Merci pour le lien. J'ai dans un premier temps paramétré mon horloge en interne à 1MHz.
    BODEN=0 car j'utilise une alimentation de 5V.
    BOOTTSZ je le laisse par défaut car je ne sais pas trop sur quoi il agit
    SPIEN = 0 pour activer la programmation en ISP

    Les autres paramètres je ne l'ai est pas touché non plus.

    Est-ce que j'oublie quelque chose ?

    Merci !

  19. #15
    indri

    Re : Problème programmation avrdude

    C'est quoi le message d'erreur? Perso j'dois tout le temps changer la vitesse du prog à 115kHz(et c'est gonflant ^^)..lorsque l'uc est à 1MHz
    Mais bon si c'est pas le même message d'erreurs ma remarque n'apporte rien !
    Là où va le vent...

  20. #16
    abracadabra75

    Re : Problème programmation avrdude

    Re.
    En effet, quel message d'erreur?
    Personnellement, j'utilise pour programmer et charger le BASCOM-AVR avec lequel (pour moi) les problèmes de fuses (et aussi, mais c'est hors sujet, les registres) ont totalement disparus.
    Alors, je ne pourrai peut-être pas t'aider plus....
    A part le fuse interdisant la programmation SPI, tous les autres sont reconfigurables. SPIEN=0 est bien ce qui la permet.
    En reprenant mes notes, je vois que: 'par défaut les AVR sont livrés JTAG enabled; il faut le désactiver.'
    Bon courage
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

Sur le même thème :

Discussions similaires

  1. Erreur Arduino UNO : avrdude: stk500_getsync(): not in sync
    Par flaps dans le forum Électronique
    Réponses: 34
    Dernier message: 17/05/2015, 19h02
  2. Probleme en programmation
    Par siriki dans le forum Électronique
    Réponses: 4
    Dernier message: 07/06/2012, 16h27
  3. probléme programmation C
    Par MANTA.. dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 03/10/2011, 17h32
  4. Probleme de programmation cn
    Par elie64 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/03/2011, 18h32
  5. problème stk600 et avrdude
    Par noctua42 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/03/2011, 08h49