Programmateur AVR sur port série
Répondre à la discussion
Affichage des résultats 1 à 28 sur 28

Programmateur AVR sur port série



  1. #1
    Yoruk

    Programmateur AVR sur port série


    ------

    Bonjour à tous,

    Pour une application bien spécifique, j'ai besoin d'un programmateur de µc AVR pour flasher de petits micros Atmel, fonctionnant sur port série. (si, si ! )

    J'ai trouvé des schémas sur le net, certains pas tops (leds rouge en série en guise de zener ) mais d'autres plus prometteurs, comme ceux-ci :

    FZS3773HH2VXTDJ.LARGE.gif

    F9DIF32HPRID2PN.LARGE.jpg

    Seul varie la polarisation du transistor gérant le reset et le 5v. Également, l'un des montages propose un connecteur à 8 broches, l'autre à 6. Mais rien d'extraordinaire.

    Puis-je réaliser ces montages sans problèmes, ou certaines choses vous choquent ? Une préférence parmi les deux ? (Ou carrément un autre ?)

    Merci d'avance pour votre retour...

    -----
    La robotique, c'est fantastique !

  2. #2
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    petit problème sémantique dans ta première phrase, on peut comprendre deux choses:
    le programmateur fonctionne en mode série ?
    tes micros atmel fonctionnent en mode série ?

    tes deux schémas ont l'air similaires, je confirmerai lorsque tu auras traduit les N° de pin en nom de signaux

    tu utiliserais alors une résistance de 4k7 en série avec les signaux, ça protège en effet les zeners, mais ne posera guère de problème en cas de signaux rapides (la capa d'entrée des atmel est de l'ordre de 15pF). Cela va dépendre de la puce de sortie du driver RS232, les séries SN75150 peuvent débiter 15mA et les MC1489 10mA comme les MAX232. La fréquence du RS232 n'est pas à prendre en comte ici (heureusement, car elle est officiellement limitée à 20kb/s, de même que l'amplitude est officiellement avec un max de +-25V) puisque le driver coté PC va attaquer directement les ports. Les zeners doivent absorber ce courant de 10mA (puissance = 50mW), je préfèrerais réduire ces résistances car les drivers modernes utilisent majoritairement des max232 à courant de sortie limité, mais on a vu des drivers RS232 avec un simple transistor et une résistance de pull-up !

    le problème majeur est l'écrêtage par zener: 5.1V +10% = 5.61V, tu es déjà hors des clous d'un atmel alimenté en 5V, qui accepte 5.5V sur ses entrées, donc encore moins si sa tension d'alim est plus basse.
    Idem pour la partie négative du signa RS232 qui va être écrêtée à -0,6V par la zener en inverse, l'atmel admet -0,5V

    en bref tu dois t'adapter à un standard non prévu pour cet usage et à un driver de sortie inconnu. Le standard admet une grande variation de la tension sur le bus, (il impose de plus un récepteur à hystérésis). Et le programmateur ne fonctionne pas en mode série mais utilise les niveaux électriques d'un port série, et sa vitesse en bauds n'a plus de signification.

    si tu as la chance d'avoir un vieux PC avec port parallèle le programmateur est encore plus simple avec trois résistances seulement, voir PJ. Là, les tensions sont bien définies en +5V et niveaux TTL sur les signaux. J'en ai eu un, parfait

    ton programmateur soft (avrdude ?) va devoir être paramétré avec ton interface p ex: avrdude -c usbasp xx xx

    pourquoi n'utilises-tu pas un programmateur à 3$ sur port USB qui te fournit aussi le 5V pour la puce p ex USBASP

    saluts
    Images attachées Images attachées  

  3. #3
    Yoruk

    Re : Programmateur AVR sur port série

    Merci de ta réponse. Je précise en effet ma première phrase, c'est utiliser un programmateur fonctionnant sur port série, pour flasher des atmels. (Qui eux vivent leur vie ensuite...)

    L'idée est d'utiliser ce montage sur un PC dépourvu d'USB. (Et je vais vérifier s'il dispose d'un port //). Aucune idée du type de chip qui gère le port série sur celui-ci (chip intégré à la carte mère).

    Effectivement le niveau d’écrêtage par les zeners peut poser problème... Les 10% que tu indiques correspondent à la tolérance en tension ? Je ne sais pas s'il est possible de les remplacer par genre, 8 1N4114 en série (8*0.6 = 4.8 v) ? L'utilisation d'un 7805 est-elle aussi une possibilité ?

    J'utilise effectivement AVRDUDE pour piloter le tout, et il dispose des pilotes nécessaires à l'utilisation de ce dispositif série. Je ne sais pas s'il gère le module pour port //. (sans doute oui)

    Ton schéma avec le port // est intéressant... Je connaissais celui présenté ici, mais dans celui-ci l'auteur utilise un autre chip... Ahh non en fait, son schéma est un peu plus compliqué apparemment. Je garde ton schéma sous le coude. Facile à réaliser effectivement !
    La robotique, c'est fantastique !

  4. #4
    Yoruk

    Re : Programmateur AVR sur port série

    Tu aurais ton schéma en un peu plus gros ? Merci.
    La robotique, c'est fantastique !

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

    Re : Programmateur AVR sur port série

    hello,

    écrêtage zener,
    la tolérance donnée par le fabricant est bien la tolérance en tension. Il ne faut pas oublier qu'en outre ces diodes n'ont pas une impédance dynamique nulle (= leur tension dépend AUSSI du courant)
    OK, 0,5V et 0,6V c'est "pareil" surtout, qu'à l'intérieur du µc il y a une diode de clamping. Oui en approche grossière. Mais tu ne sais pas les détails de la diode de clamping interne (dopages, champs, dimensions, ...). Ainsi la sagesse commande de ne jamais dépasser les valeurs "à ne pas dépasser", d'autant que cela peut générer une panne bien après la surcharge. A bon entendeur ...

    remplacement par des diodes,
    la voilà l'idée qu'elle est bonne ! sauf qu'il n'y a pas le coude caractéristique de la zener, et que la résistance dynamique est encore plus pourrie!

    remplacement par un 7805
    la voilà l'idée qu'elle est meilleure encore !
    deux utilisations possibles
    - en série dans le signal: le courant de repos du 7805 (quiescent current) atteint 8mA, si ton signal ne les fournit pas, tu l'as dans l'os. Il faut lui garantir au moins 7V en entrée
    - en référence de clamping : la performance dépend des diodes et il n'est pas prévu pour absorber du courant par la sortie
    même si tu utilises des régulateurs à low drop-out, ils ne sont pas optimisés pour le fonctionnement en commutation, et le temps de démarrage n'est absolument pas spécifié

    OK j'insiste (peut-être) un peu lourdement sur les défauts de tes propositions. Mais le plus important est que tu aies des idées, après ce ne sont que des erreurs et des succès.

    voici un tableau plus clair sur les connexions entre la DB25 et le port ISP
    (extrait de http://www.tuxgraphics.org/electroni...ticle352.shtml)

    avrdude connait les ports // et série
    dapa = Direct AVR Parallel Access cable [C:\WinAVR\bin\avrdude.conf:645]
    dasa3 = serial port banging, reset=!dtr sck=rts mosi=txd miso=cts [C:\WinAVR\bin\avrdude.conf:763]
    dasa = serial port banging, reset=rts sck=dtr mosi=txd miso=cts [C:\WinAVR\bin\avrdude.conf:750]
    les commandes pour port série décrivent les connexions ( p ex dasa3 = reset relié à DTR, MOSI à RTS, ...)

    la commande s'écrira
    avrdude -c dapa, -p ..., ..., ...


    saluts
    Images attachées Images attachées  

  7. #6
    Fred_du_92

    Re : Programmateur AVR sur port série

    Quelle idée de vouloir ré-inventer la roue. Dès la naissance des AVR, Atmel a publié une appnote sur le sujet:
    http://www.atmel.in/Images/doc0943.pdf

    Et le source du micro: http://www.atmel.com/Images/AVR910.zip

    A la base, ça a été créé pour le vénérable AT90S1200 mais ça doit pouvoir être porté sur un AtTiny sans difficultés

  8. #7
    Yoruk

    Re : Programmateur AVR sur port série

    Je te remercie pour ces précisions.

    Pas de problèmes pour "critiquer" mes suggestions, je ne suis qu'électronicien du dimanche et je suis aussi là pour apprendre.

    Donc en gros, le montage présenté en #1 est correct sauf concernant la partie écretage par zener. Existe-t'il une solution pour améliorer cela, ou bien dois-je me contenter de ce montage ?

    Je vais encore faire une proposition surement dans les clous, mais ne peut-ton pas imaginer passer par un chip type TTL type "porte non" qui me ferai un beau 5v ? (Début de critique : courant de sortie surement trop faible, et problème de l'inversion du niveau lors du passage dans la porte non. Il faudrait aussi diminuer la tension en entrée histoire de pas balancer du +12v sur la porte... )
    La robotique, c'est fantastique !

  9. #8
    zibuth27

    Re : Programmateur AVR sur port série

    hello

    tu ne précises pas le cas que tu choisis finalement : port série ou parallèle

    port parallèle,
    facile avec 3 résistances, tu mesures juste l'identité des 5V

    port série
    tu as visiblement pris conscience des limites à ne pas dépasser (tensions d'entrée de -0.5V à Vcc +0.5V)
    rappel important d'Atmel
    Stresses beyond those listed under “Absolute
    Maximum Ratings” may cause permanent dam-
    age to the device. This is a stress rating only and
    functional operation of the device at these or
    other conditions beyond those indicated in the
    operational sections of this specification is not
    implied. Exposure to absolute maximum rating
    conditions for extended periods may affect
    device reliability.

    Tu as d'un coté, le port rs232 avec ses signaux (+12 -12, 10mA)
    si tu écrêtes simplement tu entres dans des zones à risques, si la tension d'alimentation de ta puce descend.

    De l'autre coté, tu as la puce avec son alimentation (représentée par +5V sur ton second schéma)
    l'alimentation peut être assurée par un 7805 (ou 78L05)

    Mais ces régulateurs ne sont pas prévues pour un courant de sortie inférieur à 1mA, surtout pas négatif, ce qui serait le cas en injectant du courant sur la sortie, il n'y a alors plus de régulation et l'impédance de sortie va considérablement changer
    A moins d'exclure toute nouvelle génération de puce low current, il vaut mieux ne pas compter sur la consommation de la puce pour le débit de compensation.
    Il faut clamper les entrées de la puce sur la masse et sur le Vcc (+5V par exemple)
    Les résistances 4k7 venant du rs232 vont apporter un courant max de (Vdriver=12V et Vcc=5V) de 3mA
    ce courant sera absorbé par une résistance de saignée de 1.6k max, et le 7805 restera alors dans ses specs. Il faut y ajouter la capa de découplage sortie du 7805, recommandée à au moins 10nF (un excès ne nuit pas)

    une diode classique 1N914, 1N4148, ..., créée une tension directe de 0.606V pour 1.5mA (à 25°)
    Atmel met donc la pression pour l'utilisation de diodes Schottky. Ses entrées sont pourtant bien clampées dans la puce, à la masse et au Vcc, par des diodes (qui ne sont surtout pas spécifiées dans les datasheet), évidemment plus petites que n'importe quelle diode externe et ne tiennent sans doute que quelques micro- ou nanojoules, de plus elles rétrécissent à chaque génération de masque. Ne pas trop compter sur elles !


    La commande reset via le transistor n'appelle pas de commentaire particulier

    La pin MISO est connectée directement à la pin 8 RS232. Quand cette pin est configurée en entrée (cas de la puce neuve par exemple), elle est en haute impédance et va être reliée directement, sans résistance au récepteur RS232 du PC.
    Si on ne veut pas affecter sa sortance et garantir le maximum d'amplitude pour espérer être lu correctement par le port RS232 du PC, il faut au moins clamper à la masse et au +5V (protection d'un mauvais cablage rs232 ou d'un court-circuit avec une sortie driver RS232).

    Comme cela tu auras un montage un peu moins bourrin, et qui ne réduit pas la fiabilité de ta puce


    @ Fred_du_92
    Note Atmel AVR910
    merci de ces rappels de la note, écrite en 2000
    elle fait appel à un µcontrôleur qu'il faut lui aussi prrogrammer ( mais c'est pour construire le programmateur ! l'oeuf et la poule quoi !)
    ce programmateur fait appel à un programme qui doit tourner sur le PC. La note AVR910 ne donne que les commandes comprises par le programmateur!
    il faut se peler à la main tous les registres de programmation et signatures de tous les types de nouveaux processeurs sortis depuis 2000
    et en assembleur!

    je n'ai aucune idée s'il est reconnu par les softs de programmation avrdude, uisp, ...

    Le porter sur un at tinyxx, n'est-ce pas réinventer non pas la roue, mais l'eau chaude, avec des risques d'erreurs ??


    en PJ un schéma des points abordés, à compléter

    saluts
    Images attachées Images attachées  

  10. #9
    Fred_du_92

    Re : Programmateur AVR sur port série

    Evidemment, il y a le micro sur le programmateur à programmer et dans ce cas, le programmateur à 3 résistances va très bien, mais ce dernier est très lent et pas très sécurisé. Autant faire mieux ensuite.

    Passé cette première étape, l'AVR910 est normalement reconnu par AVRDude entre autres

  11. #10
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    plutôt que d'utiliser un chip TTL (qui aura les mêmes problèmes d'entrée, quoique sans doute moins aigus)
    pourquoi n'utiliserais-tu pas un MAX232

    son entrée bus est directement prévue pour s'interfacer avec le bus RS232
    sa sortie bus est directement prévue pour s'interfacer avec le bus RS232
    l'autre coté est TTL

    attention les signaux logiques sont inversés !


    c'est au final un montage plus complexe, avec 1 MAX232, 4 capas pour la pompe de tension + découplages + inverseurs et toujours la même alim 7805


    saluts

  12. #11
    Yoruk

    Re : Programmateur AVR sur port série

    Merci à vous de votre retour.

    Je confirme que je souhaite travailler sur le port série.

    Je ne connaissais pas le montage proposé par Atmel, mes recherches sur leur site n'ayant abouti ce à leurs cartes type Dragon ou sk500.

    Je ne cherche pas à me compliquer la vie, aussi ce montage, préconisé par Atmel, me tente. Le seul point "noir" pouvant être le µc. Je ne sais pas s'il le AT90S1200 est encore dispo à l'achat... Le tiny 2313 n'est pas compatible ? Pas de problèmes pour la programmation, j'ai de quoi flasher. Et s'il est reconnu par Avrdude, pas de problèmes.

    Je lirai ce pdf à tête reposée ce week end. Le montage est-il auto-alimenté ?
    La robotique, c'est fantastique !

  13. #12
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    pour tes réflexions du week-end, voici quelques réserves sur l'usage de l'AVR910, peut-être déjà levées par ailleurs:

    L'AVR910, contrairement à la programmation par port parallèle ou port série à interfaces électriques, passe par un µC qui, lui, envoie les signaux ISP à la puce à programmer

    A la première lecture du code assembleur AVR910, il semble dédié aux processeurs d'avant 2000 dont il possède les signatures et les codes de dialogue avec le PC ("see the file avr910.asm for a complete listing of supported devices") Voici cette liste :

    tiny12
    tiny15
    S1200
    S2313
    S2323
    S2333
    S2343
    S4414
    S4433
    S4434
    S8515
    S8535
    mega32
    mega83
    mega103
    mega161
    mega163

    l'appnote AVR910 exclut donc les autres contrôleurs

    avrdude connaît l'AVR910, mais que se passe-t-il si on veut programmer un µC plus récent que ceux de cette liste ?
    que se passe-t-il si on met le paramètre avrdude -p d'un nouveau processeur hors de cette liste ?

    la version at90isp_ver23.asm est la seule disponible chez atmel (révisée en mars 2000), est-il nécessaire de réécrire AVR910.asm ?

    quelqu'un a-t-il une expérience de ce programmateur pour des puces récentes ?

    saluts

  14. #13
    Fred_du_92

    Re : Programmateur AVR sur port série

    J'ai utilisé pendant des années un programmateur compatible AVR910 avec des micros plus récents que ceux de la liste (Mega644, Mega88, Mega8, Mega64, etc, etc.).

    Ce programmateur reste normalement compatible avec tous les AVR qui incluent la programmation ISP, c'est à dire 99% d'entre eux. De mémoire, les seuls qui ne sont pas compatibles sont les petits AtTiny ne disposant pas d'assez de broches pour implémenter ce protocole (Tiny4, Tiny85 par exemple).

    Quand au remplacement de l'AT90S1200, le tiny2313 devrait faire l'affaire. C'est une évolution du 90s2313 qui est lui-même un 1200 avec de la RAM...Tu suis toujours?

  15. #14
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    @ Fred du 92,

    Quelle est la similarité de ton programmateur avec l'AVR910, et de son firmware avec AVR910.asm ?

    Si elle est totale, tant mieux si l'utilisation des µC modernes est possible !


    quel est ce programmateur ?
    Mais alors pourquoi Atmel a-t-il pris la peine de donner une liste sans ouverture et continue dans son appnote du 08/2008
    à dire "see the file avr910.asm for a complete listing of supported devices" ? le fichier avr910.asm reste celui de 2000 sans modif


    saluts

  16. #15
    Yoruk

    Re : Programmateur AVR sur port série

    Concernant l'alimentation de ce montage, il est spécifié qu'elle doit provenir de la carte cible. Par contre, je ne comprends pas ce que signifie le symbole "PAD" relié au reset du AT90S1200 ?

    J'ai du mal à trouver des équivalences pour certains composants... Mes recherches des références de diodes et de transistor ne me donnent que des composants de surface... Je vais continuer mes recherches.

    @zibuth27, je me pose aussi la même question que toi. Je ne comprends pas comment ce programmateur pourrait ne pas gérer des micros modernes sachant qu'ils auront tous la même méthodologie de programmation... Peut être lié à la lecture des signatures du micro cible en début de programmation ?
    La robotique, c'est fantastique !

  17. #16
    Yoruk

    Re : Programmateur AVR sur port série

    Je ne comprends également pas à quoi sert la résistance de 1 méga en // du quartz de l'oscillateur dans le montage Atmel... ?

    J'ai trouvé un montage similaire ici : http://chaokhun.kmitl.ac.th/~kswichit/avr910/avr910.htm

    Sauf que là, l'auteur à remplacé la partie "adaptation de tension" de gauche par un MAX232 car "My experience with such transistor solutions is not good. This solution may not work for some computers.". Qu'en pensez vous ?

    Je dois avoir un MAX232 en stock... Et l'auteur utilise un Tiny2313 !
    La robotique, c'est fantastique !

  18. #17
    Fred_du_92

    Re : Programmateur AVR sur port série

    Citation Envoyé par zibuth27 Voir le message
    hello,

    @ Fred du 92,

    Quelle est la similarité de ton programmateur avec l'AVR910, et de son firmware avec AVR910.asm ?

    Si elle est totale, tant mieux si l'utilisation des µC modernes est possible !
    Quand tu déclares AVR910 comme programmateur sur le logiciel, c'est le signe que c'est fort compatible

    quel est ce programmateur ?
    Un truc allemand dont je serais bien incapable de me souvenir le nom.

    Mais alors pourquoi Atmel a-t-il pris la peine de donner une liste sans ouverture et continue dans son appnote du 08/2008
    à dire "see the file avr910.asm for a complete listing of supported devices" ? le fichier avr910.asm reste celui de 2000 sans modif
    Ils ont pas mis à jour le fichier tout simplement. Tant que ce n'est que les commentaires, rien de bien grave. De toutes façons, le programmateur en lui-même se fiche du micro qui est derrière tant que le protocole est le même. C'est au logiciel, AVR Dude ou autre, de reconnaître le signature ID et d'en déduire le mappin mémoire ainsi que l'emplacement des fuses bits.

    Mais franchement, vu les galères qui t'attendent, autant acheter un vrai programmateur-debugger dans lequel tu auras 100% confiance (rien de pire que de ne pas savoir si c'est le programmeur ou ton programme qui ne marche pas) pour ensuite pouvoir faire toutes sortes de développements, et entre autres cet AVR910 pour ton PC ancestral.

    Et surtout, de quand peut bien dater ce PC pour ne pas avoir d'USB, on parle de machines d'au moins 20 ans là.

  19. #18
    Yoruk

    Re : Programmateur AVR sur port série

    Citation Envoyé par Fred_du_92 Voir le message
    Mais franchement, vu les galères qui t'attendent, autant acheter un vrai programmateur-debugger dans lequel tu auras 100% confiance (rien de pire que de ne pas savoir si c'est le programmeur ou ton programme qui ne marche pas) pour ensuite pouvoir faire toutes sortes de développements, et entre autres cet AVR910 pour ton PC ancestral.
    Je reprécise que ce montage sera destiné à un usage très occasionnel. Tu as tout à fait raison de souligner tout ça, on ne peut pas faire du bon travail avec de bons outils. Mais pour ce besoin ponctuel de dépannage, je pense partir sur la solution du programmateur réalisé à partir d'un simple 2313, d'un oscillateur, et d'un montage à base de MAX232. J'ai tout le matériel sous le coude (sauf le quartz et les capas qui vont avec). Par conséquent, faire un test ne me coutera pas grand chose en temps et énergie. Si ça ne fonctionne pas, tant pis pour moi, mais je n'aurais rien perdu, j'aurais même appris des choses !

    Merci à tous de vos conseils.
    La robotique, c'est fantastique !

  20. #19
    zibuth27

    Re : Programmateur AVR sur port série

    n'oublies pas de publier le résultat, le schéma et le firmware !

    attention au MAX232 : à inverser pour les données reçues et émises vers le 2313
    la ligne reset n'est pas à inverser, le transistor est pris en compte par avrdude et le firmware. Ce transistor t'évite de rajouter un MAX232

  21. #20
    Yoruk

    Re : Programmateur AVR sur port série

    Qu'entends-tu par "inverser" ? Passer dans une porte non, ou juste faire attention de ne pas brancher TX sur TX et RX sur RX ? (Ma spécialité )
    La robotique, c'est fantastique !

  22. #21
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    Inverser c'est pour moi, passer par un étage inverseur et l'état ON qui était à 5V le sera maintenant à 0V.
    Dans le cas des signaux Rx Tx, je parlerais plutôt parler de croiser (on trouve des cables droits ou "croisés")

    Quand je parlais de l'utilisation du MAX232, j'avais plutôt en tête le schéma de ta première interface (avec zeners) et comme l'interface futura ne permet pas de voir les images pendant la rédaction de la réponse (c'est PAS une critique, juste un constat). J'ai pu un peu confusionner, sorry.

    je reprends avec les deux schémas sous les yeux

    premier cas (zeners, second schéma) là, tu peux utiliser un MAX232
    le PC (avrdude ) utilise les pins 3,4,6,7,8 du connecteur DB9 : ce ne sont pas les RX et TX
    l'interface ajuste les niveaux de ces signaux vers le connecteur ICSP (la puce atmel cible)
    les signaux 6,7,4 passant par les deux 4k7, auraient intérêt, IMHO, à passer par un MAX232 qui garantit les compatibilités coté RS232 et coté TTL. Ce sont les deux voies de récepteurs RS232
    le signal MISO peut profiter d'une voie émission RS232 du MAX232 plutôt que d'un fil direct
    le signal 3, allant vers le reset atmel n'a plus de voie MAX232 disponible, mais ce montage à transistor est parfaitement OK
    il faut une option dasa qui affecte
    TXD à reset
    RTS à SCK
    CTS à MISO
    DTR à MOSI

    compatibilté avrdude: l'option avrdude -c dasa affecte les signaux suivants
    RTS pin7 (du connecteur rs232) au reset de la puce
    DTR pin4 au SCK
    TXD pin3 au MOSI
    CTS pin8 au MISO

    l'option -c dasa3 affecte
    DTR pin4 au reset
    RTS pin7 au SCK
    TXD pin3 au MOSI
    CTS pin8 au MISO

    donc, soit tu trouves l'option dasa qui va bien (dasa1, dasa2, dasaxx ? ), soit tu fais correspondre les signaux par cablage

    deuxième cas AVR910
    le PC (avrdude) utilise un connecteur DB9 cablé en null-modem et les signaux RX et TX
    la voie RX utilise un transistor simple en réception, OK
    la voie TX utilise un transistor simple et va "voler" les états -12V émis par le PC sur sa voie TX. Astuce Atmel qui doit bien fonctionner, d'autant qu'en dépit des normes, on arrive souvent à émettre vers un PC sans tension négative, non recommandé mais ça marchotte!
    la régulation de débit n'a pas l'air d'être faite par Xon/Xoff (codes hexa inconnus dans le fichier assembleur) ni par ACK/NACK mais uniquement par demande de nouvelles datas par ACK, à confirmer
    Le reset de la puce atmel n'est pas commandé par avrdude comme dans l'interface précédente, sans doute pr un interrupteur ou jumper
    la résistance de 1Mohms sert à une contre-réaction forte de la porte digitale pour le faire travailler en mode analogique. Cette résistance est souvent interne à la puce, sur ses bornes de d'entrées quartz. 1 Mohms parait quand même faible, ne la mets que si l'oscillateur n'oscille pas.

    Serasidis et Samperi ont modifié l'AVR910 pour fonctionner avec un 90S2313 et rajoutent quelques puces atmel tout en corrigeant certains bugs atmel. Le code date de 2006
    http://serasidis.gr/circuits/avr_isp/avr_isp.htm

    mikrokontroller.de est un excellent site, en allemand, ça te fera réviser. Il te renvoie à http://www.klaus-leidinger.de/mp/index.html qui dénoncent un bug fondamental de l'appnote avr910 qui a inversé MISO et MOSi, c'est exactement le cas de croisement d'une entrée et d'une sortie ! "Achtung!: Wichtig für alle, die einen "alten" AVR910 Brenner mit AT90S1200 umbauen! Im Original Schaltplan von Atmel und auch in der Original Software sind die Funktionen der MISO und MOSI Pins vertauscht. (der MOSI Pin hat die MISO Funktion und umgekehrt). In dieser Schaltung und natürlich auch in der neuen Software sind die Funktionen wie die Beschriftung."
    Il a une liste de puces atmel bien plus étendue et donne la syntaxe de la commande avrdude, ainsi que la mofif nécessaire de avrdude.conf. Le programmateur fonctionne aussi à 115kbauds au lieu de 19k.


    Pour un usage sporadique, le port parallèle reste imbattablement le plus facile


    saluts

  23. #22
    Yoruk

    Re : Programmateur AVR sur port série

    Merci pour ces importantes précisions.

    Je pense avoir saisi l'idée de ton premier paragraphe (montage à zeners). En gros, je remplace toute la partie délicate d'adaptation de tension par un MAX232. ça me parait effectivement une bonne idée... Le mieux est encore que je fasse un schéma et que je te le soumette.

    Pour le cas de l'AVR910, encore une fois, je veux partir au plus simple, et tester le montage proposé ici qui renvoie pour la partie code sur le site allemand que tu as cité. Ce sera pour moi assez facile à tester. (En prenant référence du site allemand, merci google translate !)

    Bonne fin de WE.
    La robotique, c'est fantastique !

  24. #23
    Yoruk

    Re : Programmateur AVR sur port série

    Zibuth27, j'ai suivi tes remarques et observations pour obtenir ce schéma. Pourrais-tu me donner ton retour ?

    Nom : schema_v1.png
