Validation schéma ?
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Validation schéma ?



  1. #1
    Tony78

    Smile Validation schéma ?


    ------

    Bonjour,
    Je travaille actuellement sur un projet visant à me familiariser avec les microcontrôlleurs.
    En gros, je cherche à faire clignoter une lampe (Constituée d'environ 20 LED) de plusieurs manières, en fonction d'une commande envoyée.
    - De P1.1 sortira un signal d'erreur (DEL allumée) si la commande ne correspond à rien.
    - De P1.0 sortira le signal que je veux envoyer à la lampe.



    Mes questions sont les suivantes :
    Que pensez-vous de ma partie "puissance" (tout ce qui est branché à P1.0) ?
    Que pensez-vous des connexions propres au microcontrôleur ?
    Que pensez-vous du schéma en général ?

    Merci beaucoup,

    Tony

    -----
    Dernière modification par Tony78 ; 16/05/2007 à 17h03.

  2. #2
    invitee17aeca5

    Re : Validation schéma ?

    Salut !
    je pense que majheureusement, tu n'as pas posté dans la bonne section, pour les renseignements techniques, essay la partie électronique normale

    ++ bonne chance Tix.

  3. #3
    JPL
    Responsable des forums

    Re : Validation schéma ?

    Déplacé vers le bon forum.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  4. #4
    Jean.Marc

    Re : Validation schéma ?

    Bonjour

    pour P1.1, le port de sortie court-circuite la LED, de façon qu'elle soit éteinte quand tu écris un zéro. Est-ce cela que tu veux?
    Ce montage a l'inconvénient que la résistance R4 consomme que la LED soit allumée ou éteinte, ce qui n'est pas économe. En général, on branche : P1.1 - LED - R4 - Vcc. Le circuit ne consomme que quand la LED est allumée. En revanche, elle s'allume quand on écrit un zéro, mais il suffit d'inverser le bit de commande pour que tout rentre dans l'ordre.
    Il faut aussi tenir compte de l'état du port à l'initialisation, avant que le programme ne démarre. Alors, le port P1 est en haute impédance. Avec ton montage, la LED s'allumerait aussitôt que la tension est appliquée, et ne s'éteindra qu'après l'initalisation du programme. Avec le schéma que je propose, la LED commence éteinte, ce qui est mieux. Imagine si au lieu d'une LED tu mettais une commande de moteur : le moteur démarrerait avant que le processeur ait pu l'arrêter. Ce n'est pas une méthode saine.

    P1.0. L'utilisation du transistor T1 sécurise le fonctionnement, ce qui fait que les LEDs ne s'allumeront pas dès la mise sous tension. C'est bien. Mais le transistor T2 est monté en drain commun, aussi appelé "suiveur". La tension de sortie sera zéro à l'arrêt, mais une tension égale à Vcc -le seuil du transistor, à l'état activé (P1.0 à l'état haut). Deux inconvénients :
    - le seuil du transistor varie de 2.1 à 4 V selon la spec constructeur. La tension disponible à la sortie sera donc comprise entre 1 et 2.9 V. C'est peu !
    - le transistor fonctionne en mode linéaire, et dissipe donc une puissance égale au courant consommé par la charge, multiplié par 12 V - la tension de sortie, soit environ 10 V. Cela fait une dissipation de 1 W par exemple pour 100 mA. Le transistor va donc s'échauffer de 62° puisque la résistance thermique est de 62°/W. Ce n'est pas bon, les semiconducteurs vieillissent plus vite en température.
    Je propose de connecter directement la source à la masse, de couper le fil qui relie le drain au +12V et d'y insérer la charge.
    Ainsi le transistor fonctionnera en mode source commune, et commutera franchement le courant de la charge. Sa résistance sera alors le RDSon = 0.03 ohm d'où un échauffement négligeable.
    Jean-Marc

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

    Re : Validation schéma ?

    Bonsoir,
    Merci de ta réponse Jean Marc !
    Je vais commencer...par le commencement :

    P1.1 :
    =====
    En effet, je veux que la LED s'allume lorsque j'écris un '1' sur P1.1, et qu'elle s'éteigne si j'écris un '0'.
    J'ai placé R4 de cette façon car la documentation du microcontrôleur, un atmel 89C2051, dit que les ports P1.0 et P1.1 ne disposent pas de résistance de pull up directement dans le composant. J'ai donc palié ce souci par R4.
    Si je fais mon montage comme tu me le conseilles, avec P1.1 - LED - R4 - Vcc, R4 ne jouera plus le rôle de pull up...si ?

    P1.0 :
    =====
    Comme pour P1.1, R16 est là en tant que pull up de P1.0.
    J'ai refait la schéma en suivant tes conseils pour la connexion charge / T2. D'après cette capture d'écran, l'ai-je compris correctement ?



    Aussi, j'ai repris une partie de ce schéma sur un autre déjà existant...et je ne comprends pas l'utilité de la branche [R7 - Masse] entre R6 et T2. Saurais-tu me l'expliquer ?
    Avec le nouveau schéma, puis-je espérer avoir une tension proche de 12V aux bornes de la charge ?

    Merci beaucoup, tu m'es d'une grande aide !

  7. #6
    Jean.Marc

    Re : Validation schéma ?

    Bonjour
    je suppose que tu ne te représentes pas bien la notion de pullup.
    Lorsqu'on veut générer un signal en tension, et qui vaut soit zéro soit 5V, il faut avoir un étage de sortie à 2 transistors, dit "push pull" ou "totem pole". Quand celui du haut conduit, l'autre étant bloqué, la sortie est à 5V. Quand c'est l'inverse, la sortie est à zéro.
    Dans le cas du microcontrôleur atmel et de ses ports P0.0 et P0.1, seul le transistor du bas est présent. C'est ce qu'on appelle un "drain ouvert". Quand il est passant, la sortie est à zéro. Quand il est bloqué, la sortie est indéterminée, puisque le transistor est une haute impédance. Pour avoir un niveau 5V dans ce cas, il suffit de mettre une résistance entre la sortie et le +5V, c'est ce qu'on appelle une résistance Pullup.
    Dans ton cas, ce n'est pas une commande en tension qu'il faut mais une commande en courant. Tu envoie du courant dans la LED, elle s'allume ; tu coupes, elle s'éteint. Le circuit doit être : +5V - résistance limitatrice de courant - LED - interrupteur - masse.
    Le rôle de l'interrupteur est rempli par le port P0.0 et son transistor à la masse.
    Il est vrai que ce montage fonctionne à l'envers de ce que tu veux : tu écris un zéro, la LED s'allume. Mais où est la difficulté dans le programme d'insérer une instruction qui va complémenter le bit que tu écris dans le port P0 ? Et le circuit est plus sécuritaire et plus propre.

    Concernant le schéma modifié : parfait, tu as tout compris.
    Rôle de R7 et R6 : pour ainsi dire, elles ne servent à rien. Tu peux mettre un court-circuit à la place de R6 et rien à la place de R7. Ce serait nécessaire si le transistor de sortie était bipolaire (NPN). Comme c'est un MOS, c'est inutile.
    La tension aux bornes de la charge sera de 12V moins la chute du transistor qui est de 30 mV pour un ampère dans la charge, autant dire 12 V.

    Jean-Marc
    Dernière modification par Jean.Marc ; 17/05/2007 à 12h59.

  8. #7
    Tony78

    Re : Validation schéma ?

    Bonjour,
    Au niveau de P1.1, et concernant le pull up, mon schéma devrait alors ressembler à ceci ?


    Aussi, R16 joue le rôle d'une résistance de pull up "à ma façon".
    Est-elle correctement branchée telle qu'elle apparait sur ce schéma ?

    Merci,

    Tony

  9. #8
    invite5637435c

    Re : Validation schéma ?

    Ton lien ne contient aucune image, pourquoi ne la mets-tu pas en pièce jointe via le forum?

  10. #9
    Tony78

    Re : Validation schéma ?

    Bonjour,
    J'ai essayé de modifier mon message, mais apparemment cela m'est interdit (délai de 5mn dépassé...).
    Le lien ne fonctionne pas à cause d'un espace entre le 'j' et le 'p' de "jpg".
    Le voilà corrigé :

    Bonne journée ,

    Tony

  11. #10
    Tony78

    Smile Ca progresse...mais !

    Rebonjour,
    J'ai travaillé sur mon montage aujourd'hui. Au niveau puissance, rien ne fonctionnait..jusqu'à ce que je coupe la connection [R16 - Vdd] : Là, ca fonctionne ! Si je force P1.0 à '0', alors la sortie de puissance est active, si P1.0 = '1', alors puissance = '0'. (Content le monsieur )

    J'ai cependant un autre problème...
    Tous les tests que j'ai pu réaliser, je les faisais SANS le microcontrôleur : A l'aide d'un fil, je mettais directement la grille de T1 à 5V ou à la masse (En passant tout de même par R3).
    Mon microcontrôleur installé sur son support...rien ne se passe... , même après un reset (qui devrait se faire lors de la mise sous tension, grâce à C5).

    Le schéma de cablage du µC est le suivant :


    Le code que j'essaie de faire fonctionner est le suivant :

    Code:
    #include <AT892051.H>
    void init_timer(void);
    void tempo(int duree);
    void init_micro(void);
    
    void main (void)
    {
    	init_micro();
    	init_timer();
    	P1 = 0xFF;
    	while(1)
    	{
    	     P1 = !P1;
    	     tempo(25000);
    	}
    }
    
    void init_micro(void)
    {
    	CLKREG = 0x01;
    	EA = 0;
    }
    
    void init_timer(void)
    {
    	long periode;
    	int init;
    	TMOD = 0x12;
    	periode = (1000000 / 50);
    	init = 65536 - (periode / 2);
    	TH0 = init %256;
    	TR0 = 1;
    }
    
    void tempo(int duree)
    {
    	int i;
    	while(TF0 == 0);
    	TF0 = 0;
    	for (i=0; i<duree; i++)
    	{
    		while(TF0==0);
    		TF0 = 0;
    	}
    }
    Voyez-vous une erreur ou un oubli là dedans (Schéma ou code) ?

    Merci

  12. #11
    invite5637435c

    Re : Validation schéma ?

    Normal, le condensateur de reset se met à la masse et non pas au VDD.
    Ton µC est en reset permanent.

  13. #12
    Tony78

    Re : Validation schéma ?

    Merci , je testerai ca lundi, je n'ai pas le schéma avec moi.

  14. #13
    Tony78

    Unhappy Re : Validation schéma ?

    J'ai mis ma capa de reset entre GND et le pin RST du µC, et toujours rien.
    Es-tu sûr de toi quand tu me dis de le mettre à la masse ?
    J'ai trouvé pas mal de schémas à base de 89C2051 sur le net, et le condensateur de reset est toujours au VDD.

    http://www.maxmidi.com/diy/viewport/view8x10.gif
    http://www.elektroda.net/mikrokontro...9cx051Cs1s.gif
    http://www.klaus-leidinger.de/mp/RC-...51/vor_v30.gif
    http://8051help.mcselec.com/Images/bm77.jpg

    Pour faire un reset du µC, il faut mettre RST à l'état haut pendant deux cycles d'horloge. Quand on met la capa de reset à Vcc, on va avoir une tension de 5V sur le RST au branchement du montage, tension qui va décroitre en suivant une courbe , non ?

    Mon montage ne fonctionne toujours pas...

  15. #14
    invite1b38f1ee

    Re : Validation schéma ?

    Citation Envoyé par Tony78 Voir le message
    J'ai mis ma capa de reset entre GND et le pin RST du µC, et toujours rien.
    Es-tu sûr de toi quand tu me dis de le mettre à la masse ?
    J'ai trouvé pas mal de schémas à base de 89C2051 sur le net, et le condensateur de reset est toujours au VDD.
    Oui mais il y a une résistance en plus que tu n'a pas toi.


  16. #15
    Tony78

    Re : Validation schéma ?

    Une résistance en plus que je n'ai pas ?
    J'ai pourtant R5 (10k) qui est entre RST et la masse, je n'en vois pas d'autre sur les autres schémas...

  17. #16
    invite1b38f1ee

    Re : Validation schéma ?

    Oups dsl je ne regardais pas au bon endroit!

  18. #17
    Tony78

    Re : Validation schéma ?

    et moi qui me suis repassé mon schéma au moins 10 fois en cherchant LA résistance qui manquait !
    Bon...dans tout ca, ma sortie ne clignotte toujours pas

  19. #18
    invite5637435c

    Re : Validation schéma ?

    Citation Envoyé par Tony78 Voir le message

    Es-tu sûr de toi quand tu me dis de le mettre à la masse ?
    J'ai trouvé pas mal de schémas à base de 89C2051 sur le net, et le condensateur de reset est toujours au VDD.
    Désolé Tony78, j'ai confondu ton µC avec un Pic...

  20. #19
    Tony78

    Re : Validation schéma ?

    Bonjour,
    Pas de souci, j'aurais appris que les PIC on leur reset actif à la masse
    Et...ma carte ne fonctionne toujours pas

  21. #20
    Tony78

    Thumbs up Re : Validation schéma ?

    Bonjour,
    Il y a du nouveau !
    J'ai modifié mon programme, et...ca a l'air de fonctionner !

    J'ai remplacé ma fonction de temporisation par celle-ci :

    Code:
    void tempo(void)
    {
    	int i;
    	for (i=0; i<20000; i++) 
    	;                       
    	for (i=0; i<20000; i++) 
    	;
    }
    Je n'utilise donc plus le timer.
    Cela dit, ça fonctionne, mais j'aimerais bien l'utiliser ce timer...Savez-vous si un défaut au niveau du circuit peut avoir pour conséquence de rendre le timer inutilisable ?
    Je rappelle que mon code utilisant les timers fonctionnait sur une carte d'une autre circuit.

    Merci,

    Tony

  22. #21
    invite5637435c

    Re : Validation schéma ?

    Salut,

    je ne connais pas ton µC mais je suppose que pour utiliser ton timer, il faut détecter une interruption lorsque celui-ci a fini de compter ce que tu lui a demandé...

    Je ne vois rien dans ton programme au post #10 qui y fait référence, tu l'initialise en déclarant une valeur de départ mais ensuite rien n'est déclenché me semble-t-il.
    Dans tempo que représente TF0 que tu mets à 0 plusieurs fois?

  23. #22
    Tony78

    Re : Validation schéma ?

    Salut Hulk ,
    TF0 est un bit du regitre TCON (Timer control) qui passe à '1' quand le timer repasse à '0' (dépassement). Il génère une interruption "Timer".

    Un petit copier/coller de la doc de l'architecture 8051, concernant les timer :
    Timer 0 functions as either a timer or event counter in four modes of operation.
    Timer 0 is controlled by the four lower bits of the TMOD register and bits
    0, 1, 4 and 5 of the TCON register. TMOD register selects the method of
    timer gating (GATE0), timer or counter operation (T/C0#) and mode of operation (M10 and M00). The TCON register provides timer 0 control functions: overflow flag (TF0), run control bit (TR0), interrupt flag (IE0) and interrupt type control bit (IT0).
    For normal timer operation (GATE0= 0), setting TR0 allows TL0 to be incremented by the selected input. Setting GATE0 and TR0 allows external pin INT0# to control timer operation.
    Timer 0 overflow (count rolls over from all 1s to all 0s) sets TF0 flag, generating an interrupt request.

  24. #23
    Tony78

    Re : Validation schéma ?

    Du nouveau !
    J'ai repris mon code du post #10 en remplaçant P1 par P1_0 (ma sortie "utile") et...ça marche !
    J'ai du mal à comprendre pourquoi le timer ne fonctionnait pas (le programme restait dans la fonction tempo sans en sortir) : Le port P1 comprend trois ports de programmation in situ, les deux entrées pour le comparateur analogique, et...trois ports d'entrée sortie "normaux".
    Une piste à la réponse "pourquoi ça marchait pas ? " ?

    Merci

Discussions similaires

  1. Validation de schéma
    Par Toufinet dans le forum Électronique
    Réponses: 15
    Dernier message: 07/10/2008, 13h44
  2. Validation de schéma
    Par yvan30 dans le forum Électronique
    Réponses: 8
    Dernier message: 09/08/2007, 09h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...