rev 008 -2006 laboratorio de microprocesadores daniel a jacoby [email protected] noviembre 2008...

30
REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby [email protected] Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Upload: dimas-colmenares

Post on 13-Feb-2015

13 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

REV 008 -2006

LABORATORIO DE MICROPROCESADORES

Daniel A Jacoby

[email protected]

Noviembre 2008

Instituto Tecnológico de Buenos aires

ADC HCS12

Page 2: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Diagrama en bloques

El modulo ATD tiene un conversor A/D de10 bits

Hay 8 entradas conectadas a mediante un multiplexor al conversor

El conversor tiene dos entradas de referencia VRH y VRL. En condiciones normales VRH=0v y VRH=5v

Page 3: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Módulos ATD del ProcesadorEl MC9S12DP256B posee 2 módulos ATD0 y ATD1

Page 4: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

Cada modulo posee 8 registros donde se guarda el resultado de la conversión:

ATD0DR0 - ATD0DR7 para el modulo ATD0

ATD1DR0 – ATD1DR7 para el modulo ATD1

Page 5: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

La conversión puede ser en 8 o 10 bits

8 Bits si SRES8=1

10 Bits si SRES8=0

Page 6: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

El resultado de la conversión puede estar alineado a la izquierda o a la derecha

DJM=0 (Left justified)

DJM=1 (Right justified)

Page 7: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B7 B6 B5 B4 B3 B2 B1 B0 0 0 0 0 0 0 0 0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0 B7 B6 B5 B4 B3 B2 B1 B0

DJM=0 (Left justified) 8 Bits

DJM=1 (Right justified) 8 Bits

ATDDRX

ATDDRXH ATDDRXL

Si la conversión es de 8 bits la lectura deberá realizarse del registro ATDDRXH/L x=0..7

Page 8: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 0 0 0 0 0 0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0

DJM=0 (Left justified) 10 Bits

DJM=1 (Right justified) 10 Bits

ATDDRX

ATDDRXH ATDDRXL

Si la conversión es de 10 bits la lectura deberá realizarse del registro ATDDRX x=0..7

Page 9: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Registros de lectura del ADT

Finalmente existe la posibilidad que los valores tengan representación no signada o signada siendo esta ultima valida solo para DJM=0 (Left justified)

DSGN=0 Unsigned

DSGN=1 Signed

Page 10: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Modos de operaciónSCAN=0 Una sola secuencia de L conversiones1

SCAN=1 Realiza en forma repetitiva L conversiones

L (Long de la secuencia) esta dado por S8C,S4C,S2C,S0C

MULT=0 Realiza L conversiones sobre el mismo canal MULT=1 Realiza L conversiones sobre canales consecutivos.

La selección del canal esta dado por CC,CB,CA

Si MULT=0 este es el canal a convertir.

Si MULT=1 este es el primer canal de la secuencia (CHini)1-Para iniciar una nueva conversión se debe escribir a

ATDCTL5.

Page 11: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Modos de operaciónEn todos los casos las lecturas se guardan a partir del registro ADTDR0.

Ej.:

L=1 ATDDR0

L=2 ATDDR0,ATDDR1

L=3 ATDDR0,ATDDR1,ATDDR2

Page 12: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Tabla para la selección del canal

Page 13: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Tabla para la selección de L

Page 14: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Modos de operaciónMULTI =0

En este caso se realizan L conversiones de UN solo canal. El canal elegido estará dado por los valores de CC CB y CA. Las lecturas serán guardadas en forma secuencial en los registros ADTDRx empezando por el 0 hasta L-1.

ADTDR0

ADTDR1

ADTDR2

ADTDR3

ADTDR4

ADTDR5

ADTDR6

ADTDR7

Ej.: Si CC,CB,CA =0102=210 y S8C,S4C,S2C,S0C= 310 este caso se convierte el canal 2 guardándose en ADTDR0 su valor. Luego se repite la conversión sobre el mismo canal guardándose en ADTDR1 su valor. Finalmente se repite la conversión del mismo canal guardándose dicho valor en ADTDR2.Si SCAN=1 esta secuencia se repite indefinidamente

