Question

J'ai ce que je souhaite est une simple question concernant les microcontrôleurs Atmel AVR. Donc, je veux utiliser le comparateur analogique ATTiny85 pour déterminer si un signal est au-dessus ou au-dessous d'un seuil. Ce signal est normalement « flottant » et tiré vers le sol lorsque « actif » (à savoir qu'il est un actif bas - signal de collecteur ouvert). Si je l'activer pullup sur la broche d'entrée (qui est aussi l'entrée du comparateur) en faisant:

DDRB  = 0x00; // DDRB.1  = 0 = input 
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled

Si j'utilise le comparateur analogique et sélectionnez PORTB.1 comme AIN1 sera le pullup interne s'appliquer à mon signal d'entrée? J'espère que quelqu'un a une expérience personnelle de vérifier ce comportement. Espérons que cette question ne soit pas trop « orientée matériel » pour pile débordement. Merci!

EDIT En réponse à certains des commentaires ci-dessous à l'effet de « pourquoi ne pas traiter digitially », c'est parce que mon « signal » est généré par un capteur (à savoir un capteur IR optique). Je ne peux pas être assuré qu'il va tirer vers le bas « assez dur » pour être interprétés comme de zéro numérique, donc je vais utiliser la référence interne de 2,56V comme mon seuil de commutation. Je suis juste essayer de ramasser le « événement IR », donc cela semblait me la façon la plus simple.

En outre, en utilisant le comparateur analogique, je peux détecter l'événement « asynchrone » en utilisant un rapport de recherche internationale. Attribuées certaines des broches peut invoquer une interruption sur un bord numérique, mais celui ne veut pas compter sur la réponse à descendre sous V_IL.

Était-ce utile?

La solution

De la fiche figure 10-5 vous pouvez voir que l'entrée à l'étage analogique est affectée par le tirage vers le haut.

Ainsi, vous pouvez utiliser le pull-up interne avec le comparateur. Comme l'a mentionné la fiche technique, vous pouvez désactiver l'étage d'entrée numérique de ce port pour réduire la consommation d'énergie -. Bien sûr que si vous ne l'utilisez pas pour l'entrée numérique

Note: broches flottantes peuvent causer d'énormes consommation de courant pour l'étage d'entrée numérique. Essayez de les éviter.

Autres conseils

Je ne peux pas dire pour un fait que cela fonctionne (je ne l'ai jamais fait le cas que vous décrivez), mais d'une manière électronique votre raisonnement est son. Lorsque l'interrupteur est ouvert, AIN1 verra CCV par le pullup interne, et lorsque l'interrupteur est fermé, ils voient tous deux 0V.

VCC
|
100k(?)
|
AIN1
|
 /
|
GND

Sans réellement lire la fiche technique pour ce processeur, il y a une chance que vous ne serez pas en mesure d'utiliser un pull-up interne sur une broche configurée pour l'entrée analogique; dans ce cas, on peut être capable d'utiliser une autre broche sur la puce, configuré comme une entrée numérique, pour l'excursion haute:

VCC
|
100k(?)
|
Other---AIN1
        |
        /
        |
        GND

Mais si la tension sur AIN1 est constamment dans la « logique ni haut ni logique bas » gamme, qui pourrait jeter votre consommation de courant assez élevé.

Normalement, vous utilisez l'entrée numérique avec le pull-up, puisque vous semblez avoir un signal d'entrée numérique.

Y at-il une raison d'utiliser l'entrée analogique?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top