can - WordPress.com

publicité
ADC au niveau matériel
De nombreux signaux électriques autour de nous sont analogiques dans la nature.
Cela signifie qu’une quantité varie directement avec une autre quantité. La première quantité est la plupart du temps la tension tandis
que la deuxième quantité peut être la température, la pression, la lumière, la force ou l'accélération. Par exemple, dans le cas du capteur
de température LM35 la tension de sortie varie en fonction de la température, de sorte que si nous pouvions mesurer la tension, on
pourrait mesurer la température.
Mais nos ordinateurs (ou Microcontrôleurs) sont de nature numérique. Ils ne peuvent que différencier entre le niveau HAUT ou BAS sur
les broches d'entrée. Par exemple, si l'entrée est supérieure à 2.5v elle sera lue comme 1 et si elle est inférieure à 2,5, alors elle sera lue
comme 0 (dans le cas des systèmes de 5v). Donc, nous ne pouvons pas mesurer la tension directement à partir d’un CPU. Pour résoudre
ce problème la plupart des microcontrôleurs modernes disposent d'une unité de CAN (convertisseur analogique –numérique) ou ADC (
Analog Digital converter) .
Quelques exemples très utile de dispositifs analogiques sont
Capteurs de lumière.
Capteurs de température.
Accéléromètres.
Ecrans tactiles.
Microphone pour enregistrement audio.
Le principe
Théoriquement la conversion doit s’effectuer en respectant 3 étapes :
 L’échantillonnage
 La quantification
 La pesée
