You are on page 1of 6

c 

   

Se llama potenciómetro digital a un circuito integrado cuyo funcionamiento simula el de


un potenciómetro Analógico. Se componen de un divisor resistivo de n+1 resistencias,
con sus n puntos intermedios conectados a un multiplexor analógico que selecciona la
salida. Se manejan a través de una interfaz serie ( SPI, I2C, Microwire, o similar).
Suelen tener una tolerancia en torno al 20% y a esto hay que añadirle la resistencia
debida a los switches internos, conocida como Rwiper. Los valores mas comunes son
de 10K y 100K aunque varia en función del fabricante con 32, 64, 128, 512 y 1024
posiciones en escala logarítmica o lineal. Los principales fabricantes son Maxim,
Intersil y Analog Devices. Estos dispositivos poseen las mismas lim itaciones que los
conversores ADC como son la corriente máxima que pueden drenar, que esta en el
orden de los mA, la INL y la DNL, aunque generalmente son monotónicos.

Donde DNL - Diferencial no linealidad: Por un ideal ADC la salida se divide en dos
pasos uniforme n de poder, cada uno con el ancho . Cualquier desviación de la
anchura del paso ideal es la no linealidad diferencial (DNL). Se expresa en
cuenta. DNL es una función de la particular arquitectura de cada ADC. No es posible
eliminar sus efectos con la calibración. Y INL - Integral de no linealidad: DNL errores
se acumulan para producir un total de no linealidad integral (INL). Se define como la
desviación máxima de la pendiente ideal de la ADC y se mi de desde el centro del
paso. Se expresa en cuenta. INL es una función de cada ADC. No es posible eliminar
sus efectos con la calibración.

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 d e
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.

Para comenzar a ³dialogar´ con el circuito integrado se debe llamar por su nombre.
Todos los que se encuentren conectados y operativos dent ro del bus deben saber a
quién se le esta 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 d el dispositivo maestro, se envía el byte que es la
dirección o nombre del dispositivo dentro del bus.

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 dent ro 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 cristi ano 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 e se 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 se coloca los cuatro pines a GND el byte resultaría ser ³0101000´. Los
cuatro primeros son fijos y los cuatro últim os 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 se
pusiera A3 a VCC, A2 y A1 a GND y A0 a VCC el byte quedaría ³01011001´. En
lenguaje de programación BASIC para microcontrolado res, sólo es necesario que se
escriba o SO  %01011001 y se enviará al bus la dirección del IC que se esta
solicitando. Con cuatro bits puede manejar hasta 16 circuitos integrados conectados
todos al mismo bus de dos cables, comandados por un sencillo mic rocontrolador. 16
potenciómetros estéreo que no se romperán ni harán ruido jamás.

Luego del byte de dirección (Add ress) viene la instrucción que se le dará al
potenciómetro. Es decir, el trabajo que se quiere 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:

Ë 0ead Wiper Control 0egister ± Esta instrucción le indicará al IC que leerás el


valor que posee el registro de control del wiper (cur sor).

Ë Write Wiper Control 0egister - Con esta le indicarás que cambiará la


posición actual del wiper del potenciómetro seleccionado

Ë 0ead Data 0egister ± Sólo leerás el contenido de un dato dentro de los


registros

Ë Write Data 0egister ± 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 instruc ción posee 8 bits y los enviará con otra
instrucción BUSOUT. La estructura del byte se puede desglosar entre los cuatro bits
más significativos que indi carán la operación que se desea 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.

Es de recordar 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 instrucci ones
independientes para cada potenciómetro. Por último se cierra el bus con oSOP, 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.

Luego existen otras cuatro instrucciones que relaci onan el uso de los datos
almacenados en los registros (que se han 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 XF0 para operar de forma individual en cada
potenciómetro y las instrucciones N XF0 que son para actuar en ambos
potenciómetros a la vez, es decir, ideales para trabajos en audio estéreo.

Por último se encuentra 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). 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.

La siguiente sería una forma de manejar los valores de los registros de datos
almacenándolos en una variable (D) a l ser recepcionados desde el ordenador
(HSERIN) y provenientes de una sencilla aplicación realizada en Visual Basic o
cualquier otro lenguaje que permita crear la interfaz gráfica necesaria para posicionar
los potenciómetros en pantalla y actuar sobre ell os.

'******************************************************
'* 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 CUALES PINES DEL PIC VAN


DECLARE SCL_PIN PORTA.3 'A SER 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 ASWORD '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 SEGUN DO,
'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


„

You might also like