MUX

PAD0

PAD1

PAD2

PAD3

PAD4

PAD5

PAD6

PAD7

CC CB CA

ADCADCSi

SCAN=1

Page 15: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Modos de operaciónMULTI =1 Ejemplo1

En este caso se convierte en forma secuencial L canales siendo el primero de ellos el dado por los valores de CC CB y CA (CHini).

ADCADC

ADTDR0

ADTDR1

ADTDR2

ADTDR3

ADTDR4

ADTDR5

ADTDR6

ADTDR7

MUX

PAD0

PAD1

PAD2

PAD3

PAD4

PAD5

PAD6

PAD7

CC CB CA

Ej.: Si CHini=2 y L= 310 este caso se convierte primero el canal 2 luego el 3 y finalmente el 4 empezando nuevamente por el 2 (Si SCAN=1)o se detiene si SCAN=0. S= 2,3,4,2,3,4,2,3,4…. .Osea L=3 y

Si SCAN=1

Page 16: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Modos de operación

MULTI =1 Ejemplo2: Input Channel wrap around

ADCADC

ADTDR0

ADTDR1

ADTDR2

ADTDR3

ADTDR4

ADTDR5

ADTDR6

ADTDR7

MUX

PAD0

PAD1

PAD2

PAD3

PAD4

PAD5

PAD6

PAD7

CC CB CA

CHini=6 Si SCAN=1

CHini=6

L=5

Page 17: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Tiempos de conversión

MAXIMO 2MHz !!

24MHz

Ej.: Si PRS=5 => ATDCLK = 0.5 (24MHz/6) = 2MHz

Page 18: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Tiempos de conversión

Durante la primera fase la entrada esta conectada al hold capacitor mediante un buffer de ganancia unitaria.

En la segunda fase la entrada se conecta directamente al hold capacitor (sin buffer) que se carga hasta el valor final.

El numero de ciclos de esta fase dependerá de la impedancia de salida de la fuente conectada al pin de entrada al ADC. Para fuentes de alta impedancia conviene elegir un tiempo mayor.

Page 19: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Tiempos de conversión

24MHz

Si ATDCLK = 2MHz => TATDCLK = 0.5us

Con TATDCLK = 0.5us tenemos:

Fase inicial= 2 x 0.5us= 1us

Final sample time= 2 x 0.5us= 1us

Conversion time= 10 x 0.5us= 5us

Total = 7us por canal

Si L=8 el tiempo total de conversión es Lx7=56us

Nota:

Se asumió que:

Se eligieron 2 ciclos para la fase 2 (final sample time) SMP1:SMP0=0:0

Se usan 10 bits de resolución (10 Ciclos) SRES8=0

ATDCTL4= 0x05

2 2 10

Page 20: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Fin de conversión

SCF :Sequence Completed Flag

SCF=1 si la secuencia finalizo (luego de L conversiones)

SCF=0 Si la secuencia no finalizo.

Se borra cuando:

A- Se escribe un “1” a SCF

B- Se escribe al ATDCTL5 (start of conversion)

C- Si AFFC=1 basta con leer directamente el resultado de la conversión

AFFC= Automatic Fast Flag Clear (Bit 6 de ADTCTL2)

Page 21: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Fin de conversión

CCFx se borra cuando:

A- Se lee el registro ADSTAT1 seguido una lectura de ADTDRX (AFFC=0)

B- Se escribe al ATDCTL5 (start of conversion)

C- Basta con leer directamente el resultado en ADTDRX si AFFC=1 .

Además del CCF existe un flag de fin de conversión para cada canal en una secuencia (CCFx donde x=[0..7]). Por ejemplo cuando finaliza la primera conversión en una secuencia CCF0=1 y el resultado estará en ATDDR0.

Luego cuando finaliza la segunda conversión de la secuencia CCF1 =1 y el resultado estará en ATDDR1. Así se sigue hasta completar la secuencia.