Affichages : 245
Taille : 12,8 Ko

    Rien de bien sorcier... J'ai fait passer les signaux 4, 6 et 7 dans le MAX232. MISO (voie 8) également. Le signal du reset restant basé sur le même montage à transistor (BC549). Le MAX232 a été équipé des condos qui vont bien, cf sa datasheet.

    L'alimentation 5v n'est pas représentée, elle proviendra de la carte cible.

    Je me pose une question concernant R3... Elle fait double usage avec celle qui est présente dans mes cartes de mise en œuvre des micros. Je me retrouve donc au final avec 2 résistances de 10k en // entre le reset et le Vcc de mes micros. ça peut poser problème ?
    La robotique, c'est fantastique !

  25. #24
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    commentaires sur ton schéma du message #23

    affectation logique :
    TXD pin3 via transistor discret relié à RST (avec pull-up de 10k)
    DTR pin4 relié à MOSI
    RTS pins 6-7 relié à SCK
    CTS pin8 relié à MISO

    (c'est l'affectation logique de ton second schéma dans le message #01)
    cette affectation logique ne correspond pas aux options dasa ou dasa3 d'avrdude
    Qu'utilises-tu comme option de programmeur avec avrdude ?
    ou utilises-tu uisp ?


    sens des signaux (pendant la programmation du µC):
    MISO est une sortie du µC en programmation, OK, branché à une entrée du MAX232
    MOSI est une entrée du µC, OK, branché à une sortie du MAX232
    SCK est une entrée du µC, OK, branché à une sortie du MAX232
    RST est une entrée du µC, OK, branché à une sortie du transistor
    sens des signaux du connecteur RS232, inchangé

    mode logique (logique positive/négative) :
    il dépend de la polarité des signaux générés/reçus par avrdude, à adapter éventuellement au µC.
    Dans mon message 10 je t'ai rappelé que le MAX232 inversait les signaux et qu'il faudrait prévoir des inverseurs.
    c'est pour cela que j'insiste sur ma demande de connaître le programme de programmation et ses options, pour t'aider plus efficacement.
    si tu utilises le programme (que je ne connais toujours pas, au 23ème message) de ton message #01, les signaux sont reliés part fil au µC avec un écrêtage, il n'y a pas d'inversion logique
    si tu veux utiliser le même programme avec un MAX232, il y a inversion !! (à compenser par des inverseurs)




    R3 en double de celle sur la carte : sans importance, cela ne charge pas outre mesure le transistor T1 (1mA et il peut en supporter 100) ni pour le µC (il peut en supporter 40 pour la plupart des types)
    laisses-la sur la carte de programmation, au cas où elle manquerait sur la cible


    saluts

  26. #25
    Yoruk

    Re : Programmateur AVR sur port série

    Citation Envoyé par zibuth27 Voir le message
    Qu'utilises-tu comme option de programmeur avec avrdude ?
    J'utilise effectivement AVRDUDE (Je ne l'avais pas encore précisé ? arff), mais je n'ai encore jamais travaillé avec le port série. Je n'ai donc aucun paramètre particulier en tête, le mieux étant de faire au plus simple. Je vais me replonger dans la doc pour déterminer celui qui me conviendrait au mieux. Je n'ai effectivement rien inversé pour le moment. Quels signaux sont à inverser ? Tous ? Je vais attendre d'en savoir plus sur les bons modes de paramétrage. Pour le chip, plutôt TTL ou CMOS ?

    Merci encore.
    La robotique, c'est fantastique !

  27. #26
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    J'ai (enfin) pu essayer la programmation d'un AVR par port série
    L'interface est simplifiée
    • pas de translateur de niveau
    • signal reset inversé par transistor
    • clamping à diodes sur niveaux autorisés par Atmel (pas de dépassement des VCC+0,5V ou GND-0,5V)
    • fonctionne sur port RS232 officiel ou réduit (niveaux 0 - 5V)
    • liaison microcontroleur par connecteur et cable ICSP 10pin

    N'ayant plus de PC avec port série, j'ai utilisé un cable USB-RS232 qui possède un connecteur db9 avec tous les signaux nécessaires (à la différence des petites cartes USB-RS232 qui n'ont que RxD et TxD.


    Fonctionne avec avrdude -c dasa3
    Ne fonctionne pas avec -c dasa (et son propre cablage). Contacté l'auteur de avrdude

    schéma joint dasa3
    et photo de l'interface fonctionnelle, du support tiny13 et du cable USB-RS232


    saluts
    Images attachées Images attachées

  28. #27
    Yoruk

    Re : Programmateur AVR sur port série

    Super, un grand merci !!

    Je met à mon programme de réaliser un PCB. Je vais voir ce que j'ai dans mon stock de composants. Je ne pense pas avoir de BC547, mais j'ai des BC549. ça devrait le faire non ?

    Pour les diodes, je peux mettre des 1N4148 ?

    Sur ta petite carte support du attiny13, c'est une capa de découplage de genre 100 nF qu'on peut voir ?
    La robotique, c'est fantastique !

  29. #28
    zibuth27

    Re : Programmateur AVR sur port série

    hello,

    vu le gain de >1 exigé du transistor, tu peux mettre à peu près n'importe quel NPN Silicium

    diode = n'importe quelle diode silicium petit signal est OK (tu pourrais même mettre des diodes 20A ! ) 1N4148 = OK

    résistances = les résistances en série avec les signaux MOSI et SCK peuvent aller de 1k à 10k : elles ne voient que l'impédance d'entrée du microcontroleur tant qu'elles ne dépassent pas GND ou VCC. Mon dernier essai a été avec 4k7 en parallèle sur une 10k.

    affirmatif, c'est bien une céramique 100nF

    saluts

Discussions similaires

  1. Relier un interrupteur sur port parallèle (ou port série)
    Par invitedc8ebe95 dans le forum Électronique
    Réponses: 11
    Dernier message: 04/02/2013, 09h20
  2. Port parallèle vers port série
    Par invite5d1bc976 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/07/2012, 14h10
  3. Programmateur de PIC 18F2550 par port serie
    Par badr-MOB dans le forum Électronique
    Réponses: 0
    Dernier message: 11/01/2012, 19h12
  4. convertiseur port RS485/port serie
    Par invitedae5fd2a dans le forum Électronique
    Réponses: 0
    Dernier message: 17/01/2010, 13h47
  5. Port serie/USB ===> port paralléle
    Par invited60b6f1f dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 07/11/2007, 19h52
Découvrez nos comparatifs produits sur l'informatique et les technologies.