Programmeur USB pour microcontrôleur attiny2313
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Programmeur USB pour microcontrôleur attiny2313



  1. #1
    inviteac627aa7

    Programmeur USB pour microcontrôleur attiny2313


    ------

    Bonjour,

    Ma nouvelle carte mère ne possède pas de port parallèle.
    Du coup, je dois maintenant utiliser un programmeur USB pour transférer les programmes vers mon microcontrôleur attiny2313.

    J'ai trouvé le programmeur USBtinyISP [1] qui semble convenir.
    J'ai regardé le schéma [2] et comme je le trouve compliqué, je l'ai redessiné à ma sauce en retirant ce qui me parait superflu :
    usbtinyisp.png

    Les composants utilisés sont :
    -4 résistances 1.5k
    -2 DEL
    -2 diodes zener 3.3V
    -1 connecteur USB type A femelle (noté USB sur le schéma)
    -1 oscillateur (ou résonateur) céramique 12Mhz (noté OSC. sur le schéma)
    -1 condensateur céramique 0.1uF (noté CAP. sur le schéma)
    -1 microcontrôleur ATMEL attiny2313 [3]

    J'ai fait le montage et après l'avoir connecté sur le port USB de mon PC, avrdude [4] ne semble pas le reconnaître :
    Code:
    $ avrdude -c usbtiny -p m8
    avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)
    
    avrdude done.  Thank you.
    Vous voyez le problème ?

    Merci.

    [1] http://www.ladyada.net/make/usbtinyisp/
    [2] http://www.ladyada.net/make/usbtinyisp/parts-v10.html
    [3] http://www.atmel.com/devices/ATTINY2313.aspx
    [4] http://www.nongnu.org/avrdude/

    -----
    Images attachées Images attachées  

  2. #2
    invite29971eb1

    Re : Programmeur USB pour microcontrôleur attiny2313

    Bah oui il y a un problème.... Le micro que tu vois sur ton schéma est le programmateur et non le micro à programmer.

    Pour que ça fonctionne, il faut avoir envoyé un programme dans celui-ci aussi. C'est un peu l'histoire de la poule et de l'oeuf, mais le plus simple reste d'acheter un programmateur USB à 10-15 euros sur Ebay ou ailleurs, pour avoir un point de départ.

    Je n'ai pas suivi l'actu AVR depuis un moment, mais il y a peut-être un programmateur plus complet pour quelques dizaines d'euros de plus (voir du côté de l'AVR ISP-mkII)

  3. #3
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Désolé pour la réponse tardive mais je n'ai pas reçu de notification e-mail cette fois.

    OK il y a donc 2 microcontrôleurs dans l'histoire.
    Celui qui programme et celui qui est programmé.

    Du coup, le programme à placer dans le microcontrôleur du schéma c'est probablement celui appelé "firmware" :
    http://www.ladhttp://www.ladyada.net.../download.html
    http://www.ladyada.net/media/usbtiny...1.0%20firm.zip

    Dans cette archive, le programme qui correspond semble être ce fichier : spi/main.hex

    Si je veux le transférer, il me faudra utiliser la version sur port parallèle.
    Aussi, il faut que je m'achète un second microcontrôleur.

    Bon évidemment il y a la solution d'acheter la version USB avec le microcontrôleur pré-programmé.

    Est-ce que vous pensez que je détiens le bon .hex ?
    Pourquoi la solution USB requiert un 2ème microcontrôleur tandis que la solution port parallèle n'en requiert pas ?

    Merci.

  4. #4
    invite3026ff02

    Re : Programmeur USB pour microcontrôleur attiny2313

    Parce qu'un usb as besoin d'un protocole pour reconnaître les composante et cela seulement par deux fils (TX et RX) les deux autre ne sont qu'une alimentation, alors on a absolument besoin d'un vrai communication...

  5. A voir en vidéo sur Futura
  6. #5
    invite3c199cf9

    Re : Programmeur USB pour microcontrôleur attiny2313

    Bonjour,

    Est-ce que ça vaut le coup (et le coût), de le fabriquer soi-même ?
    Perso, j'utilise le plus souvent celui-ci.
    Je le trouve plus agréable que le MKII de Atmel. Et pour 35 euros....

  7. #6
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Je déterre cette discussion car depuis le temps je me suis acheté un programmeur USBasp.
    Il fonctionne très bien avec les logiciels suivants :
    - avr-binutils-2.22
    - avr-gcc-4.8.0
    - avr-libc-1.8.0
    - avrdude-5.11.1

    Mais parce que je trouve ça intéressant, je souhaite toujours construire mon propre programmeur USBtinyISP.
    J'ai donc envoyé le firmware USBtinyISP vers mon microcontrôleur.
    Ensuite, j'ai branché mon programmeur comme dans le schéma ci-dessous mais, quand je le branche, je ne vois pas le nom du programmeur grâce à "dmesg".
    De plus, aucune diode ne s'éclaire (je pense que l'une d'elles devrait s'allumer).

    Je me suis surement planté dans mon schéma simplifié :
    usbtinyisp1.jpg

    Voici l'original que je trouvais trop compliqué :
    usbtinyisp.png

    Vous voyez un problème sur mon schéma simplifié qui pourrait expliquer pourquoi mon programmeur n'est pas détecté ?

  8. #7
    invite1d577638

    Re : Programmeur USB pour microcontrôleur attiny2313

    Ton programmateur est-il détecté en tant que périphérique USB par windows ?

  9. #8
    invite73fd5f12

    Re : Programmeur USB pour microcontrôleur attiny2313

    - ce sont des les sur les lignes USB?
    - ou sont les condos de découplage d'alim?
    - ou sont les condos sur le quartz?

  10. #9
    invite1d577638

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par Fred_du_92 Voir le message
    - ou sont les condos sur le quartz?
    Ils ont l'air d'être intégrés à XTL1... Oui, le montage des leds semble étrange. Et j'en aurai rajouté une sur le 5v pour détecter la tension (avec la résistance qui va bien évidemment)

  11. #10
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par Yoruk Voir le message
    Ton programmateur est-il détecté en tant que périphérique USB par windows ?
    Oui, en tant que périphérique USB non-reconnu.
    usbtinyisp1_windows.png

    Sous Linux, voici le résultat avec "dmesg" :
    Code:
    [  108.329416] usb 2-1.5: new low-speed USB device number 6 using ehci-pci
    [  108.404413] usb 2-1.5: device descriptor read/64, error -32
    [  108.580413] usb 2-1.5: device descriptor read/64, error -32
    [  108.754414] usb 2-1.5: new low-speed USB device number 7 using ehci-pci
    [  108.829413] usb 2-1.5: device descriptor read/64, error -32
    [  109.005412] usb 2-1.5: device descriptor read/64, error -32
    [  109.179413] usb 2-1.5: new low-speed USB device number 8 using ehci-pci
    [  109.581312] usb 2-1.5: device not accepting address 8, error -32
    [  109.654414] usb 2-1.5: new low-speed USB device number 9 using ehci-pci
    [  110.056315] usb 2-1.5: device not accepting address 9, error -32
    [  110.056415] hub 2-1:1.0: unable to enumerate USB device on port 5
    Fred_du_92 > Il n'y a qu'un seul condensateur dans le schéma et deux DEL.
    Je ne pense pas qu'adafruit, qui vend le programmeur, puisse avoir oublié des composants sur le schéma.
    Non, là où il peut y avoir des problèmes, c'est surtout au niveau de mon interprétation du schéma (la version simplifiée), au niveau du montage (mais j'ai recommencé plusieurs fois pour être sûr) ou au niveau du firmware (mais je pense avoir téléchargé la bonne archive).

    Tenez, voici une version encore plus simplifiée, où j'ai retiré les connexions nécessaires à la programmation du micro-contrôleur (puisque l'objectif ici est, dans un premier temps, que mon PC reconnaisse le programmeur USBtinyISP) :
    usbtinyisp1_simple.jpg

    Une idée de pourquoi mon OS (que ce soit Windows ou Linux) ne détecte pas mon programmeur USBtinyISP ?

  12. #11
    invite73fd5f12

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par YuGiOhJCJ Voir le message
    Fred_du_92 > Il n'y a qu'un seul condensateur dans le schéma et deux DEL.
    Au temps pour moi, je n'avais pas vu C1 sur ton interprétation libre du schéma. OSC c'est quoi? Si c'est un quartz, il lui faut deux condos aussi, qui sont sur le schéma Adafruit d'ailleurs.

    D3 et D4, on est bien d'accord que tu as mis des Schottky et non des leds? D'ailleurs, tu peux même les virer le temps de débugger.

    Je ne pense pas qu'adafruit, qui vend le programmeur, puisse avoir oublié des composants sur le schéma.
    Sans doute pas, mais toi en recopiant, je n'exclus rien

    Tenez, voici une version encore plus simplifiée, où j'ai retiré les connexions nécessaires à la programmation du micro-contrôleur (puisque l'objectif ici est, dans un premier temps, que mon PC reconnaisse le programmeur USBtinyISP) :
    Pièce jointe 247339
    Tant que ça ne marche pas, laisse le connecteur de prog.

    Une idée de pourquoi mon OS (que ce soit Windows ou Linux) ne détecte pas mon programmeur USBtinyISP ?
    Ce n'est déjà pas simple de faire de l'USB avec des micros qui sont faits pour, mais c'est encore plus complexe avec de l'émulation comme ici. Quand tu as programmé ton micro, as-tu pensé à re-configurer les fuses?

    Si tu les as oublié, le micro tourne sur le RC interne à 1MHz et sera incapable de respecter les timings de l'USB. ça n'est qu'un point parmi la dizaine de la check-list

  13. #12
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par Fred_du_92 Voir le message
    Au temps pour moi, je n'avais pas vu C1 sur ton interprétation libre du schéma. OSC c'est quoi? Si c'est un quartz, il lui faut deux condos aussi, qui sont sur le schéma Adafruit d'ailleurs.
    En effet, il y a deux condensateurs sur le schéma d'Adafruit qui ont disparu sur ma version simplifiée.
    C'est parce que dans la liste des composants nécessaires pour produire le USBtinyISP version 1, ces 2 condensateurs ne sont pas référencés :
    https://learn.adafruit.com/usbtinyisp/parts-v1-dot-0
    Du coup, je n'ai aucune information sur quel type de condensateur utiliser.

    Pour OSC, c'est pour oscillateur céramique (j'ai aussi trouvé l'appellation résonateur céramique) :
    Nom : osc.jpg
