DETECTION DU PASSAGE A ZERO

 

Le secteur est une idéalement sinusoïde de 230 VAC d'amplitude +10% -20%. La valeur crête maximale est donc de 357 Volts.

Le secteur est pollué principalement par


Il existe donc une zone "tranquille" à plus ou moins 400 µs autour du passage à zéro. Cette zone dure 800 µs et a une récurrence de 10 ms. Le secteur a, dans cette zone, une vitesse de variation de 102 V/ms (-20, +10).
Si on veut détecter le passage à zéro très précisément (par exemple dans le cas d’un modem X10, ou d'un gradateur de précision), il faut donc la détecter de façon précise (directement sur le secteur) avec un dispositif :

Deux solutions sont possibles

Détection directe du passage à zéro

Détection simple

Le principe est d'alimenter l'entrée d'un circuit logique (trigger de Schmitt), ou la base d'un transistor, directement par la phase du secteur au travers d'une résistance.

Dans le cas d'un transistor, avec un gain Béta de 250 minimum, et un courant de collecteur de 0.5 mA maximum, il suffit d'un courant de base de  2µA pour activer le dispositif. Cette valeur correspond à une tension de 4 V avec une résistance autour de 2000 kOhms (à réaliser avec 2 résistances de 1MOhms pour respecter la tenue en tension de ces composants), et donc un instant de commutation de l'ordre de 10 µs avec une très bonne précision et répétabilité. Par contre, le courant base va suivre la progression du secteur pour aller plafonner à une valeur élevée sans autre protection qu'une résistance série. Le transistor va donc être largement saturé et il devra supporter ce type de surcharge.
En utilisant un triplet de transistor, on a un signal symétrique autour du zéro.

Dans le cas d'une entrée d'un circuit logique de type CMOS ou HCMOS, le courant consommé peut être considéré comme nul vu les vitesses faibles de variation de la tension secteur.
La résistance série est dimensionnée par le courant maximum supportable par les diodes de protection à l'entrée du circuit logique et par le passe bas auquel elle participe si on ajoute un condensateur. La valeur minimale est de plusieurs centaines de kOhms, et il faut prendre en compte la capacité parasite d'entrée (5pF) qui peut contraindre la valeur maximale.

Une telle détection n'est pas symétrique. Si le neutre secteur est au Vdd, alors la détection va monter (front montant) lors que le secteur passe le point Vdd-Vth soit -3V, 30µs avant le passage zéro. C'est parfait, sauf que le front opposé (front descendant) va aussi être à -3V, soit là 30µs après le passagage à zéro. De plus les seuils peuvent être très différents si l'entrée est un trigger de schmidt, ce qui renforce encore cette dissymétrie. Ce montage peut être utilisé avec un microcontroleur qui peut, par logiciel, compenser ces décalages.

 

 

Détection double

Cette astuce permet de centrer le pulse de détection du passage à zéro. Cela requiert 2 circuits de détection, un pour détecter en amont de l'arche positive, et l'autre pour détecter en aval. Le passage à zéro positif sera connu avec le front montant de D2, le passage à zéro suivant serra connu avec le front descendant de D1.


confere note d'application ST

Seuil montant D2 = (Vih-Vcc)*(1+R2/R1)
Seuil descendant D1= Vil*(1+R3/R4) - Vcc

 

Avec des seuils à 2.5V et (R1=R5=100k et R2=R3=220k et R4=68k), on a deux signaux dont les fronts montants et descendants sont symétriques par rapport au passage à zéro, à +/-120µs. L'impulsion résultante (avec une porte ou exclusif) fait donc 240µs, pile centrée sur le passage à zéro (confere note d'application ST). Dans le cas de seuils non symétriques, ce montage n'est pas facile à régler, la seconde version est plus simple et directe car chaque seuil est réglable indépendemment de l'autre :

 

La capacité parasite présente à l'entrée du circuit, ou bien rajoutée sciemment pour filtrer les parasites va introduire un déphasage, et donc un retard qui est égal tout simplement à la constante RC ainsi créée, avec R la résistance équivalente au point de la capacité. Ainsi une capacité de 5pF avec une résistance équivalente de 2Mohms va provoquer un retard de 10µs.

 

Le courant parasite entrant ou sortant de la broche IO n'est pas neutre, et provoque un décalage des seuils égal à Ib * R2 ou Ib * R3 ; en considérant un courant parasite de 0.5µA (spec à +/- 1µA), et R2=2MOhms, on provoque un décalage de 1V soit 10µs.

 

Le problème avec ce montage est qu'on utilise 2 entrées, avec des seuils différents, pas forcément corrélés d'ailleurs.

 

 

 

Ce genre de montage peut être amélioré si le microcontrolleur peut passer rapidement une broche de l'entrée à la sortie.

Seuil (Qoff) = Ib*R2 + Vth - Vcc
Seuil (Q=0) = Ib*R2 + Vth*(1+R2/R1) - Vcc
Seuil (Q=Vcc) = Ib*R2 + Vth*(1+R2/R1) - Vcc*(1+R2/R1)