L’échantillonnage
L’analogie la plus simple est celle d ’un sondage électoral.
Prévoyons que le parti x aura 49% des voix, le parti y 20% des voix etc…
Nous venons d’effectuer un échantillonnage des intentions de vote.
Mais attention, cette estimation est approximative, le résultat final du parti x par exemple peut très bien être de 48% ou de 50%.
Accordons-nous donc une marge d’erreur. C’est exactement la même chose en télécommunications.
Dans notre cas nous ne devons pas échantillonner des intentions de vote. (Un échantillon correspond à une impulsion).
Nous devons échantillonner de la parole.
Définition :
La parole est un signal analogique dont la gamme des fréquences varie entre 300 et 3400 Hertz.
Deux questions se posent :
•Que faut-il échantillonner ?
•À quelle fréquence faut-il échantillonner ?
La réponse à la première question est simple, nous voulons échantillonner de la parole (les abonnés téléphoniques par exemple).
La réponse à la deuxième question est donnée par le théorème de Shannon.
Théorème de Shannon
F échantillonnage >= 2 fois la fréquence maximum du signal à échantillonner
Nous devons échantillonner la parole ( BF) soit un signal variant entre 300 et 3400 Hertz.
La fréquence d’échantillonnage doit donc être au moins de : 3400 x 2 = 6800 Hz
Nous arrondissons à 8000 hertz soit 8 Khz , 8 étant une puissance de 2. Il ne faut pas oublier que nous allons travailler
en numérique, donc en binaire.
Comme T(période)=1/F , T= 1/8000= 125m secondes
1
La quantification
2
Important : Il est à noter que l’erreur de quantification est la seule erreur hors ligne lors d’une conversion A-N.
Le codage ou la pesée
C’est l’opération qui consiste à convertir en binaire (Numérique) la valeur lue lors de la quantification.
La conversion s’effectue sur 8 bits.
exemple de valeur positive +117 deviendra 01110111
exemple de valeur négative - 43 deviendra 11010111
Quelques méthodes de conversion ( extrait du cours de l’auteur)
Les CAN font correspondre à une entrée analogique une sortie numérique.
Le bit de poids fort se nomme MSB et le bit de poids faible LSB.
Convertisseur simple rampe
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
principe:
À la fermeture de l’interrupteur le condensateur se charge linéairement. Le temps de basculement du comparateur dépendra donc
directement de la tension d’entrée. Au moment du basculement, le ET bloque l’horloge du compteur. La sortie binaire de ce dernier est
donc proportionnelle à la tension d’entrée Ue . Le principal inconvénient vient de l’influence du vieillissement de la capacité et de la
stabilité de l’horloge sur le mot de sortie.
Pour s’affranchir de ceci, on utilise fréquemment une conversion double rampe. On charge la capacité jusqu’à ce que le compteur soit
plein . Ce temps de comptage est donc constant. Puis on effectue une décharge avec une entrée de référence jusqu’au passage à zéro.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Réalisez un codeur simple rampe
Quelques données technique pour vous aider
3
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
4
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
La commande remet à zéro le compteur et démarre la rampe
Réalisez un codeur double rampe
Principe de base
On compare la tension d’une charge de condensateur avec un tension de référence pendant un certain temps.
Tant que la tension de référence est supérieure à la tension de charge du condensateur la sortie du comparateur est à 1, ce qui crée ce
que l’on nomme une fenêtre.
Pendant le temps d’ouverture de la fenêtre ( temps à 1). On insère des coups d’horloge. Il suffit alors de compter le nombre de coup
d’horloge pour obtenir un nombre binaire proportionnel à la largeur de la fenêtre.
5
LE CODEUR À PESÉES SUCCÉSSIVES
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Conversion par comptage d’impulsions
Étude du monostable, le convertisseur à simple et double rampe
Présentation
Qu'est qu'un monostable ? C'est un circuit électronique dont la sortie se trouve dans un état électrique stable quand il est au repos, et qui
lorsqu'il reçoit une impulsion dite de déclenchement, fait basculer sa sortie dans l'état électrique opposé pendant un "certain temps". Ce
nouvel état est instable, et la sortie retrouve son état initial au bout de ce "certain temps". Un monostable peut donc servir de base à la
construction d'un temporisateur.
Caractéristiques principales
Un monostable présente quelques caractéristiques de base qu'il convient de connaître.
Impulsion de déclenchement (ou impulsion d'entrée)
Il s'agit de l'évènement qui conduit la sortie du monostable à changer d'état. Il peut s'agir d'une courte impulsion ou d'un changement
d'état logique sans retour à l'état initial.
Attention, la durée de l'impulsion de déclenchement doit être suffisamment grande pour que le monostable la voit . Le célèbre circuit
intégré "timer" NE555 demande une impulsion dont la largeur doit être de l'ordre de 1 ms. Le monostable TTL SN74123
accepte quant lui une impulsion dont la largeur est de quelques dizaines de nanosecondes seulement (même s'il faut 100 ns, ça nous
donne un rapport de 10000 tout de même). D'autres circuits plus rapides encore (série ECL) travaillent sans faillir avec des impulsions de
seulement quelques nanosecondes. Intuitivement, on se rend compte que la fréquence maximale de travail peut être limitée si la largeur
de l'impulsion est large.
Polarité de l'impulsion de déclenchement
Elle peut être positive (bas-haut-bas ou bas-haut) ou négative (haut-bas-haut ou hautbas).
6
Impulsion de sortie
C'est ainsi que l'on nomme l'état instable dans lequel le monostable se trouve lorsqu'il vient d'être déclenché, c'est à dire quand l'état
logique de sa sortie se trouve à l'opposé de l'état logique présent au repos.
Polarité de l'impulsion de sortie
Au repos, la sortie du monostable peut être à l'état haut ou à l'état bas, et sur présence d'une impulsion de déclenchement, passer à l'état
opposé, bas ou haut.
Durée de l'impulsion de sortie
C'est la durée du "certain temps", pendant lequel la sortie du monostable reste dans son
état instable, et ce que l'on ait affaire à une durée de 100 ns (cent nanosecondes) ou de
100 s (cent secondes).
Redéclenchable ou non redéclanchable
Un monostable non redéclenchable délivre une impulsion de sortie dont la durée est immuable, même si pendant l'état instable,
surviennent plusieurs impulsions de déclenchement. Un monostable redéclenchable délivre une impulsion de sortie qui se
"réactive" à chaque nouvelle impulsion de déclenchement. Si une nouvelle impulsion de déclenchement a lieu alors que la sortie du
monostable n'est pas encore retourné à son état stable (de repos), ou dit autrement, si le temps qui sépare deux impulsions de
déclenchement est inférieur à la durée de l'impulsion de sortie, la durée de l'impulsion de sortie est prolongée d'un temps égal à la durée
d'une impulsion de sortie unique.
Utilisations
Le monostable est un circuit très utilisé. Il permet :
▪ de fixer la durée d'un évènement
▪ de retarder la production d'un évènement
▪ de contrôler la présence ou l'absence d'un signal périodique (surveillance rotation ventilateur par exemple)
▪ d'effectuer un filtrage (blocage d'un signal dont la fréquence ne répond pas à une certaine plage de valeurs)
▪ de mesurer des fréquences, si on l'associe à un intégrateur RC.
Fonctionnement de base
Pour commencer, examinons le fonctionnement d'un monostable simple travaillant en logique positive. Le schéma simplifié ci-après
représente le monostable sous la forme d'une "boite noire" dotée des points de connexion suivants :
▪ une entrée CLK (Clock, horloge) qui est l'entrée de déclenchement, active sur un front
montant
▪ une entrée RESET que nous n'utilisons pas et qui est reliée à la masse,
▪ une sortie Q qui est la sortie principale "positive",
▪ une sortie Q barre (Q avec point d'exclamation à gauche
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Sur l'entrée CLK, nous appliquons une impulsion de déclenchement positive Imp, et
nous regardons ce qui se passe sur la sortie Q (Out).
Graphe aa
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Ce premier graphe montre ce qui se passe avec une impulsion de déclenchement positive Imp dont la durée (50 ms) est inférieure à
la durée de l'impulsion de sortie Out (500 ms).
Graphe ab
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
7
Alors que ce graphe montre ce qui se passe avec une impulsion de déclenchement positive Imp dont la durée (500 ms) est supérieure
à la durée de l'impulsion de sortie Out (50 ms).
Dans les deux cas, une seule et unique impulsion est née en sortie Q (Out) du monostable. Premier point à retenir : pour un
déclenchement isolé, la durée de l'impulsion de déclenchement n'a pas besoin d'être inférieure (ni supérieure) à la durée de l'impulsion
de sortie. Le fonctionnement observé ici est identique pour un monostable non-redéclenchable et pour un monostable redéclenchable.
Durée de l'impulsion de sortie
Dans le schéma simplifié ci-avant, aucun élément visible ne permet de modifier la durée de l'impulsion de sortie. C'est normal, car c'est
un schéma simplifié, les éléments "de réglage" sont cachés. Dans un montage réel, on emploie généralement une résistance et un
condensateur pour fixer la durée de l'impulsion de sortie (voir plus loin, paragraphe Exemples pratiques).
Impulsions négatives
Dans l'exemple précédent, les impulsions de déclenchement et de sortie étaient toutes deux de type positives. L'entrée CLK du
monostable était active sur le front montant de l'impulsion de déclenchement. Sur le front montant ? Oui, le front montant désigne le
passage de l'état logique bas (zéro volt) vers l'état logique haut (+5V par exemple).
Normal qu'on appelle ça front montant, puisque la tension monte. Même chose pour le front descendant, qui désigne le passage de l'état
logique haut (+5V par exemple) vers l'état logique bas (zéro volt) : la tension descend. Il est tout à fait possible de travailler
avec des impulsions négatives ou de travailler sur des fronts descendants. Ce qui n'est pas du tout la même chose, comme on va s'en
rendre compte avec les graphes suivants, où nous observons maintenant l'état électrique des deux sorties Q et Q barre.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Graphe ba
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement sur le front montant d'une impulsion positive
Graphe bb
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement sur le front descendant d'une impulsion positive
Graphe bc
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement sur le front descendant d'une impulsion négative
8
Graphe bd
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement sur le front montant d'une impulsion négative
Côté sortie Q (Out) et Q barre (Out_b), pas de réelle surprise : quand Q (Out) est à l'état haut, Q barre (Out_b) est à l'état bas. Et
inversement. Si le monostable possède de nature ces deux sorties complémentées, cela permet de disposer immédiatement de la
polarité désirée, ce qui peut dans certains cas éviter l'emploi d'un inverseur additionnel.
Côté entrée de déclenchement (entrée CLK, signal Imp), les dessins (graphes) valent mieux qu'un grand discours. Aussi, prenez bien le
temps d'observer les différences entre les quatre graphes.
Graphe be
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement sur le front descendant d'une impulsion positive, l'impulsion de déclenchement étant cette fois plus longue. L'impulsion de
sortie du monostable est déclenchée avec un retard égal à la durée de l'impulsion de déclenchement. Cela était déjà le cas dans les
graphes bb et bd, mais ici, c'est beaucoup plus visible.
Application première : ajout d'un retard, dont la durée est aussi facile à spécifier que l'est la durée de l'impulsion de sortie principale ellemême. Comment créer une impulsion de déclenchement qui joue le rôle de retardateur ?
Avec un second monostable, par exemple... Voyez le schéma qui suit, où deux
monostables sont branchés en série.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
On utilise la sortie Q barre du monostable 1 pour déclencher le monostable 2 via son entrée CLK. La sortie Q barre du monostable 1
produit une impulsion négative, et l'entrée CLK du monostable 2 est active sur un front montant, ce qui permet de se retrouver avec la
même configuration de fonctionnement que celle qui a conduit au résultat affiché sur le graphe be précédent. Afin de mieux coordonner
les évenements qui ont lieu dans ce circuit, un point de mesure TP1 a été ajouté (TP = Test Point, point test). Voici ci-après le graphe ca.
qui dévoile le chronogramme de fonctionnement d.
Graphe ca
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Déclenchement du monostable 1 sur le front montant d'une impulsion positive : l'impulsion de sortie a lieu immédiatement. La sortie Q
barre du monostable 1 (TP1) passe donc aussitôt à l'état bas. Comme l'entrée CLK du monostable 2 (TP1 aussi) est uniquement sensible
aux fronts montant, il faut attendre que le monostable 1 repasse dans son état de repos, c'est à dire que la sortie Q barre repasse à l'état
haut, pour que le monostable 2 soit déclenché. A cet instant, une impulsion est produite par le monostable 2.
9
Voilà, vous venez de voir comment peut être constituée une alarme simple : le monostable 1, dont l'impulsion de sortie est calibrée à 10
secondes, permet de rentrer chez soi en laissant 10 secondes pour entrer un code, avant déclenchement de la sirène. Si au bout des 10
secondes le monostable 2 n'est pas inhibé, la fin de l'impulsion du monostable 1 déclenche le monostable 2, qui lui-même commande
une sirène pendant un temps égal à la durée de son impulsion de sortie. Une application pratique de ce double monostable cascadé est
proposée à la page Alarme 004. Bien entendu, ce n'est qu'une application parmi d'autres.
Détection de présence ou d'absence de signal périodique
Jusqu'à maintenant, nous n'avons parlé que d'impulsions de déclenchement uniques et isolées. Nous allons maintenant observer ce qui
se passe quand plusieurs impulsions de déclenchement se succèdent. C'est ici que prend toute sa valeur la notion de redéclenchement.
Mais là encore, quelques graphes valent mieux que des dizaines de lettres de l'alphabet. Ceux qui suivent émanent du circuit de base vu
au tout début du cours :
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Dans tous les exemples qui suivent, la durée de l'impulsion de déclenchement est de 50 ms, et la durée de l'impulsion de sortie du
monostable est de 400 ms. Seule la durée qui sépare les impulsions de déclenchement n'est pas toujours la même.
Graphe da
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Monostable non redéclenchable, avec plusieurs impulsions de déclenchement qui se suivent. Le temps qui sépare entre elles deux
impulsions de déclenchement, est supérieur à la durée de l'impulsion de sortie. La sortie du monostable est activée pendant une durée
qui correspond à sa durée d'impulsion nominale.
Fonctionnement identique à celui vu précédemment.
Graphe db
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Monostable non redéclenchable, avec plusieurs impulsions de déclenchement qui se suivent. Le temps qui sépare entre elles deux
impulsions de déclenchement, est inférieur à la durée de l'impulsion de sortie, une nouvelle impulsion de déclenchement survient alors
que le monostable est toujours dans son état instable. Là encore, la durée de l'impulsion de sortie correspond à la durée d'impulsion
nominale.
Graphe dc
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Monostable redéclenchable, avec plusieurs impulsions de déclenchement qui se suivent. Le temps qui sépare entre elles deux impulsions
de déclenchement, est supérieur à la durée de l'impulsion de sortie. Pas de différence là non plus, la sortie du monostable est activée
pendant une durée qui correspond à sa durée d'impulsion nominale.
10
Graphe dd
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Monostable redéclenchable, avec plusieurs impulsions de déclenchement qui se suivent. Le temps qui sépare entre elles deux impulsions
de déclenchement, est inférieur à la durée de l'impulsion de sortie. C'est ici que les choses changent. Le monostable est redéclenchée
avant qu'il ne retourne à son état de repos :
tout repart à zéro, sans tenir compte du temps déjà écoulé.
Cas du graphe dd : La durée de l'impulsion de sortie est rallongée à chaque nouvelle impulsion de déclenchement, et comme cela se
reproduit à intervalles réguliers, le monostabe ne retourne jamais à son état de repos. Il reste continuellement dans son état instable.
Nous avons vu que la durée de l'impulsion de déclenchement n'était pas très critique pour un déclenchement isolé, comme c'est le cas
par exemple avec une commande de minuterie d'une cage d'escalier. Nous voyons maintenant que cette durée
peut être critique si les impulsions de déclenchement sont rapprochées et que l'on a affaire à un monostable redéclenchable. Deuxième
point à retenir, donc. Un peu perturbant, tout ça, non ? Toujours est-il que nous sommes ici en présence d'un excellent système de
détection de présence ou d'absence d'un signal périodique.
Cas d'utilisation 1 - Utilisez un capteur optique ou magnétique placé vers un élément en rotation, qui génère une impulsion à chaque
tour de l'élément en question, pour déclencher le monostable. Utilisez la sortie Q, qui reste à l'état haut tant que le monostable est
redéclenché, et vous obtenez alors un système qui génère une information positive en présence de rotation. Utilisez maintenant la sortie
Q barre, qui reste à l'état bas tant que le monostable est redéclenché, et vous obtenez alors un système qui génère une information
positive en absence de rotation.
Cas d'utilisation 2 - Imaginez maintenant que les impulsions sont fournies par un logiciel, tant que ce dernier "tourne" correctement. En
cas de plantage, les impulsions ne sont plus produites, et le monostable effectue un reset "hard", dont le fonctionnement ne peut pas être
perturbé par le plantage logiciel.
Bien entendu, il ne s'agit là que d'applications entre autres.
Exemples pratiques
Voici maintenant quelques exemples de réalisations pratiques de monostables
:
▪ avec des circuits intégrés spécialisés pour cet usage, tels les fameux CD4538(CMOS) et SN74121 (TTL),
▪ avec des portes logiques (portes ET, OU, etc),
▪ avec un NE555, circuit intégré "timer" très répendu et multi-usages,
▪ avec des diodes et/ou des transistors (avec des diodes Tunnel, possibilité d'avoir des impulsions de sortie très courtes).
Utilisation d'un CD4538 (ou CD4528)
Le CD4538 (ou CD4528) comporte dans un même boitier de 16 pattes, deux monostables que l'on peut utiliser de façon totalement
indépendante. Dans l'exemple qui suit, le premier monostable U1:A est déclenchable par le front montant d'une impulsion
de déclenchement, alors que le second monostable est déclenchable par un front descendant. La durée de l'impulsion de sortie est
définie par la valeur des composants R et C (R1 / C1 et R2 / C2), selon la formule T = RC (R en ohms et C en farads). Par
exemple, si R = 1 Mohms et C = 1 uF, durée impulsion de sortie = 1 seconde.
11
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Utilisation de portes logiques
Des portes logiques ET (AND), OU (OR), NON-OU (NOR), peuvent être mises à contribution pour réaliser des monostables. Selon le type
de portes utilisées, le câblage peut légèrement différer. Dans les circuits suivants, la durée de l'impulsion de sortie est définie par la
valeur des composants R et C (R1 / C1), selon la formule T = 0,5 x RC (R
en ohms et C en farads). Par exemple, si R = 1 Mohms et C = 1 uF, durée impulsion de sortie = 0,5 seconde.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Les schémas suivants ne mettent en oeuvre qu'une seule porte logique. Pour un fonctionnement correct, R1 doit être faible devant R2, et
R1 doit être supérieure à 100 kO. Dans ces conditions, la durée de l'impulsion de sortie est définie par la valeur des composants R et C
(R1 / C1), selon la formule T = RC / 1.5 (R en ohms et C en farads).
Par exemple, si R = 1 MO et C = 1 uF, durée impulsion de sortie = 0,75 seconde. En pratique, la formule peut aussi être T = 0,5 x RC, si
la valeur donnée à R2 est de 10 kO (rapport R1/R2 plus faible).
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
12
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Utilisation du NE555
Le NE555 est un exemple de réussite à lui tout seul. Il s'agit d'un circuit intégré qui permet un tas de choses, en tout cas dans le domaine
du temps. Le schéma qui suit l'utilise en tant que monostable : sur une impulsion de déclenchement négative, il délivre
une impulsion de sortie positive. Pour donner au schéma un côté plus "pratique" et un peu plus attrayant, nous avons ajouté un bouton
poussoir pour produire l'impulsion de déclenchement, et une LED pour visualiser l'état de la sortie Out.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Si l'on souhaite déclencher le NE555 avec une impulsion positive, on peut le faire précéder par un transistor monté en inverseur logique,
comme le montre le schéma suivant.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
13
On peut aussi déclencher le NE555 avec les doigts, et non plus avec un bouton poussoir ou une impulsion électrique :
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Un câblage différent du NE555 est possible
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Dans ce montage, le NE555 est utilisé en simple comparateur et la sortie est active tant que la tension aux bornes de C1 est inférieure
aux deux tiers de l'alimentation (soit un seuil de 6 V pour une alimentation générale de 9 V). Le bouton poussoir SW1/Start,
lorsqu'il est enfoncé, court-circuite le condensateur C1 et la temporisation démarre dès cet instant. Notez que la charge du condensateur
ne peut pas s'amorcer tant que SW1 est enfoncé. La durée totale de temporisation (d'activation de la sortie) est égale à la somme de la
durée nécessaire à la charge du condensateur C1 pour atteindre 2/3 de Valim et de la durée d'appui sur SW1. Avec les valeurs du
schéma, on obtient une temporisation de durée comprise entre une seconde et deux minutes environ (durée enfoncement SW1 non
comprise), selon la position du curseur du potentiomètre RV1.
Le test doit se faire sans l'extension secteur, avec pour seul élément de contrôle la LED D1. L'extension secteur est totalement facultative
et constitue un exemple simple de commande d'une charge résistive au travers d'un triac, dont la gâchette G (broche de commande) est
reliée à la sortie (broche 3) du NE555. Attention si vous réalisez ce montage avec le triac car une des broches du secteur (celle marquée
Neutre sur le schéma) se trouve reliée à la masse (le montage fonctionne aussi si les fils Neutre et Phase sont inversés). Et comme vous
le savez, le secteur n'est pas une pile de 1,5 V.
L'avantage de ce montage est que le NE555 est capable d'injecter un courant suffisant (ici environ 50 mA) dans le triac, ce qui assure un
déclenchement plus sûr même avec des triacs "peu sensibles". Le montage qui précède produit une "impulsion" positive, c'est à dire que
la sortie est active pendant la durée de la temporisation. Avec le même NE555, il est possible de travailler à l'envers, c'est à dire avec la
sortie qui s'active au terme de la temporisation. C'est ce que montre le schéma suivant, où on se contente
finalement d'intervertir condensateur et résistance de temporisation.
14
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
avec ce schéma à NE555, la sortie reste activée après temporisation, alors qu'avec deux monostables CD4538, on dispose d'une
temporisation active après une temporisation d'attente. Comme quoi il y a toujours de la place pour tout le monde. A quoi sert la diode D2
? A décharger rapidement le condensateur quand le montage est mis hors tension, elle est facultative. Ce montage s'active
automatiquement à la mise sous tension, le poussoir SW1 n'est là que pour relancer la machine en cas de besoin. Ce type de montage
peut donc servir à mettre en route un équipement au bout d'un certain temps après sa mise sous tension (la LED D1 et sa résistance
série peuvent être remplacées par un relais avec diode de roue libre câblée en parallèle dessus et en inverse)
Utilisation de transistors ?
Il est vrai qu'un circuit intégré de type CD4528 ou CD4538, une résistance et un condensateur suffisent pour réaliser un monostable qui
peut être déclenché au choix sur un front montant ou sur un front descendant.
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
Ce circuit permet de produire une impulsion positive sur la sortie Out, déclenchée par une impulsion positive amenée sur l'entrée In. La
durée de l'impulsion de sortie dépend de la valeur du condensateur C2 et de celle de la résistance R7. Les valeurs données ici
aux composants permettent de définir une durée d'impulsion de 10 ms par paquet de 100 nF pour C2. Un condensateur de 220 nF
amènera donc une durée d'impulsion voisine de 20 ms, et avec un condensateur de 1 uF on obtiendra une durée voisine de la
seconde. Bien entendu ces valeurs sont théoriques et vous pourrez observer de petites différences avec votre maquette, l'important est
de retenir l'ordre de grandeur
Étude détaillée de l’astable
15
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
À l’intérieur du 555, trois résistances identiques R1, R2 et R3 divisent le voltage d'alimentation en 3 parts égales.
Si on alimente le circuit avec une pile de 9 volts, chacune des résistances provoquera une chute de tension de 3 volts.
Le but de diviser la tension d'alimentation en 3 parties est de fournir aux comparateurs CA et CB, deux voltages de référence qui seront
égaux aux 1/3 et au 2/3 du voltage d'alimentation.
Chacun des 2 comparateurs a une patte connectée sur un point de référence, soit 1/3 ou 2/3 de l'alimentation.
16
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
L'autre patte de chaque comparateur, soit les broches de connexion 2 et 6, sont reliées ensemble et connectées juste au sommet
du condensateur externe C1. Le voltage sur le condensateur est variable alors que les tensions de référence sont fixes.
----------------------------------------------------------------Le comparateur CA agit uniquement si le voltage sur C1 descend sous le seuil de 1/3 de la tension d'alimentation.
Quand cela se produit il envoie un pulse à la bascule pour qu'elle fasse un Reset (Remise à zéro) sur sa sortie.
Le transistor Q1 relié à la sortie de la bascule passera alors en mode bloqué arrêtant le passage du courant.
Le condensateur externe C1 peut alors se charger au travers des résistances externes RA et RB.
----------------------------------------------------------------Le comparateur CB agit uniquement si le voltage sur C1 dépasse le seuil de 2/3 de la tension d'alimentation.
Quand cela se produit il envoie un pulse à la bascule pour qu'elle fasse un Set (Remise à 1) sur sa sortie.
Le transistor Q1 relié à la sortie de la bascule passera alors en mode saturé, permettant le passage du courant.
Le condensateur externe C1 est alors court-circuité et se décharge au travers de la résistance externe RB.
Le courant part de la masse et va à la borne négative du condensateur.
Mais le courant entre aussi par la broche 1 du 555, passe dans le transistor Q1, puis dans la résistance externe R2 pour atteindre l'autre
borne du condensateur C1.
Les deux bornes de C1 étant au même potentiel électrique, C1 se décharge au travers de la résistance externe RB.
Tant que le circuit 555 est sous tension, le cycle charge décharge du condensateur se répète sans fin.
On dit que le circuit oscille, que le circuit est astable, il n'a pas d'état stable, il oscille continuellement.
L'étage de sortie se compose de plusieurs transistors permettant au 555 de fournir ou d'absorber jusqu'à 200 milliampères sur sa
sortie, la broche 3 pour faire clignoter une del ou produire tout autre travail utile.
Pour plus de courant, il faut utiliser sur la sortie, un transistor comme le 2N2222, capable de manipuler jusqu'à 800 milliampères.
17
La sortie (broche 3) est à un niveau logique haut quand C1 se charge et à un niveau logique bas quand C1 se décharge.
Autrement dit, sur la broche 3 on retrouve une onde carrée.
Alimenter avec une pile de 9 volts, on aura 9 volts, 0 volt, 9 volts, 0 volt de façon répétitive tant que le circuit est sous tension.
La durée de temps à un niveau logique haut puis à un niveau logique bas est déterminée par les valeurs des résistances externes RA et
RB et bien sûr par la valeur du condensateur externe C1.
Pour la durée de temps au niveau logique haut la formule est T1 =0.693 X (RA + RB) X C1.
Pour la durée de temps au niveau logique bas la formule est T2 =0.693 X RB X C1.
La période est égale à P = T1 + T2. La période est la durée de temps d'un cycle (un niveau logique haut + un niveau logique bas).
La fréquence est égale à F = 1/P ou une autre formule est F = 1.44/((RA+ 2RB) X C1).
La fréquence est le nombre de cycle par seconde (niveau logique haut +niveau logique bas par seconde).
Dans les formules RA et RB sont en ohms. Ainsi pour une résistances de 10 kiloohms, il faut mettre 10000 dans les formules.
Pour C1, son unité est le farad. Ainsi pour un condensateur de 10 uF, il faut mettre 0.000010 ou 0.00001 dans les formules.
Étude détaillée en monostable
QuickTime™ et un
décompresseur
sont requis pour visionner cette image.
18
QuickTime™ et un
décompresseur
sont requis pour visionner cette i mage.
Spécifications de ADCs
La spécification importante de l’ADC est la résolution. Ceci indique la précision de mesure des signaux d'entrée analogiques. Les ADC
communs sont sur 8 bits, 10 bits et 12 bits. Par exemple, si la tension de référence de l'ADC est de 0 à 5V , un ADC 8 bits mesurera
avec précision jusqu'à 5/256 v = 19mV env. Alors que l'ADC 10 bits aura une précision de 5/1024 = 4.8mV env. Ainsi, vous pouvez voir
que l'ADC 8 bits ne peut pas faire la différence entre 1mV et 18mV.
D'autres spécifications comprennent (sans s'y limiter) le taux d'échantillonnage, ce qui signifie à quelle vitesse l'ADC peut prendre des
lectures. Microchip affirme que l'ADC peut aller aussi haut que 100K échantillons par seconde.
ADC Terminologie
Référence Tension: La tension de référence spécifie la plage minimale et maximale de tension d'entrée analogique. Dans les PIC il y a
deux tension de référence, le Vref et l'autre est Vréf +. Vref indique la tension d'entrée minimale de l'entrée analogique et Vref + indique
la valeur maximale. Par exemple, si le signal d'entrée Vref est appliqué sur le canal d'entrée analogique, alors le résultat de la conversion
sera de 0 et si la tension égale à Vref + est appliqué sur le canal d'entrée, le résultat sera 1023 (valeur max pour 10bit ADC).
L’ADC ou le convertisseur analogique / numérique cas du PIC18F4520
Les broches Vref + et Vref sont disponibles sur PIN5 et PIN4 de la puce PIC18F4520. Donc, vous pouvez connecter la tension de
référence . Pour une conception simple, le Vref est au GND et Vref + est au Vcc. C’est une configuration commune que l'ADC peut
configurer pour utiliser ces références en interne.
ADC Canaux:
Le module ADC est connecté à plusieurs canaux via un multiplexeur. Le multiplexeur peut connecter l'entrée de l'ADC à l'un des canaux
disponibles. Cela vous permet de connecter plusieurs signaux analogiques au CPU (disons 3 capteurs de température). Pour le
PIC18F4520 il existe 13 canaux d'entrée analogiques, ils sont nommés AN0, AN1 etc. Vous pouvez jeter un oeil à la configuration des
broches dans la fiche des PIC18F4520 pour localiser leur position.
Temps d'acquisition:
Lorsqu'un canal spécifique est sélectionnée, la tension de ce canal d'entrée est stockée dans un condensateur de maintien interne. Il faut
un certain temps au condensateur pour se charger complètement et de devenir égal à la tension appliquée. Ce temps est appelé temps
d'acquisition. L'ADC du PIC18F4520 fournit un temps d'acquisition programmable, de sorte que vous pouvez configurer le temps
d'acquisition. Une fois que le temps d'acquisition du canal d'entrée est déconnecté de la source la conversion commence. Le temps
d'acquisition dépend de plusieurs facteurs comme l'impédance de source, Vdd du système et de la température. Vous pouvez vous
référer à la page 227 et 228 dans la fiche technique pour plus de détails sur son calcul. Une valeur sûre est 2.45uS, donc le temps
19
d'acquisition doit être défini sur une plus grande valeur..
ADC Clock:
L’ ADC Nécessite une source d'horloge pour faire sa conversion, cela est appelé ADC Clock. La période de temps de l'horloge de l'ADC
est appelée TAD. Il est également le temps nécessaire pour générer 1 bit de conversion. L'ADC nécessite 11 TAD pour faire une
conversion de 10 bits. Elle peut être dérivée de l'horloge du processeur (appelé TOSC) en la divisant par un facteur de division
appropriée. Il y a sept options possibles.
2 x TOSC
4 x TOSC
8 x TOSC
16 x TOSC
32 x TOSC
64 x TOSC
RC interne
Pour Corriger D Conversion A /, l'horloge de conversion A / D (TAD) doit être aussi courte que possible, mais plus grande que le TAD
minimum. Voir le tableau 26-25 dans PIC18F4520 Fiche (ou table 28-29 dans PIC18F4550 / PIC18F2550 fiche technique). Il est 0.7uS
pour le dispositif PIC18FXXXX et 1.4uS pour le dispositif PIC18LFXXXX.
Nous utilisons le 20MHz dans notre carte de développement PIC et nous avons donc mis prédiviseur de 32 TOSC.
Notre = 20MHz FOSC
Par conséquent, notre FOSC = 1 / 20MHz
= 50ns
32 tosc = 32 x 50 nS
= 1600nS
= 1.6uS
Vous pouvez calculer la valeur pour le facteur de division en utilisant l'exemple ci-dessus dans le cas où vous utilisez un cristal d'autre
fréquence. Nous pouvons calculer le facteur de division pour le temps d'acquisition. Le temps d'acquisition peut être spécifiée en termes
de TAD. Il peut être réglé sur l'une des valeurs suivantes.
20 x TAD
16 x TAD
12 x TAD
8 x TAD
6 x TAD
4 x TAD
2 x TAD
0 x TAD
Comme nous l'avons vu au paragraphe ci-dessus que le temps d'acquisition est sûre 2.45uS, donc nous choisissons 2 x TAD que le
temps d'acquisition.
TACQ = 2 x TAD
= 2 x 1.6uS (TAD Remplacement = 1.6uS)
= 3.2uS
Programmation ADC dans HI-TECH C pour MPLAB
ADC se connecte au CPU PIC par 3 registres de contrôle et 2 registres de données. Les registres de contrôle sont utilisés pour
configurer et donner des commandes à l'ADC. Ils fournissent également l'état de l'ADC. Les deux registres de données contiennent les
10 bits de données converties. Étant donné que chaque registre PIC18 est de 8 bits par conséquent 2 registres sont tenus de conserver
les données de 10 bits.
Les trois registres de contrôle sont: ADCON0 - Utilisé pour sélectionner le canal d'entrée analogique, démarrer la conversion, vérifier si la conversion est effectuée et pour
activer / désactiver le module. (Nous utilisons cela dans ADCRead () fonction.)
ADCON1 - Utilisé pour sélectionner la référence de tension, et pour configurer des ports comme analogique du numérique. (Nous
laissons ces valeurs par défaut)
ADCON2 - Utilisé pour sélectionner le format de données de l'ADC, Set temps d'acquisition, la configuration ADC d'horloge (de
configuration dans ADCInit () fonction)
D'abord, nous configurons l'ADC à nos besoins dans la fonction ADCInit ().
20
// Fonction pour initialiser le module ADC
ADCInit void ()
{
// Nous utilisons la valeur par défaut pour +/- Vref
// VCFG0 = 0, VCFG1 = 0
// Cela signifie + Vref = Vdd (5v) et -Vref = GEN
// Configuration Port
// Nous utilisons également la valeur par défaut ici aussi
// Tous les canaux anx sont Analog
/*
ADCON2
* ADC Résultat justifié à droite.
* Temps d'acquisition = 2TAD
* Horloge de conversion = 32 Tosc
*/
ADCON2 = 0b10001010;
}
Vous pouvez voir que nous ne mettons en place la configuration ADCON2 register.We l'ADC comme suit
format Résultat d'ADC droit Justified (expliqué ci).
Le temps d'acquisition = 2TAD (calculé ci-dessus)
Horloge de conversion en 32 TOSC (calculé ci-dessus)
Nous laissons également ADCON1 aux valeurs par défaut, ce qui implique ce qui suit
+ VREF est 5v (Notre Vcc)
-VREF Est GND
Tous les canaux anx sont analogiques. Si vous avez besoin d'eux pour faire E / S numériques configuration alors en conséquence.
Maintenant, nous avons notre configuration du module ADC, chaque fois que vous voulez faire la conversion ADC dans un canal, il suffit
d'appeler ADCRead (). Par exemple, pour faire la conversion ADC sur le canal 0 et stocker le résultat dans la variable val appeler la
fonction de la manière suivante.
val = ADCRead (0);
C'est tout ! la valeur analogique présente sur AN0 sera convertie en une valeur numérique et stockée dans la variable val .
Comment ADCRead () fonctionne ?
// Fonction pour lire le canal ADC donnée (0-13)
unsigned int ADCRead (unsigned char ch)
{
if (ch> 13) return 0; // Invalid Channel
ADCON0 = 0x00;
ADCON0 = (ch << 2); // Sélection ADC canal
ADON = 1; // Passer sur le module adc
Godone = 1; // Démarrer la conversion
tandis que (Godone); // Attendez que la conversion pour terminer
ADON = 0; // Désactiver adc
retour ADRES;
}
21
La première ligne vérifie si le canal d'entrée fournie par l'utilisateur est valide ou non. Ensuite, nous sélectionnons le canal ADC. Après
nous passons sur le module en réglant ADON bit. Ensuite, la conversion est démarrée en réglant le bit Godone. Dès que le bit Godone
est mis à 1 le module démarre le processus de conversion. Tant que le module est occupé le bit Godone est élevé, et lorsque la
conversion est terminée, il est effacé par le module. Donc, nous attendons dans la boucle tant que Godone est élevé. Rappelez-vous
que la boucle while est vide (un point virgule juste après), aussi longtemps que Godone est élevé, le CPU ne fera rien. Dès Godone est
effacé nous passons au module en écrivant 0 au bit ADON. Enfin, le résultat de la conversion est renvoyé, le registre ADRES détient la
valeur convertie.
programme de démonstration pour tester PIC code ADC
Nous allons écrire un programme très simple qui démontrera l'utilisation des ADC. Le programme va lire ADC canal 0 (AN0 PIN) et
afficher sa valeur sur l'écran LCD.
Le programme est destiné à être compilé en utilisant le HI-TECH C pour PIC18 utilisant le MPLAB IDE.
/ ************************************************* *******************
ANALOGIQUE DIGITAL CONVERTOR INTERFACE PROGRAMME D'ESSAI
-------------------------------------------------- ------Programme simple : se connecter avec l'ADC interne du PIC MCU.
Le programme lit et affiche la valeur d'entrée analogique à AN0.
Nécessite la bibliothèque PIC18 lcd.
MCU: PIC18FXXXX série de Microchip.
Compiler: HI-TECH C Compiler pour PIC18 MCU (http://www.htsoft.com/)
************************************************** ****************** /
#include <htc.h>
#include "lcd.c"
// Paramètres de puce
__CONFIG (1,0x0200);
__CONFIG (2,0X1E1F);
__CONFIG (3,0X8100);
__CONFIG (4,0X00C1);
__CONFIG (5,0XC00F);
// Simple Routine Retard
Wait void (unsigned de retard int)
{
pour (; retard; delay--)
__delay_us (100);
}
// Fonction pour initialiser le module ADC
ADCInit void ()
{
// Nous utilisons la valeur par défaut pour +/- Vref
// VCFG0 = 0, VCFG1 = 0
// Cela signifie + Vref = Vdd (5v) et -Vref = GEN
// Configuration Port
// Nous utilisons également la valeur par défaut ici aussi
// Tous les canaux anx sont Analog
/*
ADCON2
* ADC Résultat justifié à droite.
* Temps d'acquisition = 2TAD
* Horloge de conversion = 32 Tosc
*/
ADCON2 = 0b10001010;
}
// Fonction pour lire le canal ADC donnée (0-13)
unsigned int ADCRead (unsigned char ch)
22
{
if (ch> 13) return 0; // Invalid Channel
ADCON0 = 0x00;
ADCON0 = (ch << 2); // Sélection ADC canal
ADON = 1; // Passer sur le module adc
Godone = 1; // Démarrer la conversion
tandis que (Godone); // Attendez que la conversion pour terminer
ADON = 0; // Désactiver adc
retour ADRES;
}
void main ()
{
// Laissez le module LCD démarrage
Attendre (100);
// Initialisation du module LCD
LCDInit (LS_BLINK);
// Initialisation du module ADC
ADCInit ();
// Effacer le module
LCDClear ();
// Ecrire une chaîne à courant pos du curseur
LCDWriteString ( "ADC Test");
tandis que (1)
{
int val unsigned; // ADC Valeur
val = ADCRead (0); // Lire canal 0
LCDWriteIntXY (0,1, val, 4);
Attendre (1000);
}
}
Le dspic 30F3010 comporte un seul ADC et 4 échantillonneurs bloqueurs (S/H). Ces derniers peuvent être lancés
simultanément ou successivement.
Auparavant, l'ADC doit être configuré :
•
configurées en AN à l'aide du registre ADPCFG.
•
•
bit
2 ASAM), la manières dont les données sont sortis (ADCON1 bit 9-8 FORM) la source de lancement de l'ADC
(ADCON1 bit 7-5 SSRC).
•
-8 CHPS), tous les combiens de séquence
échantillonnage/conversion, une interruption ADC sera enclenchée (ADCON2 bit 5-2 SMPI), par défaut à
chaque fois.
•
•
•
1;
Si on spécifie une interruption, on doit aussi configurer le _ADIF, _ADIE, éventullement la priorité, et ajouter la
routine de service de l'interruption (ISR) spécifique. Elle doit lire les buffers de l'ADC.
Exemple de lecture de 2 buffers 0 et 1 :
void __attribute__((interrupt, auto_psv)) _ADCInterrupt () {
23
InfoLED=1;
_ADIF = 0;
a = ADCBUF0<<2; // 10 bits * 4 pour avoir 4096, Q12 : 4.12 pu b = ADCBUF1<<2; InfoLED=0; }
24
Téléchargement