2010-04-08 19 views
5

Tengo lo que espero sea una pregunta simple relacionada con los microcontroladores Atmel AVR. Así que quiero usar el Comparador Analógico del ATTiny85 para determinar si una señal está por encima o por debajo de un umbral. Esta señal es normalmente "flotante" y tirada hacia el suelo cuando está "activa" (es decir, es una señal de colector activa de baja apertura). Si habilito el pull-up en el pin de entrada (que es también la entrada del comparador) haciendo:AVR Analog Comparator + Internal Pullup?

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

si uso el comparador analógico y seleccione PORTB.1 como AIN1 será el pull-up interno se aplicaran a mi señal de entrada ? Espero que alguien tenga experiencia personal para verificar este comportamiento. Espero que esta pregunta no esté demasiado orientada al hardware para el desbordamiento de la pila. ¡Gracias!

EDITAR En respuesta a algunas de las observaciones siguientes para el efecto de "¿por qué no tratar digitially", que se debe a mi "señal" es generada por un sensor (es decir, un sensor óptico IR). No puedo estar seguro de que se desplegará "lo suficientemente fuerte" como para ser interpretado como cero digitalmente, por lo que voy a utilizar la referencia interna de 2.56 V como mi umbral de conmutación. Solo intento recoger el "evento IR", así que esta me pareció la forma más sencilla.

Además, al usar el comparador analógico, puedo detectar el evento "asincrónicamente" usando un ISR. De acuerdo, algunos de los pines pueden invocar una interrupción en un borde digital, pero uno no quiere confiar en la respuesta para sumergir por debajo de V_IL.

Respuesta

4

A partir de la figura 10-5 del datasheet, puede ver que la entrada a la etapa analógica se ve afectada por el pull-up.

Por lo tanto, puede utilizar el pull-up interno junto con el comparador. Como se menciona en la hoja de datos, es posible que desee desactivar la etapa de entrada digital de ese puerto para reducir el consumo de energía, por supuesto, solo si no lo utiliza para la entrada digital.

Nota: Los pines flotantes pueden causar un gran consumo de corriente para la etapa de entrada digital. Intenta evitarlos.

+0

+1 para dirigirlo a la hoja de datos; siempre el primer lugar para mirar. – Clifford

+0

Sí, eso es lo que pensé, ¡gracias! – vicatcu

+0

Desafortunadamente, acepté esta respuesta antes de probarla. Resulta (a pesar de la inferencia de la hoja de datos) que el pullup * interno * debe estar desactivado para poder utilizar un pin como entrada al comparador analógico. – vicatcu

2

No puedo decir que funcione (nunca he hecho el caso que describes), pero electrónicamente tu razonamiento es sólido. Cuando el interruptor está abierto, AIN1 verá VCC a través del pullup interno, y cuando el interruptor esté cerrado, ambos verán 0V.

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

Sin llegar a la lectura de la hoja de datos para ese procesador, hay una posibilidad de que usted no será capaz de utilizar un pull-up interna en un pin configurado para la entrada analógica; en ese caso, es posible que pueda utilizar otro número de identificación en el chip, configurado como una entrada digital, para el pull-up:

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

Pero si el voltaje en AIN1 está constantemente en el "ni la lógica alto ni lógico bajo "rango, que podría arrojar su consumo actual bastante alto.

+0

A menos que haya algo más que esté sucediendo aquí, use un pin de entrada digital con un pull-up para esto, no hay ninguna razón para usar el comparador. Con un pull-up, el uso de energía de una señal de colector abierto no debería ser malo. Cuando el pin está flotando, debería estar muy cerca de 0. – Mark

+0

editó mi pregunta a la luz de esta respuesta, ¡gracias! – vicatcu

+0

@Mark editó mi pregunta a la luz de esta respuesta, ¡gracias! – vicatcu

2

Normalmente, utilizaría la entrada digital con el pull-up, ya que parece que tiene una señal de entrada digital.

¿Hay alguna razón para usar la entrada analógica?

+1

+1 para formular la pregunta obvia "¿por qué necesita una entrada analógica cuando solo hay dos estados de interés?". Me parece un candidato para una entrada digital. – Clifford

+0

editó mi pregunta a la luz de esta respuesta, ¡gracias! – vicatcu

+0

@Michael editó mi pregunta a la luz de esta respuesta, ¡gracias! – vicatcu

Cuestiones relacionadas