Ainsi, on utilise qu'une seule entrée de détection D, et on modifie avec une sortie le seuil de cette entrée en passant la sortie Q à zéro ou en la laissant flottage (broche en entrée). Un tel changement doit être fait au moment où on est sûr qu'on n'attend pas de seuil, par exemple au milieu de l'arche.

On peut aussi rajouter une capacité en // sur R1, de valeur C(1+R2/R1), pour filtrer de la même façon sur les fronts montants (R2.C) et descendants (R1//R2.C').

 

 

clic to enlarge

On voit sur cet oscillogramme le comportement du comparateur lors du passage du seuil montant, avec Q en entrée. Puis 130µs après, on met Q en sortie à Zéro. L'effet est immédiat sur la tension D qui chute.

Il est donc important d'hiniber toute détection de seuil sur D pendant la transition sur Q, et même un peu après.

 

Filtrage par réseau RC

Un réseau RC peut être jugé nécessaire, pour éviter que le montage déclenche sur des parasites. Le réseau va atténuer les hautes fréquences et introduire un retard sur le 50Hz. La valeur du retard est à peu près égale à RC.

RC

Atténuation @ 100 kHz

déphasage @ 50 Hz

50 Hz  +/- 10% (2 MOhms et 1.5  nF)

1/200, -66 dB

2.5 µS +/- 150 µs

500 Hz +/- 10% (2 MOhms et 150 pF)

1/200, -46 dB

317 µs +/- 30 µs

5 kHz +/- 10% (1 MOhms et 27+5 pF parasite)

1/20, -26 dB

32 µs +/- 3 µs

50 kHz +/- 10% (630 kOhms et 5 pF parasite)

1/2.2, -6.8 dB

3.2 µs +/- 0.3 µs


La meilleure combinaison est située entre 500 Hz et 5 kHz, par exemple 1 MOhms et 100 pF provoquant 100µs de retard.

 

 


Détection du passage à zéro par opto coupleur

L'opto est alimenté au travers de 2 résistances  (pour garantir une tenue en tension supérieure à 360V) de 150 kOhms. Le courant dans la LED de l'opto coupleur atteint la valeur minimale de100 µA à 400 µs et maximale nominale de 1.2 mA.

Le LED a naturellement un seuil de l'ordre de 1.6 V, ce qui facilite l'immunité du dispositif de détection du zéro à tensions HF présentes autour du zéro.

La LED peut accepter un courant pic d'une vingtaine de mA, cela correspond à des sur tensions de l'ordre de 6 kV.

Par contre, le coefficient de transfert en courant d'un opto coupleur est un paramètre très variable et il influe directement sur l'instant de détection.

Choix de l'opto coupleur

Le courant dans la LED de l'opto coupleur varie continûment de 0 à 1.2 mA.
La fenêtre à détecter (+/-400 µs) correspond à un courant dans la LED de 100 µA.
La vitesse de variation de ce courant est faible, de l'ordre de 250 µA/s.

On a le choix entre des opto coupleurs à simple LED avec un pont redresseur externe, ou à double LED tête bêche, spécialement prévus pour ce genre d'application.
Le premier choix assure une parfaite symétrie du créneau de détection par rapport au zéro secteur. Le second est moins cher et moins encombrant mais peut amener une dissymétrie car les coefficients de transferts ne sont pas garantis égaux selon les 2 LED.


Les opto coupleurs peuvent être classés en 3 catégories

courant LED optimal (maximum du coefficient de transfert en courant CTR)

faible (0.5 mA)

moyen (1 à 2 mA)

fort (>10 mA)

vitesse

faible

moyenne

élevée

référence typique

6N139

6N138

6N135/6



Avec un microcontrôleur, c'est mieux

Il est illusoire d'imaginer disposer, à cause des dispersions importantes des opto coupleurs, d'un créneau précisément calé sur la sinusoïde secteur. L'erreur sur le positionnement du créneau pourra être de l'ordre de plusieurs centaines de µs.

Malgré tout, il faut trouver un dispositif qui permettent au micro contrôleur de connaître avec précision l'instant de début de la fenêtre de transmission.

On peut y arriver facilement si le créneau de détection de l'opto coupleur est, par design, symétrique par rapport au passage à zéro. Dans ce cas, il suffit de mesurer la largeur du créneau, de calculer la moitié de cette valeur et on a la position précise du passage à zéro même si la largeur du créneau varie fortement.
On suppose qu'il existe un timer 8 bits qui doit tourner à une vitesse inférieure à 25600 Hz pour éviter de déborder en moins de 10 ms. La valeur la plus proche est 15625 Hz (1 MHz prédivisé par 64). Le timer doit donc tourner entre 98 et 255, avec un pas toute les 64 ms.

On suppose qu'une interruption va se déclencher sur le front descendant du créneau.


ITEXT    push acc
         si mode=0 then
clr acc
loop         inc acc
             (nop) ; autant de nop pour éviter de faire déborder acc
             ; l'idéal étant une durée de boucle de 8 uS (soit 2 ms max)
             jz acc,erreur ; gestion du time out
           jnb EXT_PIN,loop
sr acc  ; acc=acc/2
             mov toffset,acc ; toffset contient le temps/8 microsecondes
             mode=1
             reti
         si mode=1
             mov acc,timer
         else
reti
erreur   reti  ; erreur de débordement acc