Beruflich Dokumente
Kultur Dokumente
Fuente:
http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm
Fuente:
http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm
3.- Codificación: los valores de las tomas de voltajes se representan numéricamente por
medio de códigos y estándares previamente establecidos. Para nuestro caso obviamente
será, codificar la señal digital en código numérico binario. La codificación permite
asignarle valores numéricos binarios a los valores de tensiones, que conforman la señal
analógica original.
Grupo N°1 2
Fuente:
http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm
Grupo N°1 3
Bits 𝑷𝑪𝑭𝑮𝟑 − 𝑷𝑪𝑭𝑮𝟎: pertenecen al registro de control 𝐴𝐷𝐶𝑂𝑁1, configuran los canales
de entrada del convertidor A/D, es decir, estos bits son las entradas de selección del
multiplexor para la configuración de las entradas analógicas, entradas digitales y voltajes
de referencia.
Registros de control
Bit 7 y 6 (𝐴𝐷𝐶𝑆1 , 𝐴𝐷𝐶𝑆0 ): Bits de selección de reloj para el Módulo ADC, esto es entre
cuanto se fraccionará la frecuencia del oscilador utilizado para que se tenga un tiempo de
conversión adecuado, es decir, el tiempo que tardará el PIC para realizar la conversión.
Sin embargo, el conversor analógico digital pic cuenta con su propio oscilador formado
por un circuito 𝑅𝐶, que también puede ser elegido mediante estos bits, en la siguiente
tabla se tienen los fraccionamientos del oscilador de acuerdo a los valores que tomen estos
bits o si se quiere utilizar el oscilador interno del ADC:
El oscilador 𝑅𝐶 interno del convertidor tiene un 𝑇𝐴𝐷 (𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑐𝑜𝑛𝑣𝑒𝑟𝑠𝑖ó𝑛 𝑝𝑜𝑟 𝐵𝑖𝑡),
típico de 4 [𝜇𝑠], este reloj es recomendable para la operación en modo Sleep.
Grupo N°1 4
Y se elige la opción:
𝐴𝐷𝐶𝑂𝑁1 𝐴𝐷𝐶𝑂𝑁0
𝐴𝐷𝐶𝑆2 𝐴𝐷𝐶𝑆1 𝐴𝐷𝐶𝑆0 𝐹𝑂𝑆𝐶⁄
0 0 0 2
Entonces:
𝐹𝑂𝑆𝐶 = 2 [𝑀ℎ𝑧]
Lo que equivale:
𝑇 = 0.5[𝜇𝑠]
Es decir, no cumplimos con las condiciones establecidas por el fabricante. Esto producirá
un mal funcionamiento del módulo ADC.
Ahora sí:
𝐴𝐷𝐶𝑂𝑁1 𝐴𝐷𝐶𝑂𝑁0
𝐴𝐷𝐶𝑆2 𝐴𝐷𝐶𝑆1 𝐴𝐷𝐶𝑆0 𝐹𝑂𝑆𝐶⁄
0 0 1 8
Entonces:
𝐹𝑂𝑆𝐶 = 1⁄2 [𝑀ℎ𝑧]
Lo que equivale:
𝑇 = 2 [𝜇𝑠]
Con lo cual ya se ha logrado un tiempo de conversión que sobrepasa los 1.6 [𝜇𝑠], mínimos
que se necesita, por lo que en este caso se elegiría esta opción para el tiempo de conversión
por Bit 𝑇𝐴𝐷 , con la combinación de Bits explicada previamente.
Bits 5, 4 y 3 (𝐶𝐻𝑆2 , 𝐶𝐻𝑆1 , 𝐶𝐻𝑆0 ): bit de selección del canal analógico (Los canales
analógicos a usar deberán tener sus bits TRIS correspondientes seleccionados como
entradas). El PIC16F877A cuenta con 8 entradas analógicas, 5 de las cuales están en el
puerto A, 3 en el puerto E. Los pines de las entradas analógicas
(𝐴𝑁0 , 𝐴𝑁1 , 𝐴𝑁2 , 𝐴𝑁3, 𝐴𝑁4 , 𝐴𝑁5, 𝐴𝑁6 , 𝐴𝑁7), se seleccionan de acuerdo a los valores como
se muestra en la siguiente tabla:
Bit 2 𝐺𝑂/𝐷𝑂𝑁𝐸
̅̅̅̅̅̅̅̅ : Poniendo este bit en 1 se inicia la conversión del canal seleccionado.
Este bit permanece en 1 durante la conversión y es limpiado automáticamente por el
convertidor al terminar la conversión, es decir lo pone a cero.
1= La conversión ADC está en marcha (mientras está a 1 se está realizando la conversión).
Grupo N°1 5
0 = La conversión ha finalizado. (El bit se pone a cero automáticamente por hardware
cuando la conversión ADC finaliza) el resultado de la conversión aparece en
𝐴𝐷𝑅𝐸𝑆𝐻 𝑦 𝐴𝐷𝑅𝐸𝑆𝐿 .
Bit 1: no es utilizado, se lee como cero.
Bit 0 𝐴𝐷𝑂𝑁: bit de puesta en marcha.
𝐴𝐷𝐹𝑀 = 1 Pone en el registro 𝐴𝐷𝑅𝐸𝑆𝐻 (1𝐸ℎ), los seis bit de mayor peso a “0”
(Justificación a derecha).
𝐴𝐷𝐹𝑀 = 0 Pone en el registro 𝐴𝐴𝐷𝑅𝐸𝑆𝐿 (9𝐸ℎ), los seis bit de mayor peso a “0”
(Justificación a izquierda).
Bit 6 𝐴𝐷𝐶𝑆2: junto con los bits 7 y 6 (𝐴𝐷𝐶𝑆1 , 𝐴𝐷𝐶𝑆0) del registro 𝐴𝐷𝐶𝑂𝑁 se utiliza para
obtener el tiempo de conversión adecuado del ADC, el que tiene que ser mayor a 1.6 [𝜇𝑠].
Bits 5 y 4: no son utilizados, se leen como cero.
Bits 3, 2, 1, 0 (𝑃𝐶𝐹𝐺3, 𝑃𝐶𝐹𝐺2 , 𝑃𝐶𝐹𝐺1 , 𝑃𝐶𝐹𝐺0): Seran utilizados, como entradas analógicas,
sin embargo, se puede elegir entre todas las entradas analógicas o solo algunas, también
si se quiere utilizar un voltaje de referencia (𝑉𝑅𝐸𝐹+ , 𝑉𝑅𝐸𝐹−, 𝑉𝐷𝐷+, 𝑉𝑆𝑆 ) diferente al que
trabaja el pic, para esto será necesario configurar los bits de acuerdo a la siguiente tabla:
Grupo N°1 6
3. 𝑨𝑫𝑹𝑬𝑺𝑯 𝒚 𝑨𝑫𝑹𝑬𝑺𝑳:
Por ejemplo:
Gráficamente:
Grupo N°1 7
De la impedancia de la fuente 𝑅𝑆 , se toma una muestra a través del interruptor 𝑅𝑆𝑆 , por
tanto 𝑅𝑆 afecta directamente al tiempo de carga del capacitor 𝐶𝐻𝑂𝐿𝐷 . El fabricante ha
definido una impedancia de 10 [𝑘Ω], es decir, cuando disminuye dicha impedancia
también disminuye el tiempo de adquisición. Antes de realizar, la conversión debe
seleccionarse el canal de entrada analógica.
Según el fabricante el tiempo de adquisición 𝑇𝐴𝐶 se da por la siguiente ecuación:
Donde:
𝑇𝐴𝐶 : Tiempo de Adquisición.
𝑇𝐸𝐴𝑀𝑃 : Tiempo de Establecimiento del Amplificador.
𝐻𝐶𝐶𝑇 : Tiempo de carga del capacitor.
𝛿: Coeficiente de Temperatura.
Se define por TAD al tiempo de conversión por bit. El convertidor A/D requiere un mínimo
de 12 TAD para la conversión de los 10 bits, la señal de reloj para la conversión A/D se
selecciona por software mediante los bits ADCS1:ADCS0
Para realizar conversiones correctas el reloj del convertidor A/D debe seleccionarse para
asegurar un tiempo mínimo de TAD de 1,6 mS.
La tabla siguiente muestra los tiempos de T AD dependiendo de la señal de reloj
seleccionada para la conversión A/D:
Grupo N°1 8
5. Funcionamiento del convertidor A/D en el modo sleep
El módulo del convertidor A/D puede trabajar durante el modo Sleep. Para ello se debe
poner como fuente de reloj el modo RC (ADCS1.ADCS0 = 1l). Cuando la fuente de
reloj es el RC interno, el módulo A/D espera un ciclo de máquina antes de empezar la
conversión. Esto permite eliminar el ruido de la conversión digital, Cuando la
conversión finaliza el bit GO/#DONE se pone a cero y el resultado se carga en, la
pareja de registros ADRESH: ADRESL. Si la interrupción por final de conversión A/D
está habilitada, el dispositivo se despierta. Si la interrupción no está habilitada, el
módulo A/D se apagará aunque el bit ADON (ADCON0 <0>) permanezca a uno.
RECUERDE:
- El condensador de carga 𝐶𝐻𝑂𝐿𝐷 no se descarga después de cada conversión.
- El voltaje de referencia no tiene efecto en la ecuación ya que se cancela.
- La impedancia máxima recomendada para fuentes analógicas es de 2.5 [𝑘Ω], esto es
requerido para conocer el pin específico de fuga o pérdida.
- Cuando se ejecuta un Reset se reestablecerán todos los registros, esto obliga a apagar
el convertidor ADC y por tanto, abortar cualquier ejecución en curso.
Grupo N°1 9
- El módulo ADC tiene como característica especial el ser capaz de seguir en
funcionamiento mientras el dispositivo se encuentra en modo 𝑆𝑙𝑒𝑒𝑝.
Fuente: http://microcontroladores-mrelberni.com/analogico-digital-pic/
Para el proceso de conversión analógico digital PIC sin tomar en cuenta la interrupción
que este puede producir, el fabricante recomienda que se sigan una serie de pasos los
cuales son:
1. Configurar que pines serán utilizados como entradas analógicas, si se quiere una
tensión de referencia (𝑉𝑅𝐸𝐹+ , 𝑉𝑅𝐸𝐹−, 𝑉𝐷𝐷+ , 𝑉𝑆𝑆 ), diferente a la tensión de trabajo del PIC,
lo cual como se ha comentado líneas arriba se hace con los bits 3, 2, 1 y 0
(𝑃𝐶𝐹𝐺3, 𝑃𝐶𝐹𝐺2 , 𝑃𝐶𝐹𝐺1, 𝑃𝐶𝐹𝐺0) del registro 𝐴𝐷𝐶𝑂𝑁1.
2. Elegir cual será el reloj a utilizar para obtener el tiempo de conversión adecuado, que
tendrá que ser mayor a 1.6 [𝜇𝑠]. Esto se logra mediante los bits 7 y 6 (𝐴𝐷𝐶𝑆1 , 𝐴𝐷𝐶𝑆0) del
registro 𝐴𝐷𝐶𝑂𝑁0 junto con el bit 6 (𝐴𝐷𝐶𝑆2) del registro 𝐴𝐷𝐶𝑂𝑁1.
3. Seleccionar cual será la entrada analógica a leerse, lo cual se hace mediante los bits 5,
4 y 3 (𝐶𝐻𝑆2 , 𝐶𝐻𝑆1 , 𝐶𝐻𝑆0 ) del registro 𝐴𝐷𝐶𝑂𝑁0.
4. Activar el conversor analógico digital PIC poniendo a 1 el bit 0 (𝐴𝐷𝑂𝑁 ) del registro
𝐴𝐷𝐶𝑂𝑁0.
5. Esperar el tiempo de adquisición (𝑇𝐴𝐷 ) necesario para que el condensador del módulo
conversor analógico digital PIC se cargue en forma adecuada, al tiempo calculado
previamente de 20 [𝜇𝑠].
7. Esperar a que la conversión analógica digital termine mediante la lectura del bit 2
̅̅̅̅̅̅̅̅ ) del registro 𝐴𝐷𝐶𝑂𝑁0, la conversión habrá terminado cuando el valor de este
(𝐺𝑂/𝐷𝑂𝑁𝐸
bit se ponga a 0.
Grupo N°1 10
8. Leer los registros 𝐴𝐷𝑅𝐸𝑆𝐻 𝑦 𝐴𝐷𝑅𝐸𝑆𝐿 , ya que es donde se ha guardado el número binario
que representa el valor de la señal analógica.
BIBLIOGRAFIA
Valdes F.,Pallás R., MICROCONTROLADORES Fundamentos y aplicaciones
con PIC, Marcombo, España, 2007
Datasheet PIC 16F877A
Grupo N°1 11