Envoyé par
Artemus24
Dans le pull-down pull-up, la gestion des rebonds se fait au chargement du condensateur.
Le chargement est lent et le déchargement est rapide.
Il y a bien lissage du frond ascendant (passe du 0 au 1).
Comme le déchargement est plus rapide que le chargement, le lissage a tendance à être tiré vers le bas.
Tandis que dans le pull-up pull-down, cela se fait au déchargement du condensateur.
Le chargement est rapide, et le déchargement est lent.
Il y a bien lissage du frond descendant (passe du 1 au 0).
Comme le chargement est plus rapide que le déchargement, le lissage a tendance à être tiré vers le haut.
Tout ok !
Envoyé par
Artemus24
A bien comprendre, ton pull-down est l'inverse du pull-up dans son fonctionnement.
Oui c'est ça.
Envoyé par
Artemus24
a) A bien comprendre, le schéma pull-up est moins bon que celui du pull-down, en se basant sur le critère vitesse chargement/déchargement.
Dois-je comprendre qu'il faut toujours privilégier une déchargement plus rapide qu'un chargement pour avoir un bon fonctionnement du condensateur ?
Peux-tu donner ton opinion sur ta préférence et surtout pourquoi ?
Ce qu'il faut faire c'est privilégier ;
- une charge lente et une décharge rapide et complète (jusque 0V) pour un montage pull-up.
- une décharge lente et une charge rapide et compète (jusque 5V) pour un montage pull-down.
si on est trop beaucoup trop lent à la charge ou à la décharge, ce n'est pas grave mais il faudra en tenir compte, concrètement ça amène de la latence ; j'appuie sur le bouton, ça charge lennnnnteeemmmmennnt jusqu'a 5V et donc le High vu du micro va mettre un peu de temps a arriver par rapport au moment où j'ai appuyé sur le bouton. Néanmoins vu les ordres de grandeurs, pas sur qu'un humain voit une différence entre 1ms et 100ms ?
Personnellement je préfère le montage pullup pour sa consommation, "le 5V charge doucement la capa et le bouton décharge d'un coup la capa", je trouve ça mieux que "le 5V charge d'un coup la capa (appel de courant sur le +5V) et le bouton décharge lentement la capa" et aussi, mais dans une moindre mesure, car l'état de la mise sous tension est un peu mieux défini. Le condensateur se charge. C'est à dire qu'après quelques ms après le démarrage, on est à 5V. En électronique, la maîtrise de la mise sous tension est quelque chose de critique. Il faut veiller à ne pas avoir de glitch ou de phénomènes transitoires et furtifs (c'est la raison pour la quelle on place des résistances de rappelle ou de tirage, pour définir un état)
Exemple ci dessous, c'est ce que je fais habituellement dans mes design, je m'arrange pour que la capa de l'antirebond se soit chargée (exemple 1ms) et que seulement après le micro sorte du /RESET donc qu'il démarre (exemple 10ms). Ainsi je maîtrise la condition de démarrage.
Envoyé par
Artemus24
b) Comment évaluer la valeur du condensateur et de la résistance de protection du BP ?
Il s'agit des GPIO, et en particulier des BP, donc du 3.3Vcc.
c) il y a la constante de temps R * C qui détermine la durée du déchargement.
Comme je travaille avec un timer, chaque intervalle doit posséder un laps de temps qui doit être équivalent à combien de cette constante de temps ?
J'ai trouvé la relation suivante :
--> 1 * T = 63.2% de charge
--> 2 * T = 86.5% de charge
--> 3 * T = 95.0% de charge
--> 4 * T = 98.2% de charge
--> 5 * T = 99.3% de charge
--> 5 * T = 99.8% de charge
Que dois-je prendre comme largeur de ma période ?
Je dois laisser du temps au condensateur pour se charger.
A combien de sa charge, le condensateur est opérationnel ?
Alors ça ce n'est pas simple sans matériel car les fabricants d'interrupteur ne donnent pas les caractéristiques des rebonds, notamment car ils varient avec le vieillissement. Quand bien même tu faisais un antirebond soft (un tempo dès que tu détectes le tout premier appui du bouton) tu aurais le même problème ; combien de temps j'attends ?
Ici comme on travaille à l’échelle du temps humain, je dirai qu'une constante de temps τ (R*C) = 100ms devrait être suffisant pour compenser les rebonds.
Prenons un exemple pour exploiter ce graphique, R = 100kΩ et C = 100nF
τ = (R*C) = 10ms
Lorsqu'il se sera passé 1*τ (10ms) après le démarrage, la capa sera chargé à 63% de 5V soit 3.15V. Lorsqu'il se sera passé 2*τ (20ms) après le démarrage, la capa sera chargé à environ 85% de 5V soit 4.25V. Lorsqu'il se sera passé 3*τ (30ms) après le démarrage, la capa sera chargé à 95% de 5V soit 4.75V et ainsi de suite. Généralement on considère qu'a 5*τ la capa est entièrement chargée.
Pour influencer τ on augmente soit la capa, soit la résistance.
Si tu veux connaitre à chaque instant la tension de la capa, il faut utiliser les formules que j'ai donné en #45 Vcondensateur = 5V * (1 - e -(t / τ) ). Par exemple, quelle est la tension à l'instant 0,2 τ ?
τ = 10ms
0.2*τ = 2ms
On veut donc savoir quelle est la tension à l'instant 2ms.
Vcondensateur = 5V * (1 - e -(t / τ) )
Vcondensateur = 5V * (1 - e -(0.002 / 0.01) )
Vcondensateur = 0,906V
C'est grâce à cette formule qu'on peut savoir au bout de combien de temps le micro va voir un High ou un Low.
Envoyé par
Artemus24
Les explications sur le net ne sont pas du tout clair.
Oui je sais, tu n'es pas le seul a faire ce constat.
Je n'ai pas répondu entièrement à la question b) mais c'est volontaire car je voudrai savoir avant si tout ce que j'ai écrit paraît clair ? Mais aussi exploitable. La réponse du point b) ne va pas être simple car on ne trouve pas vraiment d'info sur les rebonds néanmoins si on part de l'autre bout du problème "l'utilisateur ne s’apercevra pas qu'il s'est passé 100ms ou 300ms après qu'il ait appuyé sur l'interrupteur" alors on arrivera a dimensionner l'antirebond.
A+
Partager