martes, 28 de diciembre de 2010

Cuatro canales ADC para micros sin conversor-parte 2/ 3-la pc,el joystick,el 555 y sus hijitos

Pues no recuerdo bien como fue esto, creo que amanecía en una biblioteca de cuyo nombre no quiero acordarme, cuando entre retazos de tecnología olvidada di con este diagrama del puerto de joystick de las pc XT, (perdón por lo borroso de la foto, pero tenia mucho sueño y se me nublaba la vista)


"Interesante" me dije a mi mismo (siempre llevo un espejo para estos casos), Cuatro redes R/C, conectados a simples integrados 555, configurados como multivibradores monoestables, reseteados todos con un solo pin del micro....
"no seas idiota" me dijo el espejo, no ves que es un 558? y se cerro solo, "ya ni el espejo me aguanta" pensé.
"yo tampoco" pensé, y deje de pensar por un rato...
.........................
.........................
.........................
........................


Ya volviendo a pensar, me dedique a revisar las versiones del 555, acá van tres, la primera es el clásico chip de 8 patas que todos los que hacen algo de electrónica conocen.

Veamos una comparación entre el 555 y el 556
Obviamente son dos 555 pegados, ahora el 558.
Que parece un chip de 16 patas embarazado de cuatrillizos 555.
Todo esto es para razonar que, como el análisis que voy a hacer es sobre un solo 555, podemos hacer lo mismo con uno, dos, cuatro canales y usando dos circuitos 558 con ocho canales, lo que equivale a un puerto completo de un microcontrolador.


No voy a explicar como funciona un 555 acá, nada mas el funcionamiento de este esquema, la pata RST esta conectada al positivo (5v) para habilitar la salida (QP), que tiene conectada una resistencia pull up (10k aprox) para poder detectar cuando la salida esta activa y cuando no (el 558 tiene salidas de colector abierto).
El ciclo de trabajo es como sigue, cuando se recibe un pulso positivo por la entrada TRIG, se descarga el capacitor c1 (10nf), y la salida QP pasa a estado lógico ALTO (debido a la resistencia pull up R5), C1 inmediatamente comienza a cargarse nuevamente a través de la resistencia r1 (2.2k), acá vale esta aclaración, en el diagrama no aparece, pero entre la punta "suelta" de la resistencia r1, y la alimentación (5v) va una resistencia variable o potenciometro que corresponde a uno de los ejes del joystick, la resistencia de 2.2k es una protección para limitar la corriente en el caso de que el joystick este defectuoso y cortocircuite directamente a los 5v.




Vemos entonces que el tiempo de carga del capacitor c1 va a estar determinado por la resistencia de 2.2k mas el valor de la segunda resistencia que esta ubicada físicamente dentro del joystick.
 Ahora bien, cuando la tensión en el capacitor supera 2/3 la tensión de alimentación, la salida QP pasa a estado lógico BAJO. Entonces podemos decir que el valor de la resistencia del joystick se puede relacionar directamente con el tiempo que transcurrió desde que enviamos el pulso por la entrada TRIG hasta que la salida volvió a estar en estado lógico bajo.

 Vemos que recursos del microcontrolador reemplaza este circuito:
-el comparador. (esto nos permite tener todos los canales adc que queramos sin multiplexar, recordemos que los micorcontroladores en su mayoría tienen solamente un comparador)
-la necesidad del timer (podemos usar un ciclo para monitorear cuanto tarda la salida en cambiar de estado).
 o podemos usar el timer como contador y monitorear todos los canales adc con un solo timer.

- La relación costo/beneficio o de esta idea es mayor cuantos mas canales necesitemos medir, menos recursos del micro tengamos disponibles y menos tiempo de proceso tengamos para medir las magnitudes analógicas.

-Por otro lado esta el hecho de que usar este circuito es electrónicamente equivalente a usar el puerto de joystick de la pc, los que están acostumbrados a usar esa técnica se ahorran "sorpresas" a la hora de probar un circuito que funcionaba perfectamente en la pc, pero en el microcontrolador no...

 Para terminar con el hardware les muestro el circuito usando en LM558, lo que nos da 4 canales ADC.



Este es el modulo final de lectura analógica de cuatro canales para micros que no tienen conversor adc, los pulsos de reset de los cuatro 555 (triger) están unidos para simplificar el circuito. En una aplicación con ci's discretos (compuertas CMOS o TTL) seria necesario conectar una resistencia pull up de unos 10k a la salidas (output) de los cuatro circuitos, en un microcontrolador no es necesario por tener incorporada las resistencias en el mismo chip, esto puede no ser cierto en algunos pics , revisar las hojas de datos!
El código puede implementarse por polling o interrupciones,  en varios lenguajes de programacion, pero eso lo voy a poner en la PARTE 3








No hay comentarios:

Publicar un comentario