Affichages : 192
Taille : 3,1 Ko
    Apparemment, ça fonctionne comme un quartz.
    Personnellement, le mien n'a que 2 pattes (au lieu de 3).
    Il parait que la patte du milieu, quand elle existe, correspond au GND.
    Le mien, je peux lire écrit dessus : ZTA 12.00MT (au lieu de ZTT-12.00MT).
    J'espère que j'ai le bon composant.
    D'ailleurs est-ce qu'il y a un montage facile permettant de tester le bon fonctionnement de ce composant ? (genre un petit montage alimenté par une pile 9V et avec une DEL qui s'éclaire lorsque le composant fonctionne)

    Citation Envoyé par Fred_du_92 Voir le message
    D3 et D4, on est bien d'accord que tu as mis des Schottky et non des leds? D'ailleurs, tu peux même les virer le temps de débugger.
    En effet, D3 et D4 (sur mon schéma simplifié) ne sont pas des DEL mais des diodes Zener 3.3V.
    Par contre, D1 et D2 sont bien des DEL.

    Citation Envoyé par Fred_du_92 Voir le message
    Quand tu as programmé ton micro, as-tu pensé à re-configurer les fuses?
    Reconfigurer les fuses ? Je ne sais pas ce que ça veut dire donc probablement pas.
    Je pensais qu'il suffisait seulement de transférer le firmware :
    Code:
    $ cd usbtinyisp/spi
    $ sudo avrdude -p t2313 -c usbasp -U flash:w:main.hex
    Tu peux m'expliquer comment reconfigurer les fuses ?

  14. #13
    invite1d577638

    Re : Programmeur USB pour microcontrôleur attiny2313

    Pour configurer les fuses, tu peux passer (il me semble) un paramètre supplémentaire dans la ligne de commande de avrdude.. Ou bien passer en mode terminal : http://www.nongnu.org/avrdude/user-m...-Mode-Examples

  15. #14
    invite73fd5f12

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par YuGiOhJCJ Voir le message
    En effet, il y a deux condensateurs sur le schéma d'Adafruit qui ont disparu sur ma version simplifiée.
    C'est parce que dans la liste des composants nécessaires pour produire le USBtinyISP version 1, ces 2 condensateurs ne sont pas référencés :
    https://learn.adafruit.com/usbtinyisp/parts-v1-dot-0
    Du coup, je n'ai aucune information sur quel type de condensateur utiliser.
    capas céramiques, elles sont obligatoires sur un quartz. Sur un résonateur à 3 pattes, ils sont intégrés. Par contre, je ne suis sur de rien sur un 2 pattes mais j'ai dans l'idée qu'il faut en ajouter. Pour la valeur des capas, c'est en général entre 10 et 20pF, la datasheet du micro devant normalement conseiller des valeurs.

    D'ailleurs est-ce qu'il y a un montage facile permettant de tester le bon fonctionnement de ce composant ? (genre un petit montage alimenté par une pile 9V et avec une DEL qui s'éclaire lorsque le composant fonctionne)
    http://www.ygchina.com/sdygpdf/ydtc/12.0M.pdf regarde le test circuit...

    Reconfigurer les fuses ? Je ne sais pas ce que ça veut dire donc probablement pas.
    Cherche pas plus loin. En sortie d'usine, un AVR fonctionne sur l'oscillateur RC interne de 8MHz divisé par 8, donc 1MHz. Ce n'est ni assez rapide ni assez précis pour émuler l'USB. Si je précise 8 divisé par 8, c'est que ça correspond à des fuses différents.

    Tu peux m'expliquer comment reconfigurer les fuses ?
    Voir le message de Yoruk

  16. #15
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    D'après le Makefile proposé dans l'archive du firmware, voici comment reconfigurer les fuses :
    Code:
    $ sudo avrdude -c usbasp -p t2313 -U hfuse:w:0xdb:m -U lfuse:w:0xef:m
    Je l'ai fait mais je ne vois pas de différence de comportement de mon montage.
    Si ce n'est que maintenant, il n'est plus possible de transférer un programme sur mon micro-contrôleur :
    Code:
    $ sudo avrdude -c usbasp -p t2313 -U flash:w:main.hex
    
    avrdude: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude: error: programm enable: target doesn't answer. 1 
    avrdude: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.
    
    
    avrdude done.  Thank you.
    Il y a moyen de revenir à l'état initial ?

  17. #16
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Ah ça y est je viens de trouver.
    Vu que j'ai reconfiguré les fuses, il fallait placer mon résonateur céramique entre les pattes 4 et 5 pour que je puisse transférer à nouveau un programme vers mon micro-contrôleur.
    Quand je le programme, je le sors du montage pour le brancher sur un circuit-imprimé à part.
    Forcément, sans résonateur céramique, à cause de ce changement de fréquence, la communication avec le micro-contrôleur était impossible.
    Un bon point : ce test m'a permis de vérifier que ce résonateur céramique fonctionne.
    Donc ce problème est résolu.

    Reste plus qu'à comprendre pourquoi, même avec cette reconfiguration des fuses, mon programmeur USBtinyISP ne fonctionne pas...

  18. #17
    invite1d577638

    Re : Programmeur USB pour microcontrôleur attiny2313

    Toujours pas reconnu par windows ?

  19. #18
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par Yoruk Voir le message
    Toujours pas reconnu par windows ?
    Seulement détecté en tant que périphérique USB non-reconnu.
    Comme tout à l'heure.
    J'ai aussi essayé sans les diodes Zener mais rien à faire, mon USBtinyISP n'est pas détecté par mon PC (que ce soit Windows ou Linux).

  20. #19
    invite3026ff02

    Re : Programmeur USB pour microcontrôleur attiny2313


  21. #20
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par mgduc Voir le message
    Hé bien en fait ils disent que pour OS X et Linux pas besoin de driver donc j'ai bien fait.

    Et pour Windows XP, de toute façon, l'assistant d'installation de nouveau matériel qui est montré sur les screenshots du site n’apparait pas chez moi.
    A la place, j'ai ce message disant qu'un périphérique USB non-reconnu est détecté.

  22. #21
    invite1d577638

    Re : Programmeur USB pour microcontrôleur attiny2313

    Et en forçant la recherche du driver dans le répertoire où tu auras placé les fichiers proposés par mgduc ?

  23. #22
    bobflux

    Re : Programmeur USB pour microcontrôleur attiny2313

    Tu s toujours cette erreur ?

    Citation Envoyé par YuGiOhJCJ Voir le message
    Sous Linux, voici le résultat avec "dmesg" :
    Code:
    [  108.329416] usb 2-1.5: new low-speed USB device number 6 using ehci-pci
    [  108.404413] usb 2-1.5: device descriptor read/64, error -32
    [  108.580413] usb 2-1.5: device descriptor read/64, error -32
    [  108.754414] usb 2-1.5: new low-speed USB device number 7 using ehci-pci
    [  108.829413] usb 2-1.5: device descriptor read/64, error -32
    [  109.005412] usb 2-1.5: device descriptor read/64, error -32
    [  109.179413] usb 2-1.5: new low-speed USB device number 8 using ehci-pci
    [  109.581312] usb 2-1.5: device not accepting address 8, error -32
    [  109.654414] usb 2-1.5: new low-speed USB device number 9 using ehci-pci
    [  110.056315] usb 2-1.5: device not accepting address 9, error -32
    [  110.056415] hub 2-1:1.0: unable to enumerate USB device on port 5
    Si oui, elle répond à ta question : la lecture des descripteurs échoue.

  24. #23
    inviteac627aa7

    Re : Programmeur USB pour microcontrôleur attiny2313

    Citation Envoyé par Yoruk Voir le message
    Et en forçant la recherche du driver dans le répertoire où tu auras placé les fichiers proposés par mgduc ?
    En forçant la recherche du driver sous Windows ça ne fonctionne pas :
    Nom : windows_usbtinyisp_device_manager.png
Affichages : 155
Taille : 28,5 Ko

    Citation Envoyé par bobfuck
    Tu s toujours cette erreur ?
    Oui, sous Linux j'ai exactement la même erreur.
    La lecture de descripteur échoue ? OK mais du coup reste à savoir pourquoi...

  25. #24
    bobflux

    Re : Programmeur USB pour microcontrôleur attiny2313

    > La lecture de descripteur échoue ?
    > OK mais du coup reste à savoir pourquoi...

    Soit un bug dans le soft qui est dans le micro, soit un problème de communication USB (mauvaise connection, absence de pullup, etc), ou pourquoi pas d'alim ou d'horloge... en gros n'importe quoi.

    Vu que la lecture de descripteur est la première communication qui a lieu entre le host et le device USB, si elle échoue, ça peut vouloir dire que la communication ne fonctionne pas du tout, que le uC plante au milieu, ou n'importe quoi d'autre.

    Tu devrais regarder dans les sources du noyau linux (rubrique usb) pour voir à quoi correspond l'erreur -32 (c'est peut-être un errno). C'est comme ça que j'ai débuggé mon dernier machin USB...

Discussions similaires

  1. Microcontroleur et USB
    Par invite9658b2ab dans le forum Électronique
    Réponses: 2
    Dernier message: 17/10/2011, 13h13
  2. adaptateur USB pour un microcontroleur
    Par invite403d8201 dans le forum Électronique
    Réponses: 4
    Dernier message: 06/09/2011, 11h22
  3. microcontroleur-->> USB
    Par inviteb7a0f269 dans le forum Électronique
    Réponses: 9
    Dernier message: 03/05/2010, 09h21
  4. microcontroleur ATtiny2313 tro besoin daide
    Par invite212c852c dans le forum Électronique
    Réponses: 1
    Dernier message: 07/05/2009, 15h22
  5. microcontroleur usb 2.0
    Par invite2d9cfffe dans le forum Électronique
    Réponses: 4
    Dernier message: 24/12/2008, 16h55
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...