|
|
|
|
Potenciómetros
Digitales: La consola soñada |
|
Sin dudas el polvillo y la suciedad que flotan en el ambiente son los peores
enemigos de los clásicos potenciómetros mecánicos deslizantes o rotativos. Si a
esta realidad le sumamos el paso del tiempo y su inevitable desgaste por
rozamiento en algún momento (el menos oportuno, claro) el potenciómetro
comenzará a introducir desagradables ruidos provocados por su uso y tendremos roturas irreparables
en su interior. Seguramente has oído hablar de los potenciómetros digitales; ven, aprende a usarlos y olvídate de los viejos
sistemas mecánicos. No más ruidos, no más fallas, solo música. |
|
|
Luego de haber sufrido y padecido durante muchos años la, a veces pobre,
calidad de los potenciómetros mecánicos utilizados en costosos equipos
de audio, te invitamos en este artículo a conocer el modo de aprovechar
las ventajas de los potenciómetros digitales que han llegado para
solucionar un problema insoluble hasta hace poco tiempo: su deterioro
por envejecimiento. |
|
|
Luego de haber sufrido y padecido durante muchos años la, a veces pobre,
calidad de los potenciómetros mecánicos utilizados en costosos equipos
de audio, te invitamos en este artículo a conocer el modo de aprovechar
las ventajas de los potenciómetros digitales que han llegado para
solucionar un problema insoluble hasta hace poco tiempo: su deterioro
por envejecimiento.
Catalyst Semiconductor Inc. posee entre su amplia gama de productos, una
serie de circuitos integrados concebidos para ser utilizados como
potenciómetros o como resistores variables sencillos y que pueden ser
operados mediante el práctico y eficaz bus I2C, a través de un
microcontrolador. El CAT5269 posee en su encapsulado SOIC de 24 pines,
dos potenciómetros digitalmente programables (DPPs) con su control
lógico y una memoria RAM no volátil (NVRAM) de 18 bytes. Cada
potenciómetro consiste básicamente en una serie de elementos resistivos
que poseen en sus extremos una conexión externa (RH – RL) y pueden sumar
en toda su extensión valores de 50 KOhms o 100 KOhms según el modelo
seleccionado. Los puntos de unión entre las unidades resistivas son
conectados al virtual cursor central (wiper) mediante llaves CMOS y
poseen también su correspondiente conexión al exterior (RW). |
|
|
|
|
|
Estructura interna del
CAT5269 |
|
El control de los potenciómetros se basa en la utilización apropiada de
las instrucciones que se le envían a través del bus SDA – SCL y que son
muy sencillas de interpretar. Cada instrucción es una “palabra” de 8
bits al igual que el identificador de dispositivo dentro del bus y los
valores que almacena cada registro.
Qué, cómo y cuando.
Para comenzar a “dialogar” con el circuito integrado debes llamarlo por
su nombre. Todos los que se encuentren conectados y operativos dentro
del bus deben saber a quién le estarás hablando. La forma de hacerlo es
con el primer BYTE luego de abrir la comunicación en el bus. La
condición de START que indica el fabricante es la misma utilizada en el
bus I2C y se trata del pasaje desde un estado alto a uno bajo del pin
SDA, mientras la línea SCL se encuentra en estado alto. A través de un
microcontrolador programado en Basic será tan sencillo como poner BSTART
y ya.
Una vez abierto el bus por parte del dispositivo maestro, se envía el
byte que es la dirección o nombre del dispositivo dentro del bus.
|
|
|
|
|
Tutorial de
Televisión
que ha ayudado a miles de técnicos de toda América
a aprender cada día más del oficio.
Aprendé a
reparar DVD, cambiar su pantalla de inicio, reparar su firmware y a
conocer más de ésta nueva unidad multimedia del hogar.
El
mejor sistema de radiogoniometría para radioaficionados está
a tu alcance. Constrúyelo! |
Dirección del CAT5269
dentro del bus I2C |
|
Los cuatro bits más significativos (MSB) identifican al dispositivo y
son fijos. “0101” será la indicación dentro del bus que signifique que
se estará “dialogando” con un potenciómetro digital CAT5269. Los cuatro
bits siguientes A3-A0 serán los utilizados para identificar al circuito
integrado dentro de un grupo de iguales y se definen por hardware. Dicho
en cristiano significa lo siguiente: A3, A2, A1 y A0 son pines que
poseen conexión al exterior del circuito integrado (pines 24, 11, 14 y 2
respectivamente). Colocando estos pines a VCC (positivo de la tensión de
alimentación) o a VSS (GND) le indicarás al IC que ese pin estará a un 1
o 0 lógico y ese dato será reflejado en los últimos cuatro bits de la
dirección (Slave Address Byte).
Por ejemplo, si colocas los cuatro pines a GND el byte resultaría ser
“0101000”. Los cuatro primeros son fijos y los cuatro últimos se
“programan” por hardware, es decir, los colocas tú a GND o a VCC al
diseñar la placa de circuito impreso. Si en cambio pusiéras A3 a VCC, A2
y A1 a GND y A0 a VCC el byte te quedaría “01011001”. En lenguaje de
programación BASIC para microcontroladores, sólo es necesario que
escribas BUSOUT %01011001 y se enviará al bus la dirección del IC que
estamos solicitando. Con cuatro bits puedes manejar hasta 16 circuitos
integrados conectados todos al mismo bus de dos cables, comandados por
un sencillo microcontrolador. 16 potenciómetros estéreo que no se
romperán ni harán ruido jamás.
Luego del byte de dirección (Address) viene la instrucción que le darás
al potenciómetro. Es decir, el trabajo que quieras que él haga. Las
instrucciones son nueve, se encuentran detalladas en la tabla número 3
del datasheet del producto y las cuatro primeras a destacar son las
siguientes:
* Read Wiper Control Register – Esta instrucción le indicará al IC que
leerás el valor que posee el registro de control del wiper (cursor).
* Write Wiper Control Register - Con esta le indicarás que cambiará la
posición actual del wiper del potenciómetro seleccionado
* Read Data Register – Sólo leerás el contenido de un dato dentro de los
registros
* Write Data Register – Escribirás un valor dentro de un registro
seleccionado.
Los primeros dos registros mencionados no se cargan en la NVRAM y son
volátiles, es decir, se pierden al quitar la energía al IC. Este dato es
muy importante a tener en cuenta ya que al energizar un sistema, los
datos de estos registros pueden adquirir cualquier valor, siendo esta
una situación que debe contemplarse en el firmware del microcontrolador
que operará los potenciómetros.
Al igual que con el direccionamiento la instrucción posee 8 bits y los
enviarás con otra instrucción BUSOUT. La estructura del byte se puede
desglosar entre los cuatro bits más significativos que indicarán la
operación que deseamos que el potenciómetro realice (Instruction Opcode)
y los cuatro menos significativos que apuntarán a cuál de los dos
potenciómetros te referirás en dicha instrucción.
Por último y completando la secuencia llega un tercer byte. En éste
vendrá contenido el dato respectivo a la instrucción que hayas indicado
al IC. Por ejemplo le enviarás el nuevo punto de posición del cursor del
potenciómetro R0 que se escribirá con la instrucción Write Wiper Control
Register.
Recuerda que hay dos potenciómetros individuales a manejar en un
encapsulado: R0 y R1, por lo tanto si ambos constituyen un control
conjunto de una señal de audio estéreo, las instrucciones enunciadas
hasta aquí se deberán repetir para cada potenciómetro a fin de lograr
una actuación conjunta. Si en cambio son controles individuales de
señales monoaurales, bastará con instrucciones independientes para cada
potenciómetro. Por último se cierra el bus con BSTOP, lo que equivaldría
a pasar la línea SDA de un estado bajo a uno alto, mientras la línea SCL
se encuentre en estado alto.
|
|
|
Todos potenciómetros
mecánicos, todos propensos a fallar tarde o temprano |
|
Luego existen otras cuatro instrucciones que relacionan el uso de los
datos almacenados en los registros (que habéis escrito con la cuarta
instrucción detallada antes) y cómo los mismos son enviados desde o
hacia el control del cursor central o wiper. Las instrucciones se
dividen en XFR para operar de forma individual en cada potenciómetro y
las instrucciones GANG XFR que son para actuar en ambos potenciómetros a
la vez, es decir, ideales para trabajos en audio estéreo.
Por último te encontrarás con una novena instrucción que servirá para
incrementar o decrementar el valor del registro que gobierna la posición
del cursor de a una unidad por vez. El incremento se efectiviza
colocando en estado alto (VCC) la línea SDA y el decremento colocándola
en estado bajo (GND). Recuerda que cada potenciómetro está formado por
256 resistencias conectadas en serie y que el wiper irá recorriendo, en
éste modo, una a una, mientras que en las instrucciones anteriores se
permitía el salto directo a un nuevo valor. Siempre ten en cuenta que
cualquier duda estará respondida en el datasheet que el fabricante
provee del dispositivo. Es aconsejable tenerlo siempre a mano cuando se
desarrollan aplicaciones con estos circuitos integrados.
Manos a la obra
El primer paso será diseñar un circuito impreso donde instalar y soldar
el IC de encapsulado SOIC (W), con la posibilidad de tener una
distribución de pines en forma fácilmente accesible. Es decir, que
puedas instalar la placa desarrollada cómodamente en un protoboard y
allí experimentar su desempeño con un microcontrolador.
|
|
|
Circuito impreso propuesto |
Ubicación del IC, jumpers
y capacitor de desacoplo |
|
|
Deberás tener precaución
al realizar la placa de circuito impreso de comprender que trabajarás
siempre del lado componentes. Eso te obligará a realizar los puentes con
alambre forrado para evitar cortocircuitar otras vías. Puedes ver que la
placa es muy sencilla donde se destaca al centro de la imagen el IC, a
su izquierda un capacitor de 100nF de desacoplo y en la parte superior
los cuatro jumpers, con opción de conexión a VCC o GND, para A3 – A0 que
determinarán la dirección del dispositivo dentro del bus. En la parte
inferior la distribución de los terminales está hecha de modo de separar
los dos potenciómetros a los extremos de la placa quedando al centro el
resto de las conexiones de control. |
Conexionado del módulo
impreso |
|
Monitor Cardíaco |
Si decides colocar la dirección 0000 (A3-A0) en la configuración de la
dirección, llevar el potenciómetro a uno de sus extremos quedaría de la
siguiente forma en el firmware del microcontrolador:
|
|
Mi primer
receptor: TDA7000 |
Cadena de tres bytes que
se envían mediante la instrucción BUSOUT |
|
ON-OFF de un
toque |
Aprenda a soldar SMD !
Será el sucesor del DVD? Aprenda a
conocerlo.
Con el monitor
cardíaco que te presentamos puedes controlar, escuchar y ver tu ritmo
cardíaco.
|
* Recibir datos desde el ordenador
* Abrir Bus
* Enviar Dirección del potenciómetro a manejar
* Enviar Instrucción que deseamos que dicho potenciómetro ejecute
* Cerrar Bus
* Reiniciar el ciclo
Uno de los microcontroladores que puedes emplear es el PIC 16F628A, sin
cristal, utilizando su oscilador interno de 4 Mhz. Los pines RB1 (Rx) y
RB2 (Tx) puedes reservarlos para un eventual y futuro uso del sistema
dentro de una red RS485 que pueda controlar grandes cantidades de
potenciómetros desde alguna aplicación en el ordenador. Recuerda que un
solo bus I2C puede controlar hasta 16 potenciómetros estéreo y si a eso
le agregamos la posibilidad de trabajar dentro de una red RS485, la
cantidad de potenciómetros y canales de audio disponibles se eleva a
cantidades muy difíciles de concebir en una sola consola de audio.
Para el uso del bus I2C en el programa de ejemplo se han reservado RA2
para SDA y RA3 para SCL.
La siguiente sería una forma muy sencilla de manejar los valores de los
registros de datos almacenándolos en una variable (D) al ser
recepcionados desde el ordenador (HSERIN) y provenientes de una sencilla
aplicación realizada en Visual Basic o cualquier otro lenguaje que te
permita crear la interfaz gráfica necesaria para posicionar los
potenciómetros en pantalla y actuar sobre ellos.
'******************************************************
'* Nombre: POTENCIÓMETROS DIGITALES.BAS *
'* Autor : Mario G. Sacco *
'* : Copyright (c) 2009 -NeoTeo *
'* Fecha : 02/05/2009 *
'* Versión: 1.0 *
'* Notas : EJEMPLO DE CONTROL DEL DPP CAT5269 *
'******************************************************
DEVICE = 16F628A 'DEFINO EL DISPOSITIVO A USAR
CMCON = 7 'ANULAMOS LOS COMPARADORES DEL 16F628A
ALL_DIGITAL = TRUE 'TODAS LAS I/O DIGITALES
'DEFINO EL BUS I2C PARA COMUNICAR EL PIC CON EL POTENCIÓMETRO
DECLARE SDA_PIN PORTA.2 'DECLARO LOS CUALES PINES DEL PIC VAN A SER
DECLARE SCL_PIN PORTA.3 'SDA Y SCL
'PALABRAS DE CONTROL QUE NO CAMBIAN DURANTE EL PROGRAMA, SÓLO SE
UTILIZAN
SYMBOL SOYPOTE1 %01010000 'DIRECCIÓN DEL POTENCIÓMETRO 1
SYMBOL SOYPOTE2 %01010000 'DIRECCIÓN DEL POTENCIÓMETRO 2
SYMBOL VOLUMEN1 %10100010 'INSTRUCCIÓN DE POSICIÓN AL CURSOR DEL POTE1
SYMBOL VOLUMEN2 %10100010 'INSTRUCCIÓN DE POSICIÓN AL CURSOR DEL POTE2
'DEFINO LA VARIABLE QUE SERÁ EL CURSOR CENTRAL DE LOS POTENCIÓMETROS
DIM D AS WORD 'VARIABLE DONDE SE CARGA EL DATO
'DE POSICIÓN DE LOS POTENCIÓMETROS
D = %00000000 'INICIO EL SISTEMA CON VOLUMEN A CERO (MUTE)
'DATO A CARGAR EN EL REGISTRO DEL WIPER
INICIO: 'INICIO PROGRAMA PRINCIPAL
HSERIN 500, INICIO, [DEC D] 'ESPERO RECIBIR POR LA USART LA INSTRUCCIÓN
'Y LA PONGO EN LA VARIABLE "D"
'SI NO LLEGA EN 1/2 SEGUNDO,
'SALTO Y SIGO CON EL CICLO
BSTART 'INICIO CONTACTO I2C
BUSOUT SOYPOTE1 'ME VOY A COMUNICAR CON EL POTENCIÓMETRO 1
BUSOUT VOLUMEN1 'LE INDICO QUE VOY A MOVER SU CURSOR
BUSOUT D 'ESCRIBO EN EL REGISTRO EL VALOR
'ALMACENADO EN LA VARIABLE
DELAYMS 5 'ESPERO 5 MILISEGUNDOS HASTA ENVIAR
'LA SIGUIENTE ORDEN
BUSOUT SOYPOTE2 'ME VOY A COMUNICAR CON EL POTENCIÓMETRO 2
BUSOUT VOLUMEN2 'LE INDICO QUE VOY A MOVER SU CURSOR
BUSOUT D 'ESCRIBO EN EL REGISTRO EL VALOR
'ALMACENADO EN LA VARIABLE
BSTOP 'TERMINO EL CONTACTO I2C
DELAYMS 5 'ESPERO 5 MILISEGUNDOS HASTA
'ENVIAR LA SIGUIENTE ORDEN
GOTO INICIO 'REINICIO EL CICLO Y VUELVO A LA
'ESCUCHA DEL PUERTO SERIE
END 'FIN DE PROGRAMA
Los textos seguidos de apóstrofos (‘) son comentarios para ayudarte a
comprender el significado de la línea de comando.
Importante: Si lo que encuentras
aquí te resulta útil, ayúdanos a mantener
este sitio. Cualquier donación es bienvenida. Tu apoyo nos
permitirá acceder a nuevos materiales y a montajes más
interesantes y útiles. Gracias por ayudarnos a hacer
Servisystem cada día mejor. Tu ayuda será muy importante
para nosotros. Gracias. |
|
|
|
|
|
|
|
Indice de montajes 2
|
|
|
|
|
|
|
|