Page 22: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Impedancia de entrada

Se debe tener especial cuidado con la impedancia de entrada. Una impedancia muy alta introduce gran error en la medición por la corriente de fuga a la entrada (Iin=1uA) y una impedancia muy baja puede no limitar la corriente de entrada máxima (Iicp=2.5 mA) cuando la tensión de entrada excede los limites permitidos [VDDA,VSSA].

Page 23: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Impedancia de entrada máxima

Para 8 bits 1LSB ~ 20mV => Error < 1/2LSB =10mV Rs < 10mV / Iin(1uA) = 10K Ω

Para 10 bits 1LSB ~ 5mV => Error < 1/2LSB =2.5mV Rs < 2.5mV / Iin(1uA) = 2.5K Ω

Asumiendo que Vref=VRH-VRL=5.12V

1LSB (8 bits)=Vref/256 = 20mV

1LSB (10 bits)=Vref/1024 = 5mV

Page 24: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Impedancia de entrada mínima

Por ejemplo si por accidente la tensión de entrada se hace -12V el diodo de clamping limita la entrada a - 0.7v quedando sobre Rs 11.3V.

En este caso la Rs > 11.3V / 2.5mA = 4.5KΩ

Para la determinación de la Zin mínima debe tenerse en cuenta que la corriente de inyección máxima no debe exceder los 2.5mA

Page 25: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Valor del Capacitor CfPara determinar el valor de Cf debemos basarnos en la figura siguiente:

El capacitor CSAMP junto con S1 y S2 es un S/H. Durante la primera fase de la adquisición (2 ciclos) el capacitor se carga a través del buffer. El motivo de esto es que en el instante inicial la diferencia de tensión entre la entrada y la de dicho capacitor puede ser alta. Si la conexión fuese directa (sin buffer) podría haber una excesiva caída de tensión en la rama serie creando así un importante error en la conversión.

Page 26: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Valor del Capacitor Cf

Bajo estas condiciones la capacidad vista desde la entrada es:

CinN= Cin+CBUF=6pF+4pF=10pF

Cuando se inicia la segunda etapa se supone que la tension sobre CSAMP llego casi hasta casi el valor de la entrada no siendo mas necesario el buffer. Entonces en la segunda etapa el camino de carga es a través de S2 ahora la capacidad vista desde la entrada es:

CinS= Cin+CBUF+CSAMP= CinN+CSAMP= 10pF+12pF= 22pF

Page 27: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Valor del Capacitor Cf

Debido a la redistribución de carga se produce una caída en la tensión Δv que debe ser menor a un LSB.

La carga eléctrica antes del cierre de S2 es: Q= V1(Cf+CinN)

y después del cierre de S2 será: Q= V2(Cf+CinS).

Igualando : V1(Cf+CinN) = V2(Cf+CinS).

La caída por la predistribución de la carga será Δv=V2-V1

Page 28: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Valor del Capacitor Cf(Cf+CinS)

O sea V2= V1 (Cf+CinN)

(Cf+CinS) (Cf+CinS) La caida sera: v=V2-V1= V1 V1= V1 1

(Cf+CinN) (Cf+CinN)

v (Cf+CinS) 1 = 1 para 10 bitsV1 (Cf+CinN) 1024

(Cf+CinS) (Cf+CinN) 1

(Cf+CinN) 1024

(CinS CinN) 1

(Cf+CinN) 1024

Cf >1024 CinS 1024 CinN CinN

Cf >1024 (CinS CinN)

Page 29: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Valor del Capacitor Cf

1024 (CinS CinN)=1024 (22pF-10pF)=1024 12pf 12nf

Cf >1024 (CinS CinN)

Cf >12nF

Page 30: REV 008 -2006 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Noviembre 2008 Instituto Tecnológico de Buenos aires ADC HCS12

Referencias

• ATD_10B8C Block User Guide V02.08

• AN2428/D

• AN2429/D