Derniers sujets
LM3914 / LM3915
2 participants
Page 1 sur 1
LM3914 / LM3915
Bonjour,
L'astuce du jour va être la création pas à pas des modèles LTspice pour les fameux LM3914 et LM3915 en partant de leur datasheet.
Et plus particulièrement du Block Diagram
Et on va s'intéresser au LM3914 dans un premier temps.
On va partir de ça :
[Vous devez être inscrit et connecté pour voir cette image]
Pour arriver à ça :
[Vous devez être inscrit et connecté pour voir cette image]
Il se compose majoritairement dune référence de tension de 1.25V, de 10 résistances de 1k, de 10 comparateurs, d'un buffer et d'un sélecteur de mode de fonctionnement des LED, soit sous forme de barre, soit par une seule LED.
Il y a 2 façons d'aborder le problème :
C'est la 2ème méthode qui va être mise en œuvre dans notre cas, mais rien ne vous empêche d'essayer la première solution.
On va commencer par mettre en place les broches suivantes : sig, mode, V+, V_, ref, adj, Rhi, Rlo
La datasheet nous informe entre autre que adj typique = 75µA et que Vref typique = 1.28V.
On en profite pour mettre en place différents labels remarquables (point nodaux du pont diviseur).
[Vous devez être inscrit et connecté pour voir cette image]
Nous allons utiliser les sources suivantes :
A présent, on va s'occuper des comparateurs et pour ça, on va avoir besoin d'une source de tension arbitraire BV et d'une source de courant dépendant de la tensionG pour chaque sortie Q correspondante.
On va aussi en profiter pour définir la pin 9 mode (dot ou bar) d'après la datasheet. Pour simplifier, on ne va prendre que la première condition de la datasheet a savoir :
Si mode > V+ - 0.1V on est en mode bar et sinon on est en mode dot
traduit par :
if(V(mode)>(V(V+)-.1, bar(xxx),dot(xxx)) les xxx étant à remplacer par l'autre condition de comparaison entre le signal sig et le nœud correspondant du pont diviseur.
[Vous devez être inscrit et connecté pour voir cette image]
Pour la première sortie qu'on notera Q1 on va mettre cette valeur à BV :
Dans les faits, Rlo étant relié au GND, il n'est pas nécessaire de l'inclure dans l'équation.
Donc elle devient : V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(k)),dot(V(sig),V(j),V(k)))
Nota: voir aide LTspice sur la fonction if
Est-ce que vous suivez ou ne suis-je pas assez clair dans mes explications?
L'astuce du jour va être la création pas à pas des modèles LTspice pour les fameux LM3914 et LM3915 en partant de leur datasheet.
Et plus particulièrement du Block Diagram
Et on va s'intéresser au LM3914 dans un premier temps.
On va partir de ça :
[Vous devez être inscrit et connecté pour voir cette image]
Pour arriver à ça :
[Vous devez être inscrit et connecté pour voir cette image]
Il se compose majoritairement dune référence de tension de 1.25V, de 10 résistances de 1k, de 10 comparateurs, d'un buffer et d'un sélecteur de mode de fonctionnement des LED, soit sous forme de barre, soit par une seule LED.
Il y a 2 façons d'aborder le problème :
- On redessine un schéma général avec des composants conventionnel (comparateurs, transistors, portes logiques, etc.) d'après ce Diagram Block.
- Ou on utilise des sources arbitraires avec les équations qui vont bien.
C'est la 2ème méthode qui va être mise en œuvre dans notre cas, mais rien ne vous empêche d'essayer la première solution.
On va commencer par mettre en place les broches suivantes : sig, mode, V+, V_, ref, adj, Rhi, Rlo
La datasheet nous informe entre autre que adj typique = 75µA et que Vref typique = 1.28V.
On en profite pour mettre en place différents labels remarquables (point nodaux du pont diviseur).
[Vous devez être inscrit et connecté pour voir cette image]
Nous allons utiliser les sources suivantes :
- I1 --> current source
- V2 --> voltage source
- B11 --> Arbitrary Behavioral Voltage or Current Sources (dans notre cas, c'est une source de courant)
A présent, on va s'occuper des comparateurs et pour ça, on va avoir besoin d'une source de tension arbitraire BV et d'une source de courant dépendant de la tensionG pour chaque sortie Q correspondante.
On va aussi en profiter pour définir la pin 9 mode (dot ou bar) d'après la datasheet. Pour simplifier, on ne va prendre que la première condition de la datasheet a savoir :
Si mode > V+ - 0.1V on est en mode bar et sinon on est en mode dot
traduit par :
if(V(mode)>(V(V+)-.1, bar(xxx),dot(xxx)) les xxx étant à remplacer par l'autre condition de comparaison entre le signal sig et le nœud correspondant du pont diviseur.
[Vous devez être inscrit et connecté pour voir cette image]
Pour la première sortie qu'on notera Q1 on va mettre cette valeur à BV :
- Code:
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(k),V(Rlo)),dot(V(sig),V(j),V(k)))
Dans les faits, Rlo étant relié au GND, il n'est pas nécessaire de l'inclure dans l'équation.
Donc elle devient : V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(k)),dot(V(sig),V(j),V(k)))
Nota: voir aide LTspice sur la fonction if
exemple : if(x,y,z) : If x > .5, then y else z
Expressions can contain the following:
• Node voltages, e.g., V(n001)
• Node voltage differences, e.g., V(n001, n002) --> dans notre cas bar : (V(k),V(Rlo) ou dot : V(j),Vk)
Est-ce que vous suivez ou ne suis-je pas assez clair dans mes explications?
Dernière édition par Janpolanton le Mer 5 Jan - 10:00, édité 1 fois
Suite...
On va définir à présent dot, bar et carry.
On va pour ça créer une fonction pour chaque cas grâce à la directive .func
Nota : .func est équivalent à .function
L'aide de LTspice donne : Syntax: .func([args]) {}
Pour la fonction dot :
Pour la fonction bar :
Pour la fonction carry
On va pour ça créer une fonction pour chaque cas grâce à la directive .func
Nota : .func est équivalent à .function
L'aide de LTspice donne : Syntax: .func
Pour la fonction dot :
- Code:
.func dot(x,y,z) {if((x>z)&(x<=y),10*-I(V2),0)}
Pour la fonction bar :
- Code:
.func bar(x, y) {if(x>y,10*-I(V2),0)}
Pour la fonction carry
- Code:
.function carry() {if(V(sig)>V(b)&V(Q9)-0.6>0,10*-I(V2),0)}
suite...
On reprend avec les comparateurs et le pont diviseur.
Voici en image comment entrer les directives dans les sources arbitraires :
Un clic droit sur la source permet de renseigner la directive dans la ligne "value". On fera de même avec la source de courant G en mettant la valeur du gain (ici défini à 1) dans la ligne "value"
[Vous devez être inscrit et connecté pour voir cette image]
Pour le comparateur suivant (sortie Q2), on se décale sur le pont diviseur:
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(j)),dot(V(sig),V(h),V(j)))
Et ainsi de suite jusqu'à l'avant dernier comparateur (sortie Q9) avec cette directive :
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(b)),dot(V(sig),V(rhi),V(b)))
La directive du dernier comparateur (sortie Q10) est un peu différente car elle doit intégrer le carry.
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(rhi)),carry())
Et voilà, le Block Diagram est terminé. (il resterait à simuler les conditions électriques de la datasheet)
Une fois le Bloc Diagram dessiné, il suffit d'en extraire la netlist (clic droit View - Spice Netslit)
Ensuite supprimer la dernière ligne .backanno copier le tout dans le bloc-notes.
Ajouter ces 2 lignes en tête : (respecter l'ordre des 18 pin suivant celui la datasheet)
* block symbol definitions
.subckt lm3914 Q1 V- V+ Rlo sig Rhi ref adj mode Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
Et enregistrer le tout sous lm3914.lib
Ensuite il suffit de créer le symbole en ouvrant cette librairie sous LTspice.
Voici en image comment entrer les directives dans les sources arbitraires :
Un clic droit sur la source permet de renseigner la directive dans la ligne "value". On fera de même avec la source de courant G en mettant la valeur du gain (ici défini à 1) dans la ligne "value"
[Vous devez être inscrit et connecté pour voir cette image]
Pour le comparateur suivant (sortie Q2), on se décale sur le pont diviseur:
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(j)),dot(V(sig),V(h),V(j)))
Et ainsi de suite jusqu'à l'avant dernier comparateur (sortie Q9) avec cette directive :
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(b)),dot(V(sig),V(rhi),V(b)))
La directive du dernier comparateur (sortie Q10) est un peu différente car elle doit intégrer le carry.
V=if(V(mode)>(V(V+)-0.1),bar(V(sig),V(rhi)),carry())
Et voilà, le Block Diagram est terminé. (il resterait à simuler les conditions électriques de la datasheet)
Une fois le Bloc Diagram dessiné, il suffit d'en extraire la netlist (clic droit View - Spice Netslit)
Ensuite supprimer la dernière ligne .backanno copier le tout dans le bloc-notes.
Ajouter ces 2 lignes en tête : (respecter l'ordre des 18 pin suivant celui la datasheet)
* block symbol definitions
.subckt lm3914 Q1 V- V+ Rlo sig Rhi ref adj mode Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
Et enregistrer le tout sous lm3914.lib
Ensuite il suffit de créer le symbole en ouvrant cette librairie sous LTspice.
Re: LM3914 / LM3915
[Mode digression=ON]
Ces circuits bargraph sont surtout conçus pour commander des LED's, mais en remplaçant chacune par celle d'un photo-coupleur comme le H11L1 on pourrait recueillir un niveau logique TTL/CMOS à la place.
La question qui se pose c'est: est ce qu'il est indispensable de passer par un photo-coupleur et qu'il ne serait pas plus simple d'obtenir un niveau compatible TTL/CMOS directement sur les sorties du circuit bargraph rien qu'en remplaçant les LED's par des résistances de valeur appropriée dont le commun serait alimenté par du +5 volts?
Je pense plus particulièrement au démultiplexage d'un signal "sandcastle" en 3 signaux logiques à l'aide d'un LM3914:
[Mode digression=OFF]
Ces circuits bargraph sont surtout conçus pour commander des LED's, mais en remplaçant chacune par celle d'un photo-coupleur comme le H11L1 on pourrait recueillir un niveau logique TTL/CMOS à la place.
La question qui se pose c'est: est ce qu'il est indispensable de passer par un photo-coupleur et qu'il ne serait pas plus simple d'obtenir un niveau compatible TTL/CMOS directement sur les sorties du circuit bargraph rien qu'en remplaçant les LED's par des résistances de valeur appropriée dont le commun serait alimenté par du +5 volts?
Je pense plus particulièrement au démultiplexage d'un signal "sandcastle" en 3 signaux logiques à l'aide d'un LM3914:
[Mode digression=OFF]
Dernière édition par Raffou le Ven 7 Jan - 22:23, édité 1 fois
Raffou- Modérateur principal
- Messages : 114
Date d'inscription : 21/12/2021
LM3914 +H11L1
Bonjour [Vous devez être inscrit et connecté pour voir ce lien],
Voici 2 simulations LM3914 + H11L1 en mode bar et en mode dot.
Pour la question ci-dessus, je n'ai rien compris. Je n'y connais rien en télévision
Mais si ça peut aider, je ferai les simulations.
[Vous devez être inscrit et connecté pour voir cette image]
Voici 2 simulations LM3914 + H11L1 en mode bar et en mode dot.
Pour la question ci-dessus, je n'ai rien compris. Je n'y connais rien en télévision
Mais si ça peut aider, je ferai les simulations.
[Vous devez être inscrit et connecté pour voir cette image]
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Hier à 16:08 par jmespe
» Laquelle ?
Hier à 11:52 par Bruno_Picard
» Cherche VARIAC ou assimilé
Sam 18 Mai - 21:47 par Bruno_Picard
» Discret 12
Ven 17 Mai - 9:04 par dreambox59
» mise en place cms
Jeu 16 Mai - 9:48 par LePetit
» Logo Cabasse
Mer 15 Mai - 18:11 par Bruno_Picard
» Projet de VU-mètre stéréo à tubes cathodiques 902 A
Dim 12 Mai - 14:24 par Bruno_Picard
» probleme transistors montés sur un même dissipateur
Sam 11 Mai - 15:57 par Roger33