Вы находитесь на странице: 1из 56

Introduccin al Microcontrolador MC68HC11

q
Objetivo del Curso
En este curso se presenta una descripcin general del microcontrolador MC68HC11 de Motorola. Se describen sus diferentes subsistemas internos, se da una breve descripcin de su programacin as como el uso de las herramientas de desarrollo, tales como el mdulo de evaluacin MC68HC11EVBU, el ensamblador AS11 y el modo de operacin Boot-Strap. Al final se presenta una aplicacin completa de este microcontrolador en la medicin de transitorios de velocidad angular.

Contenido:
1. Caractersticas generales del MC68HC11 1.1 Descripcin general del 68HC11 1.2 Descripcin de las lneas del 68HC11 1.3 El CPU 1.4 Modos de operacin 1.5 Memoria interna 1.6 Reset e interrupciones Operacin del Mdulo de Evaluacin MC68HC11EVBU Los puertos paralelos de entrada/salida El puerto serie de comunicaciones asncrono El sistema del temporizador El convertidor analgico digital Sistema mnimo para medicin de velocidad angular

2. 3. 4. 5. 6. 7.

Caractersticas Generales del MC68HC11

1.- Caractersticas generales del MC68HC11


En esta parte se da una descripcin muy general de la arquitectura del microcontrolador MC68HC11 de Motorola, sin entrar al detalle de la operacin de los dispositivos internos.

1.1- Descripcin general del 68HC11


El MC68HC11 es un microcontrolador avanzado de 8 bits de muy alta escala de integracin, el cual posee varios perifricos en un solo circuito integrado, lo que lo convierte en una pequea microcomputadora. En adelante nos referiremos a l como Unidad de Microcontrolador (MCU) La tcnica con que fue desarrollado este circuito integrado, nos permite manejar velocidades nominales del bus de hasta 3 Mhz y tan bajas como corriente directa. Otra de las caractersticas que lo hacen atractivo es su alta inmunidad al ruido, sto por la tecnologa HCMOS con que fue construido. A continuacin se presenta un resumen de las caractersticas que posee este microcontrolador. g g g g g g g g CPU del tipo MC68HC11, la cual ejecuta todas las instrucciones del M6800, 6801, adems de 91 nuevas instrucciones Alimentacin nica de 5 volts. Modos de ahorro de energa STOP y WAIT activados por software. 2 kbytes de EEPROM con proteccin de lectura. Puerto serie de comunicaciones asncrono (compatible con RS - 232). Puerto Serie Sncrono, para la comunicacin perifrica con otros dispositivos. Convertidor Analgico/Digital de 8 bits con 8 canales de adquisicin de datos. Sistema de Temporizador en base a un contador de carrera libre de 16 bits. El cual contiene los siguientes medios de interaccin: h Tres lneas o canales de captura de eventos. h Cuatro lneas o canales de salida de comparacin de eventos. h Un canal cofigurable como captura o comparacin de eventos (entrada o salida). g g g Un acumulador de pulsos con una longitud de 8 bits Sistema de monitoreo " WatchDog " para operacin confiable. 38 lneas de entrada/salida de propsito general, los cuales estn agrupados de la siguiente manera: h 16 lneas bidireccionales de entrada/salida. h 11 lneas de entrada solamente. h 11 lneas de salida solamente. g Las formas de empaquetado que se encuentran en el mercado son las siguientes: h h h h h h PLCC de 52 patitas CLCC de 52 patitas TQFP de 52 patitas QFP de 64 patitas DIP de 48 patitas (slo en MC68HC811E2) SDIP de 56 patitas
2

Caractersticas Generales del MC68HC11

E MODA/LIR
MODB/VSTBY

XTAL

EXTAL

IRQ

XIRQ

RESET

OSCILADOR CONTROL DE MODO DE OPERACION

LOGICA DE INTERRUPCION 0 KBYTES DE ROM

LOGICA DEL RELOG

512 BYTES DE RAM CPU 68HC11 512 BYTES DE EEPROM SISTEMA DEL TIMER BUS EXPANDIDO DE DIRECCIONES BUS DE DATOS Y DIRECCIONES INTERFACE SERIE PERIFERICA SINCRONA SINCRONIZACION Y PROTOCOLO DE LOS PUETOS PARALELOS DE ENTRADA/SALIDA
CONVERTIDOR
TX RX

INTERFACE SERIE DE COMUNICACION ASCINCRONA VRH VRL VDD VSS

A/D

CONTROL PUERTO A PUERTO B PUERTO C

CONTROL PUERTO D PUERTO E

Figura 1.1 .- Diagrama a bloques del microcontrolador. La figura 1.1 muestra en forma de bloques los diferentes sistemas que se encuentran en el microcontrolador. En dicha figura se puede apreciar la interaccin entre los diferentes sistemas, as como la de stos con las lneas externas del 68HC11. En este captulo se describe cada uno de estos sistemas, presentando con mayor detalle los que fueron utilizados en este trabajo. Como se explic, existen diferentes empaquetados para el 68HC11, en la figura 1.2, se muestra en detalle el tipo de empaquetado utilizado en este trabajo

Caractersticas Generales del MC68HC11

XTAL PC0/ADDR0/DATA0 PC1/ADDR1/DATA1 PC2/ADDR2/DATA2 PC3/ADDR3/DATA3 PC4/ADDR4/DATA4 PC5/ADDR5/DATA5 PC6/ADDR6/DATA6 PC7/ADDR7/DATA7 RESET XIRQ IRQ PD0/RxD

8 9 10 11 12 13 14 15 16 17 18 19 20

46 45 44 43 42 41

PE5/AN5 PE1/AN1 PE4/AN4 PE0/AN0 PB0/ADDR8 PB1/ADDR9 PB2/ADDR10 PB3/ADDR11 PB4/ADDR12 PB5/ADDR13 PB6/ADDR14 PB7/ADDR15 PA0/IC3

MC68HC11E1

40 39 38 37 36 35 34

Figura 1.2.- Tipo de empaquetado de 52 patitas PLCC

1.2.- Descripcin de las lneas del 68HC11


Lneas VDD y VSS La energa necesaria para el desempeo del microcontrolador es proporcionada a travs de estas lneas, llamadas VDD y VSS, donde VDD es el positivo de la fuente de 5 volts y VSS es su tierra por lo que se puede observar que este dispositivo requiere slo una fuente de alimentacin. El rango de voltaje permitido, en el cual puede variar este voltaje de alimentacin es de 4.5 - 7.0 volts, este rango nos garantiza un buen funcionamiento del MCU. Lnea RESET Esta es una lnea de control bidireccional, est lnea acta como una entrada para poner al MCU en un estado conocido como estado de inicializacin o arranque, o como una lnea de salida de colector abierto para indicar que una falla interna ha sido detectada por el monitor del reloj o por el COP (aue se describen ms adelante). La CPU tambin es capaz de distinguir entre un RESET interno y uno externo, sto lo hace sensado el tiempo de permanencia en bajo de la lnea de RESET. La figura 1.3 muestra el modo en el cual se puede construir un circuito sencillo de RESET.
4

Caractersticas Generales del MC68HC11

V DD

10 k

RESET

0.01

uF

Figura 1.3 .- Circuito de Reset en base a un arreglo RC Lneas EXTAL y XTAL Estas dos lneas proveen el modo de introducir al microcontrolador la seal oscilante de un cristal o reloj compatible con la tecnologa CMOS, para la excitacin del circuito de generacin del reloj interno del microcontrolador La frecuencia de reloj aplicada a estas lneas debe de ser cuatro veces mayor a la frecuencia deseada en el bus interno. En este trabajo se utiliz un cristal de 8 Mhz. En caso de que se aplique un reloj externo al MCU la seal del reloj se aplica a la lnea EXTAL mientras que la lnea XTAL es recomendable conectarla a tierra a travs de una resistencia de entre 10k y 100k. La salida XTAL puede ser utilizada para la excitacin de otro MCU. La figura 1.4 muestra el arreglo recomendado para la conexin del cristal a las lneas EXTAL y XTAL.

25 pF

EXTAL

10 M

CRISTAL 4XE

XTAL

25 pF

Figura 1.4.- Modo de conexin de un cristal a las lneas EXTAL y XTAL Lnea E (Salida de Reloj del Bus Interno) La lnea E es una salida del reloj interno generado por el sistema del oscilador del MCU. Esta
5

Caractersticas Generales del MC68HC11

frecuencia es usada como una referencia de tiempo. Como ya se mencion anteriormente la seal E es una cuarta parte de la seal aplicada a los lneas EXTAL y XTAL. Es importante sealar que en modo de Bajo consumo de energa todos los clocks del MCU se congelan incluyendo ste. Lnea IRQ (Requerimiento de Interrupcin). Esta entrada nos da un medio de solicitar una interrupcin asncrona enmascarable al MCU. Esta entrada de requerimiento de interrupcin est configurada para operar en el flanco de bajada, es decir en la transicin de un nivel alto a un nivel bajo de voltaje, pero puede ser programado para su activacin en un flanco de subida. Para evitar disparos en falso de esta lnea es recomendable colocar una resistencia "Pull Up" de 4.7k de esta lnea a VDD. Lnea XIRQ (Requerimiento de interrupcin no enmascarable). Esta lnea de entrada nos proporciona al igual que la anterior, un medio para solicitar una interrupcin, pero en este caso es del tipo no enmascarable. Durante el ciclo de RESET el bit X del registro de banderas es puesto, por lo que cualquier solicitud de interrupcin el la lnea XIRQ , es ignorada. El bit X es limpiado por una instruccin de software, para la habilitacin de esta interrupcin. Una vez realizdo esto, no puede ser vuelto a poner este bit por software. Esta bandera nicamente es puesta por el hardware del MCU en el ciclo de RESET o al atender una interrupcin para evitar el anidamiento de rutinas. Lneas MODA/LIR y MODB/VSTBY (Seleccin de Modo de Operacin) Estas lneas son las encargadas de seleccionar el modo de operacin del MCU. El modo de operacin es capturado durante la aplicacin de un pulso bajo de la lnea RESET, de acuerdo a la Tabla 1.1 Niveles de las lneas MODA y MODB MODB 1 1 O O MODA 0 1 0 1

Modo de Operacin Single Chip Expandido Bootstrap Special Test

Tabla 1.1 Modo de operacin del MCU seleccionado por MODB y MODA Despus de que el modo de operacin ha sido seleccionado, la lnea MODA/LIR se convierte en el registro de carga de instruccin (LIR), el cual nos proporciona una salida del tipo de colector abierto, la cual nos indica que se ha cargado la siguiente instruccin ha ejecutar.
6

Caractersticas Generales del MC68HC11

Despus de que se ha reconocido el modo de operacin del MCU, la lnea MODB/VSTBY comparte la funcin de proporcionar la energa para la conservacin de la memoria RAM en ausencia o disminucin del voltaje de polarizacin. Es importante sealar en este punto que en el modo de ahorro de energa llamado STOP, no es necesario proporcionar una fuente de energa adicional, ya que en este modo se conservan los datos contenidos dentro de la memoria RAM y los registros. Lneas VRL y VRH (Voltajes de referencia para el Convertidor A/D) Estas lneas, proporcionan la referencia de voltaje para el Convertidor analgico/digital en su modo de operacin radiomtrica, donde VRL es la referencia de voltaje inferior y que normalmente es tierra o cero volts, y VRH es la referencia positiva o superior y que normalmente es conectada a VDD, para utilizar el rango de entrada de 0 a +5 volts. Para una correcta operacin del convertidor analgico/digital es necesario que VRH sea por lo menos 3 volts mayor que VRL adems VRL y VRH tengan valores entre VSS y VDD. Lnea STRA/AS Esta lnea tiene dos funciones separadas, dependiendo del modo de operacin en que se encuentre el MCU, as en el modo Single Chip y Bootstrap esta lnea es una entrada del tipo "Strobe", que permite guardar en un registro especial el estado del puerto C. En modo expandido y "special Test", esta misma lnea se denomina AS y acta como una lnea de salida que nos proporciona el medio para multiplexar el puerto C, ya que como se recordara en este puerto se encuentran multiplexados el bus de datos y la mitad menos significativa del bus de direcciones. La lnea AS se activa cuando las lneas AD0 a AD7 actan como bus de direcciones. Lnea STRB/R/W Al igual que en la lnea anterior, este tiene dos funciones dependiendo del modo de operacin en que se encuentre operando el MCU. As, si se encuentra operando en modo de Single Chip o Bootstrap esta lnea se denomina STRB y acta como una lnea de salida de sincronizacin que junto con STRA, proporciona un protocolo de comunicacin para el puerto B y C. En modo de operacin expandido multiplexado esta lnea es denominada R/W y es utilizada para indicar la direccin de transferencia del dato contenido en del bus de datos.

Las lneas de los puertos


Las Lneas de los puertos tienen diferentes funciones que dependen tanto del modo de operacin, como del modo en que se encuentren programados los diferentes dispositivos. As los puertos A, D y E Funcionan de la misma forma sin importar el modo de operacin, pero muchas de estas lneas pueden ser programadas de alguna manera para poder tener funciones compartidas. Esta programacin se ver ms adelante en detalle. El puerto B opera de dos modos distintos dependiendo del modo de operacin en que se encuentra operando el MCU. En modo de Single Chip o Bootstrap este puerto se comporta como un puerto de salida de 8 lneas, (bits) de propsito general, pero en modo expandido multiplexado, este puerto se comporta
7

Caractersticas Generales del MC68HC11

como las lneas de orden superior del bus de direcciones. El puerto C contiene 8 lneas de Entrada/Salida Bidireccional de propsito general, cuando el MCU se encuentra operando en modo de Single Chip o Bootstrap. Cuando el MCU se encuentra operando en modo Expandido Multiplexado, las lneas de este puerto se utilizan como las 8 lneas menos significativas del bus de direcciones multiplexadas con el bus de datos (AD0 ... AD7). La tabla 1.2 muestra las funciones de los puertos y lneas del MCU.

Puerto A
En todos los modos de operacin, el puerto A es el responsable de la manipulacin del contador de carrera libre para las operaciones de tiempo. Es conveniente aclarar en este punto, que el contador de carrera libre funciona a una velocidad igual a la frecuencia del reloj o cristal conectado al MCU dividida entre 4, es decir la frecuencia de la seal E, por lo que tenemos una frecuencia conocida y por lo tanto una base de tiempo real. Este puerto posee 8 lneas, de las cuales 3 estn diseadas para la captura de eventos IC (Input Capture), y 4 estn diseadas para la funcin de comparacin con el contador de carrera libre, OC (Output Capture), de esta manera se puede producir una seal a travs de una lnea "OC" de comparacin de eventos que produzca una accin en funcin del tiempo. Se tiene un lnea ms, la cual es programable, ya sea como entrada de captura de eventos (IC), o como comparacin de eventos (OC). Dentro de este puerto existe otro subsistema, al cual se le conoce como "Acumulador de pulsos o eventos", este pequeo sistema contiene un contador de 8 bits. Este puerto tambin puede funcionar como un puerto de salida sencillo de 3 lneas, un puerto sencillo de entrada de 3 lneas y 2 lneas configurables como entrada o salida. Es importante mencionar que cada una de estas lneas puede ser programada individualmente, pero con una sola de sus funciones a la vez.

Puerto B
Este es un puerto de salida de 8 bits. Durante la operacin del MCU en modo de Single Chip las lneas del puerto B se comportan como salidas de propsito general, por lo que es considerado como un puerto sencillo de salida En modo expandido multiplexado todos los bits del puerto B actan como la mitad ms significativa del bus de direcciones. En este modo de operacin el registro del puerto B es tratado como una direccin de puerto externa.

Caractersticas Generales del MC68HC11

Bits de los puertos

Modo de operacin Single Chip y Bootstrap PA0/IC3 PA1/IC2 PA2/IC1

Modo de operacion Expandido y Especial Test

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PD0 PD1 PD2 PD3 PD4 PD5 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 STRA STRB PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

PA3/OC5/IC4/OC1 PA4/OC4/OC1 PA5/OC3/OC1 PA6/OC2/OC1 PA7/PAI/OC1 ADDR8 ADDR9 ADDR10 ADDR11 ADDR12 ADDR13 ADDR14 ADDR15 ADDR0/DATA0 ADDR0/DATAO ADDR1/DATA1 ADDR2/DATA2 ADDR3/DATA3 ADDR4/DATA4 ADDR5/DATA5 ADDR6/DATA6 ADDR7/DATA7 PD0/RxD PD1/TxD PD2/MISO PD3/MOSI PD4/SCK PD5/SS AS R/W PE0/AN0 PE1/AN1 PE2/AN2 PE3/AN3 PE4/AN4 PE5/AN5 PE6/AN6 PE7/AN7

Tabla 1.2 Funciones y seales de las lneas de los puertos

Caractersticas Generales del MC68HC11

Puerto C
Cuando el MCU se encuentra operando en modo de Single Chip, todas las lneas del puerto C estn habilitadas como Entradas/Salidas de propsito general. Las entradas del puerto C son almacenadas en un registro denominado PORTCL, en el momento en que ocurre una transicin reconocida en la lnea STRA del MCU. En caso de que el MCU se encuentre operando en modo Expandido Multiplexado, este puerto se encuentra compartiendo la mitad menos significativa del bus de direcciones y el bus de datos.

Puerto D
Las lneas del puerto D pueden ser usadas como entradas/salidas de propsito general. Estas lneas, adems tienen compartida la funcin de comunicacin, ya sea como puerto de comunicaciones asncrono (SCI) o como puerto de comunicaciones sncrono (SPI). El puerto de comunicaciones asncrono se utiliza como interfase entre el MCU y dispositivos externos. El puerto de comunicaciones sncrono se utiliza para la comunicacin entre dos MCU a alta velocidad o con dispositivos cercanos al MCU.. La lnea PD0 es el receptor de datos asncrono (RxD) La lnea PD1 es el transmisor de datos asncrono (TxD) Las lneas PD2-PD5 estn dedicadas al puerto de comunicaciones sncrono (SPI).

Puerto E
El puerto E es usado como un puerto de entrada de 8 bits de propsito general, pero tambin tiene compartida la funcin de entrada analgica al Convertidor A/D. Las funciones realizadas por las lneas de los puertos como se ve, dependen del modo de operacin del MCU. En la tabla 1.3 se resumen las funciones de cada puerto.

Puerto Puerto A Puerto B Puerto C Puerto D Puerto E

Lneas de entrada 3 8

Lneas de salida 3 8 -

Lneas bidireccionales 2 8 6 -

Funciones compartidas Temporizador Direccionamiento de orden superior Direccionamiento de orden inferior Comunicacin por el SCI y SPI convertidor Analgico / Digital

Tabla 1.3 Resumen de las lneas de los puertos

10

Caractersticas Generales del MC68HC11

1.3 Unidad central de proceso (CPU)


La informacin referente a la unidad Central de proceso (CPU), su Set de instrucciones, arquitectura, modos de direccionamiento y registros, se presenta a continuacin: El CPU fue diseado para poder trabajar y accesar todos los perifricos que se encuentran dentro del MCU. Este MCU est construido para accesar en modo expandido multiplexado hasta 64k bytes de memoria externa sin la necesidad de instrucciones especiales.

1.3.1 Registros de la CPU.


Los registros del MC68HC11, estn dentro del CPU del MCU por lo que no son direccionables como localidades de memoria convencionales. Los registros del CPU se muestran en la figura 1.5
7 15
ACUMULADOR A

ACUMULADOR B

0 0

A:B D IX IY SP PC CCR

DOBLE ACUMULADOR D

15

REGISTRO INDICE X

15

REGISTRO INDICE Y

15

APUNTADOR DE PILA

15

CONTADOR DEL PROGRAMA

REGISTRO DE ESTADO DE CODIGO

C BANDERA DE ACARREO V BANDERA DE SOBREFLUJO Z BANDERA DE CERO N BANDERA DE SIGNO NEGATIVO I BANDERA DE INTERRUPCION GLOBAL H BANDERA DE MEDIO ACARREO X HABILITACION DE INTERRUPCION NO ENMASCARABLE S DESHABILITA EL MODO STOP

Figura 1.5 Registros de la CPU Acumuladores A, B y D Los registros A y B son de propsito general y tienen una longitud de 8 bits, estos registros pueden almacenar, operandos y resultados de operaciones aritmticas, clculo y manipulacin de datos. Algunas instrucciones manejan estos dos acumuladores como si fueran un solo acumulador doble con una longitud de 16 bits. A este acumulador doble se le da el nombre de acumulador D.
11

Caractersticas Generales del MC68HC11

Registro ndice X (IX) La longitud de este registro es de 16 bits. Este registro es del tipo ndice o apuntador, por lo que se utiliza para el direccionamiento base de una localidad de memoria, dentro de los 64 kbytes. A este ndice se le puede agregar un offset para lograr un desplazamiento y obtener una direccin especfica dentro del mapa de memoria. Adems este registro es utilizado como un registro auxiliar en operaciones de divisin o multiplicacin, en las que el dato o los datos tengan una longitud mayor a los 8 bits. Registro Indice Y (IY) El registro ndice IY tiene una longitud de 16 bits y funciona en forma similar al registro IX. Sin embargo este registro no es utilizado en ningn tipo de operacin aritmtica. Las instrucciones que involucran a este registro requieren un byte extra de cdigo, adems de un ciclo extra de tiempo de ejecucin ya que las instrucciones referentes a este registro quedan mas all de la pgina principal de instrucciones y requieren un prebyte. Registro apuntador de Stack (SP) El CPU del M68HC11 tiene un sistema automtico para la utilizacin del stack, el rea de memoria del stack puede ser localizada en cualquier lugar dentro de la memoria disponible del MCU y esta puede ser incluso del tamao de memoria total disponible en el sistema. A continuacin se describe el modo de operacin de esta rea de memoria: El funcionamiento de est rea de memoria, comienza con la introduccin de un dato dentro del Stack, con lo que el registro apuntador de Stack SP es decrementado en 1, as este registro queda apuntando a la prxima localidad de memoria inferior. Cada vez que un dato es sacado del stack, este registro apuntador es incrementado automticamente en 1. La cantidad en que este registro es incrementado o decrementado depende de el numero de bytes que son introducidos o sacados, algunas instrucciones introducen automticamente todos los registros o la prxima direccin a ser ejecutada en el llamado a una rutina, pero por regla por cada introduccin de un dato se debe de sacar otro para as no perder el control de esta rea de memoria. Operaciones del Stack Cuando una subrutina es llamada por una instruccin de salto a subrutina (JSR) o Brinco a subrutina (BSR), la direccin siguiente a la instruccin de salto es automticamente introducida al Stack, introducindose primeramente el byte menos significativo de direccionamiento. Cuando la ejecucin de la rutina es finalizada una instruccin de retorno de subrutina (RTS) es ejecutada, est instruccin regresa el valor de la direccin contenida en el stack, y lo coloca dentro del contador del programa (PC), por lo que la ejecucin contina en la prxima instruccin donde fue llamada la subrutina. Cuando una interrupcin es reconocida, la instruccin que en ese momento se esta ejecutando finaliza normalmente, posteriormente se almacena el valor actual del contador del programa (PC) en el Stack, adems todos los registros del CPU tambin son introducidos al stack, y el programa continua su ejecucin
12

Caractersticas Generales del MC68HC11

en la direccin especificada en el vector de interrupcin. Al finalizar la rutina de interrupcin una instruccin RTI es ejecutada, esta instruccin regresa los valores anteriores a la interrupcin de los registros por lo que no son afectados por la rutina de interrupcin, y el programa continua con su ejecucin en el lugar donde fue interrumpido (ver figura 1.6) Estas son slo algunas de las operaciones del Stack, dentro de sus aplicaciones adems se deben de mencionar el paso de parmetros a subrutinas y el almacenamiento temporal de variables. Contador del programa (PC) El Program Counter (PC) o contador del programa es un registro de 16 bits, el cual contiene la prxima direccin de la instruccin a ser ejecutada. Despus del RESET el contador del programa (PC) es inicializado con alguna de las 6 direcciones posibles de los vectores de RESET dependiendo del modo de operacin y de la causa del reset, de acuerdo a la tabla 1.4.

Tabla 1.4 Localizacin de los vectores de interrupcin en el mapa de memoria. Registro de Banderas o Estado del Programa (CCR) Este registro tiene una longitud de 8 bits, y como su nombre lo indica, nos da un panorama general del estado de ejecucin del programa. Este registro tiene 5 bits de indicacin del estado del programa, los cuales son C, V, Z, N y H, un bit global de habilitacin de interrupciones enmascarables (I), un bit de habilitacin de requerimiento de interrupcin no enmascarble (X) y un bit de deshabilitacin del modo STOP (S). Muchas de las instrucciones del CPU del MC68HC11 actualizan automticamente el registro de banderas, dependiendo del estado del dato que se encuentra manipulando. Por ejemplo la instruccin LDAA (carga al acumulador A) y STAA (almacena el acumulador A), automticamente actualizan los bits N, Z y V de acuerdo al valor contenido en el registro A. Algunas de las instrucciones que no afectan el registro de banderas son: Almacenar o retornar un dato en el stack, sumar los registros A con X, A con Y, etc. En caso de requerir una mayor informacin puede consultar el set de instrucciones del MCU (Ver apndice A). A continuacin se describe cada uno de los bits del registro de banderas Bandera de Acarreo (C) Este bit es puesto en caso de que la unidad lgica aritmtica (ALU), genere un acarreo durante una operacin aritmtica. Otra de las funciones que desempea este bit, es la de indicar que ocurri un error en una operacin de multiplicacin o divisin

13

Caractersticas Generales del MC68HC11

JSR, Salto a subrutina

STACK
$9D = JSR dd Proxima Instr. Programa principal $AD = JSR ff Proxima Instr Programa principal $18 = PRE $AD = JSR ff Proxima Instr Programa principal
SP-2 SP-1 RTN H RTN L Stack

PC

SP SP+1 SP+2 SP+3 SP+4 SP+5 SP+6 SP+7 SP+8 SP+9

CODIGO DE CONDICIONES ACUMULADOR B ACUMULADOR A REGISTRO INDICE (XH) REGISTRO INDICE (XL) REGISTRO INDICE (YH) REGISTRO INDICE (YL) RTN H RTN L

STACK
$BD = JSR hh ll Proxima Instr Programa principal

$8D = BSR rr Proxima Instr. Programa principal

SP-9 SP-8 CODIGO DE CONDICIONES SP-7 ACUMULADOR B SP-6 ACUMULADOR A SP-5 REGISTRO INDICE (XH) SP-4 REGISTRO INDICE (XL) SP-3 REGISTRO INDICE (YH) SP-2 REGISTRO INDICE (YL) SP-1 RTN H SP RTN L
SP-2 SP-1 RTN H RTN L

$3E = WAI

RTN H RTN L

RTN Direccin de la proxima instruccin en el programa principal a ser ejecutada al finalizar la subrutina RTN H Byte mas significativo de la direccin de retorno RTN L Byte menos significativo de la direccin de retorno La parte sombreada muestra la posicin del Stack despues de que la operacin es completada dd Direccin efectiva de 8 bits donde el byte mas significativo es asumido como $00 ff Un offset positivo de 8 bits es sumado al registro indice hh byte de orden alto de una direccin de 16 bits ll byte de orden bajo de una direccin de 16 bits rr ofset con signo relativo (de -128 a +127)

Figura 1.6 Operaciones del Stack en interrupciones y subrutinas

14

Caractersticas Generales del MC68HC11

Tambin las instrucciones de corrimiento y rotacin de mltiples bits utilizan ampliamente esta bandera, ya que facilita estas operaciones. Bandera de Sobreflujo (V). Este bit es puesto cuando una operacin aritmtica causa un sobreflujo, en caso contrario este bit es limpiado. Bandera de cero (Z). El bit cero (Z) es puesto en caso de que en alguna operacin lgica, matemtica o de manipulacin de datos el resultado sea cero. En caso contrario este bit es limpiado. Algunas instrucciones de carga o comparacin que implican una substraccin, afectan a esta bandera. Bandera de signo negativo (N). Al igual que las banderas anteriores, esta es puesta, en caso que en una operacin matemtica, lgica o de manipulacin de datos, el resultado sea negativo, es decir el bit mas significativo es igual a 1. En caso contrario este bit es limpiado. Esta bandera solo resulta de inters cuando se estn manejando datos en complemento a 2, si se manejan slo nmeros positivos, esta bandera puede ser ignorada Bandera de Enmascaramiento de Interrupcin (I). Este bit es una mscara global de solicitudes de interrupcin para los sistemas internos del MCU, en caso de que este bit se encuentre puesto, deshabilita todas las fuentes de interrupcin enmascarable, y en caso de que exista una solicitud de interrupcin, esta queda pendiente, y el MCU contina ejecutando el programa sin atender la interrupcin, hasta que este bit sea limpiado. Despus de cualquier reset, el bit I es puesto automticamente, y solo puede ser limpiado por una instruccin de software. Cuando una interrupcin es reconocida, este bit es puesto antes de saltar a la rutina de atencin y despus de que los registros son guardados en el stack, despus que la rutina ha sido atendida, una instruccin de retorno de interrupcin es ejecutada (RTI) restaurando los valores que los registros tenan antes de la atencin a la interrupcin, as como tambin es limpiada esta bandera para la atencin de la prxima interrupcin. Es decir, en una rutina de atencin a interrupcin este bit es puesto automticamente para evitar el anidamiento de interrupciones, pero nada evita que dentro de la propia rutina pueda existir una instruccin que la limpie para permitir dicho anidamiento. Bandera de Acarreo Intermedio (H). La bandera de acarreo intermedio es colocada en caso de ocurrir dicho acarreo entre los bits 3 y 4, durante una operacin realizada por la unidad lgica aritmtica (ALU), las instrucciones que afectan a esta bandera son ADD, ABA, ADC, en caso contrario esta bandera es limpiada. El uso de esta bandera es requerido en las operaciones en formato BCD. Mscara de Interrupcin (X). Este bit enmascara el requerimiento de una interrupcin en la lnea XIRQ, en caso de que se encuentre puesto, deshabilita las interrupciones de esta entrada. Despus de cualquier reset este bit es colocado automticamente por hardware, y puede ser limpiado mas no puede ser puesto por una instruccin de software. Cuando una interrupcin XIRQ es reconocida, los bits X e I son puestos despus de que los registros son guardados, y posteriormente se salta a la rutina de atencin a la interrupcin. Despus de que una rutina de atencin ha sido ejecutada se reestablecen los valores de los registros, y se limpian las banderas X e I, por medio de la instruccin RTI.

15

Caractersticas Generales del MC68HC11

Bandera de deshabilitacin del modo STOP (S). Al colocar el bit S se deshabilita el modo STOP, as se prev que la instruccin STOP ponga al MCU en condicin de bajo consumo, en el caso de que se ejecute una instruccin STOP cuando se encuentre colocado el bit S el MCU interpreta sta como una instruccin NOP y prosigue con la prxima instruccin. Este Bit es puesto al reinicializar el sistema por cualquier fuente de reset.

1.3.2 Tipos de Datos


El CPU del MC68HC11 soporta los siguientes tipos de datos: uBits individuales. uDatos de 8 bits con signo y sin signo uDatos de 16 bits con y sin signo uFracciones de 16 bits sin signo uDirecciones de 16 bits Un byte se compone de 8 bits y puede ser accesado en cualquier localidad del mapa de memoria del MCU. Una palabra est compuesta por dos bytes consecutivos, donde el byte ms significativo, est localizado en la direccin ms baja de memoria. Este MCU maneja datos de 8 bits, por lo que no requiere de ninguna alineacin para la manipulacin de los datos o instrucciones, como suele ocurrir en las CPU's de 16 bits.

1.3.3 Cdigos y Operandos


Esta familia de microcontroladores usa cdigos de 8 bits, y cada cdigo identifica una instruccin en particular y su modo de direccionamiento. El nmero de bits es una limitante para el nmero de cdigos, ya que con sto slo se pueden tener 256 instrucciones diferentes. Una pgina de instrucciones extra ha sido implementada para ampliar el nmero de instrucciones, por lo que un byte llamado prebyte ha sido adicionado al cdigo. As, una instruccin completa consiste en un prebyte y cualquiera de los cdigos, adems de 1, 2 o 3 operandos, estos operandos contienen informacin necesaria para la correcta ejecucin de la instruccin por la CPU. As, una instruccin completa puede tener una longitud de 1 a 5 bytes. A continuacin se presenta el formato general para una instruccin, donde los elementos encerrados en corchetes son opcionales. [Prebyte] cdigo [operando1] [operando2] [operando3]

1.3.4 Modos de direccionamiento


Este MCU es capaz de manejar 6 modos de direccionamiento de memoria, los cuales son: Inmediato, Directo, Extendido, Indexado, Inherente y Relativo. Todos estos modos de direccionamiento utilizan una direccin efectiva del mapa de memoria, excepto el modo inherente. A continuaqcin se desdcribe cada
16

Caractersticas Generales del MC68HC11

uno de ellos. gModo Inmediato En el modo de direccionamiento inmediato el argumento se encuentra contenido en los bytes siguientes inmediatos al cdigo ejecutable. El nmero de bytes por instruccin en este modo puede variar entre 2 y 4.

Ejemplo: 0100: 86 2F 0102: CE 19 97

LDAA #$2F LDX #$1997

gModo Directo (o de pgina cero). En este modo de direccionamiento, el byte de orden superior de la direccin efectiva de memoria, es asumida como $00, por lo que la direccin del operando est contenida en un slo byte, este tipo de direccionamiento se reduce a los primeros 256 bytes de memoria, a esta rea de memoria se le denomina como pgina 0 Con este modo de direccionamiento se reduce tanto el cdigo del programa como el tiempo de ejecucin del mismo. En muchas aplicaciones esta rea de memoria es reservada para datos, por su velocidad en el manejo de datos y la reduccin del tamao del cdigo.

Ejemplo: 0105: A6 2F 0107: DE 97

LDAA $2F LDX $97

gModo Extendido En el modo de direccionamiento extendido, la direccin efectiva del argumento, es contenida en 2 bytes seguidos del byte de cdigo, por lo que esta instruccin se forma por tres bytes (o 4 en caso de que requiera un prebyte), por lo que se deduce que 1 o 2 bytes son requeridos para el cdigo y 2 para la direccin efectiva.

Ejemplo: 0109: B6 10 00 010C: CE 19 97

LDAA $100 LDX $1997

gModo Indexado En el modo de direccionamiento indexado un offset con una longitud de 8 bytes sin signo esta contenido dentro de la instruccin el cual es sumado al contenido del registro ndice (IX o IY), el resultado de esta suma es la direccin efectiva. Este modo puede requerir de 2 a 5 bytes de longitud por instruccin, dependiendo del requerimiento del prebyte o no.

Ejemplo: 010F: A5 2F 0111: 18 A6 2F

LDAA $2F,X LDAA 47,Y

17

Caractersticas Generales del MC68HC11

gModo Inherente En este modo de direccionamiento, toda la informacin necesaria para ejecutar la instruccin se encuentra contenida en el cdigo. Esta instruccin puede tener 1 o 2 bytes de longitud

Ejemplo: 0114: 4C 0115: 08 0116: 0F 0117: 17 0118: CF

INCA INX SEI TBA STOP

gModo Relativo El modo de direccionamiento relativo es usado por instrucciones de saltos condicionales, o saltos a subrutinas, si la condicin del salto es verdadero un offset con una longitud de 8 bits con signo es sumado al contenido del registro contador del programa (PC), para formar la direccin efectiva del salto. En caso contrario el control del programa prosigue en la siguiente instruccin. La longitud de esta instruccin normalmente es de 2 bytes.

Ejemplo: 0119: 27 FE

BEQ $0119

1.3.5 Conjunto de Instrucciones


En el Apndice A se encuentra el conjunto de instrucciones completo del MC68HC11 as como la informacin relativa a los modos de direccionamiento que admite en cada instruccin, el nmero de bytes que ocupan los ciclos de reloj necesarios para su ejecucin y las banderas que afectan.. etc

1.4 Modos de Operacin del MC68HC11


A continuacin se presenta informacin acerca de los cuatro diferentes modos de operacin del MCU. Los niveles lgicos de las lneas MODA y MODB durante el reset, son los que determinan el modo de operacin del MCU. Los modos Single Chip y Expandido Multiplexado, son llamados modos normales de operacin. En el modo de operacin llamado Single Chip, solo la memoria interna del MCU esta disponible, en modo expandido el circuito integrado accesa a la memoria externa conectada al MCU. Cada uno de estos modos Normales de operacin tienen otro llamado especial, as el modo Bootstrap es una variante del modo Single Chip y el modo Special Test es la variacin del modo expandido multiplexado, estos modos alternativos son los llamados modos especiales de operacin. Estos modos especiales de operacin tienen la opcin de tener acceso a todo el sistema del MCU. g Modo Single Chip

18

Caractersticas Generales del MC68HC11

En este modo de operacin los puertos B y C, adems de las lneas de Strobe A (STRA) y Strobe B (STRB) estn disponibles para Entradas/Salidas de propsito general. En este modo de operacin todo el software necesario para el control del MCU est contenido dentro del mismo circuito integrado. Los vectores de interrupcin y Reset estn disponibles en las localidades de memoria $FFC0 - $FFFF. g Modo Expandido En la operacin en modo expandido, El MCU puede accesar los 64 kbytes de espacio direccionable. Este espacio lo comparte con la memoria interna del MCU. El Bus de expansin para el funcionamiento en modo expandido se realiza con las lneas de los puertos B y C, mientras que las seales de control se realizan con las lneas AS y R/W . El bus de direcciones de orden bajo, y el bus de datos se encuentran multiplexados, compartiendo las mismas lneas, por lo que se requiere de seales auxiliares para establecer cuando stas se encuentran operando como bus de datos y cuando se encuentran operando como bus de direcciones bajo, as como para especificar si se efectuar una lectura o una escritura al rea de memoria, sto se logra mediante las lneas AS (Adress Strobe) y R/W (Read/Write). R/W controla la direccin de transferencia del dato colocado en el bus de datos, mientras que AS nos indica el estado de las lneas del puerto C, ya sea como bus de datos o como bus de direcciones bajo. Las seales R/W y AS se encuentran activas en todos los ciclos del bus, inclusive cuando se encuentra accesando localidades de memoria interna. La figura 1.7 muestra una forma de obtencin del bus de datos y direcciones.
PB7 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 DATA8 LE AS R/W E
DATO7 DATO6 DATO5 DATO4 DATO3 DATO2 DATO1 DATO0

ADDR15 ADDR14 ADDR13 ADDR12 ADDR11 ADDR10 ADDR9 ADDR8 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 OE ADDR7 ADDR6 ADDR5 ADDR4 ADDR3 ADDR2 ADDR1 ADDR0

MCU

74HC373

WE

Figura 1.7 Obtencin del bus de datos y direcciones en modo multiplexado. g Modo Test

19

Caractersticas Generales del MC68HC11

El modo de operacin especial llamado TEST es una variacin del modo expandido multiplexado, este modo de operacin es utilizado principalmente durante la prueba de fbrica, durante la programacin del registro CONFIG, para la calibracin y programacin de la memoria EEPROM, adems de la depuracin de programas durante su realizacin. g Modo BootStrap Cuando el MCU es reinicializado en modo de bootstrap, un pequeo programa interno en ROM es habilitado en la direccin $BF00 - $BFFF. Esta memoria ROM contiene un Programa denominado Bootloader (de carga y ejecucin) el cual cambia los vectores de interrupcin al rea de memoria RAM. El modo Bootstrap es una variacin del modo Single Chip, este programa carga programas de propsito especial al rea de memoria RAM contenida dentro del propio MCU. La forma de operacin de este modo es la siguiente: Cuando se aplica un nivel bajo a la lnea de Reset, y las lneas MODA y MODB se encuentran configurados para modo de bootstrap, el programa "Bootloader" se ejecuta para realizar lo siguiente: | Redirige los vectores de interrupcin al rea de memoria RAM | Inicializa el puerto de comunicaciones SCI | Carga un programa a travs del puerto de comunicaciones serie asncrono (Puede utilizarse una computadora personal como transmisor del programa). La longitud del programa a cargar dentro del MCU, depende de la cantidad de memoria RAM interna del MCU. Despus de cuatro caracteres de retardo, o despus de recibir la ultima direccin de memoria RAM a cargar, el control del MCU pasa al programa cargado a la direccin $0000. Nota: Basados en este modo de operacin, se pens en un mtodo para lograr que el control del MCU pasara al rea de memoria EEPROM interna del MCU, ya que si el primer carcter que recibe el MCU por el puerto de comunicaciones (SCI) es $00, el control del programa pasa al rea de memoria EEPROM. Para poder obtener un $00 en el puerto serie de comunicaciones, no basta con conectar una resistencia entre la entrada del puerto serie y tierra, ya que este puerto reconoce un cero como una transicin de "1" a "0" lgico, el mtodo utilizado se describir ms adelante en detalle.

1.5 Memoria interna del MCU


El modo de operacin en que se encuentra operando el MCU, es el que determina el mapa de memoria, y si es posible o no accesar memoria externa. En la figura 1.8 se presenta el mapa de memoria del MC68HC11E1 El mapa de memoria del MCU muestra que internamente tiene 512 bytes de memoria EEPROM y 512 bytes de memoria RAM. Las reas de memoria en modo expandido o normal son las mismas, por lo que para evitar conflictos en modo expandido, se recomienda colocar la memoria externa en un sitio no utilizado por los registros o por al rea de memoria interna del MCU. Otro de los mtodos posibles para
20

Caractersticas Generales del MC68HC11

evitar este tipo de conflictos es deshabilitar la memoria interna, ya sea RAM o EEPROM (si es que se tiene) por medio del registro de control (CONFIG).
$0000 0000 EXT $1000
1000 103F BLOQUE DE REGISTROS
512 BYTES DE EEPROM
VECTORES DE

EXT

00FF

512 BYTES DE RAM

B600 $B600 EXT B7FF EXT


BF00 BFFF

MODO ESPECIAL

BFC0

BFFF

12 KBYTES DE ROM EPROM

$D000

VECTORES DE INTERRUPCION EN
MODO NORMAL

D000

FFC0

$FFFF MODO CIRCUITO SENCILLO MODO EXPANDIDO MODO BOOTSTRAP ESPECIAL TEST

FFFF

FFFF

MAPA DE MEMORIA

Fig 1.8 Mapa de memoria del MC68HC11E1 Como se ilustra en la figura 1.8 la memoria RAM es colocada en la localidad $0000 del mapa de memoria del MCU. Pero esta localidad puede ser modificada y colocada en cualquier localidad de memoria con una paginacin de 4 Kbytes de memoria. es decir puede ser ubicada en las localidades ($x000), donde x puede variar de 0 a F, esta paginacin se logra haciendo una escritura al registro INIT. El bloque de registros de 64 bytes es localizado en la direccin $1000 despus del reset, y puede tambin ser relocalizado en cualquier pgina de 4 Kbytes de memoria dentro del mapa. Las localidades de memoria donde pueden ser ubicados estos registros son ($x000) donde al igual que en la localizacin de la memoria RAM x puede variar de 0 a F. En caso que la memoria RAM y los registros se encuentren en la misma pgina de memoria, los primeros 64 bytes no son utilizables, la tabla 1.5 muestra los 64 registros adems de su direccin y los bits de control que los componen. El MCU posee un sistema, de prioridad de hardware, por lo que los registros tienen prioridad sobre la RAM, y la RAM tiene prioridad sobre la ROM. Cuando una fuente de baja prioridad es localizada en la misma direccin de una fuente de alta prioridad, una accin de Escritura/Lectura a esta localidad resulta a una Escritura/Lectura del dispositivo de mayor prioridad. Por ejemplo si el bloque de registros, y la memoria RAM se encontraran en la misma rea de memoria, solo el bloque de registros puede ser accesado, y los 64 bytes de memoria RAM permanecen deshabilitados. Si la memoria RAM y ROM se encuentran localizadas en la misma rea de memoria la RAM es la que tiene prioridad.
21

Caractersticas Generales del MC68HC11

El contenido de la memoria RAM puede ser conservado durante perodos de inactividad del MCU por dos mtodos: | El mtodo por software est basado en el modo STOP del MCU. Este mtodo detiene todos los relojes, siempre que se encuentre conectada la alimentacin al MCU, en este mtodo el MCU consume muy poca corriente, del orden de microamperes, pero conservando los valores de la memoria RAM del MCU. El segundo mtodo de conservacin de los datos en la memoria RAM es el de la aplicacin de un voltaje de conservacin de valores en la lnea MODB/VSTBY el cual proporciona la energa necesaria para la conservacin de los datos en la memoria RAM en caso de que no exista actividad del MCU o ausencia del voltaje de alimentacin en la lnea VDD

El modo de operacin bootstrap tiene acceso a un programa llamado bootloader, este programa se encuentra ubicado en la memoria ROM de este MCU en la direccin $BF00 - $BFFF, este pequeo programa es habilitado nicamente si el MCU reconoce el modo de operacin Bootstrap despus del reset. En dispositivos (Tales como el MC68HC11E1) que contienen memoria EEPROM (512 Bytes), sta est localizada en la direccin $B600 - $B7FF y tiene un ciclo de lectura similar al de una memoria ROM interna. Estos 512 bytes de EEPROM no pueden ser relocalizados en otra direccin. Esta memoria EEPROM puede ser programada o borrada por software y la ayuda de una bomba de carga interna que proporciona el voltaje necesario para la programacin de esta memoria, para el funcionamiento de esta bomba de carga no es necesario la aplicacin de otro voltaje, ya que funciona con el voltaje de 5 volts de alimentacin del MCU.

22

Caractersticas Generales del MC68HC11

Tabla 1.5 Bloque de registros y bits de control del MC68HC11


$1000 $1001 $1002 $1003 $1004 $1005 $1006 $1007 $1008 $1009 $100A $100B $100C $100D $100E $100F $1010 $1011 $1012 $1013 $1014 $1015 $1016 $1017 $1018 $1019 $101A $101B $101C $101D $101E $101F $1020 DDC7 0 0 PE7 FOC1 OC1M7 OC1D7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 Bit 7 Bit 15 BIT 7 OM2 DDC6 0 0 PE6 FOC2 OC1M6 OC1D6 14 6 14 6 14 6 14 6 14 6 14 6 14 6 14 6 14 6 OL2 DDC5 PD5 DDD5 PE5 FOC3 OC1M5 OC1D5 13 5 13 5 13 5 13 5 13 5 13 5 13 5 13 5 13 5 OM3 DDC4 PD4 DDD4 PE4 FOC4 OC1M4 OC1D4 12 4 12 4 12 4 12 4 12 4 12 4 12 4 12 4 12 4 OL3 DDC3 PD3 DDD3 PE3 FOC5 OC1M3 OC1D3 11 3 11 3 11 3 11 3 11 3 11 3 11 3 11 3 11 3 OM4 DDC2 PD2 DDD2 PE2 0 0 0 10 2 10 2 10 2 10 2 10 2 10 2 10 2 10 2 10 2 OL4 DDC1 PD1 DDD1 PE1 0 0 0 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 OM5 DDC0 PD0 DDD0 PE0 0 0 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 Bit 0 Bit 8 bIT 0 OL5 STAF PC7 PB7 PCL7 STAI PC6 PB6 PCL6 CWOW PC5 PB5 PCL5 HNDS PC4 PB4 PCL4 OIN PC3 PB3 PCL3 PLS PC2 PB2 PCL2 EGA PC1 PB1 PCL1 INVB PC0 PB0 PCL0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PORTA Reservado PIOC PORTC PORTB PORTCL Reservado DDRC PORTD DDRD POTE CFORC OC1M OC1D TCNT(High) TCNT(Low) TIC1(High) TIC1(Low) TIC2(High) TIC2(Low) TIC3(High) TIC3(Low) TOC1(High) TOC1(Low) TOC2(High) TOC2(Low) TOC3(High) TOC3(Low) TOC4(High) TOC4(Low) TI4/O5(Hi) TI4/O5(Lo) TCTL1

23

Caractersticas Generales del MC68HC11


$1021 $1022 $1023 $1024 $1025 $1026 $1027 $1028 $1029 $102A $102B $102C $102D $102E $102F $1030 $1031 $1032 $1033 $1034 $1035 $1036 $1037 $1038 $1039 $103A $103B $103C $103D $103E $103F ADPU Bit 7 ODD RBOOT RAM3 TIOP --CSEL 6 EVEN SMOD RAM2 0 --IRQE 5 MDA RAM1 OCCR --DLY 4 BYTE IRVNE RAM0 CBYP --CME 3 ROW PSEL3 REG3 DISR NOSEC 0 2 ERASE PSEL2 REG2 FCM NoCop CR1 1 EELAT PSEL1 REG1 FCOP RomOn CR0 Bit 0 EPGM PSEL0 REG0 TCON EEON EDG4B OC1I OC1F TOI TOF DDRA7 Bit 7 SPIE SPIF Bit 7 TCLR R8 TIE TDRE R7/T7 CCF Bit 7 Bit 7 Bit 7 Bit 7 0 MBE EDG4A OC2I OC2F RTII RTIF PAEN 6 SPE WCOL 6 T8 TCIE TC R6/T6 0 6 6 6 6 0 0 EDG1B OC3I OC3F PAOVI PAOVF PAMOD 5 DWOM 0 5 SCP1 0 RIE RDRF R5/T5 SCAN 5 5 5 5 0 ELAT EDG1A OC4I OC4F PAII PAIF PEDGE 4 MSTR MODF 4 SCP0 M ILIE IDLE R4/T4 MULT 4 4 4 4 PTCON EXCOL EDG2B I4/O5I I4/O5F 0 0 DDRA3 3 CPOL 0 3 RCKB WAKE TE OR R3/T3 CD 3 3 3 3 BPRT3 EXROW EDG2A IC1I IC1F 0 0 I4/05 2 CPHA 0 2 SCR2 0 RE NF R2/T2 CC 2 2 2 2 BPTR2 T1 EDG3B IC2I IC2F PR1 0 RTR1 1 SPR1 0 1 SCR1 0 RWU FE R1/T1 CB 1 1 1 1 BPRT1 T0 EDG3A IC3I IC3F PR0 0 RTR0 Bit 0 SPR0 0 Bit 0 SCR0 0 SBK 0 R0/T0 CA Bit 0 Bit 0 Bit 0 Bit 0 BPRT0 PGM TCTL2 TMSK1 TFLG1 TMSK2 TFLG2 PACTL PACNT SPCR SPSR SPDR BAUD SCCR1 SCCR2 SCSR SCDR ADCTL ADR1 ADR2 ADR3 ADR4 BPROT EPROG Reservado Reservado OPTION COPRST PPROG HPRIO INIT TEST1 CONFIG

Tabla 1.5 (Continuacin)

1.6 Reset e Interrupciones


24

Caractersticas Generales del MC68HC11

En esta seccin se describen con mayor detalle los eventos que tienen lugar cuando ocurre una interrupcin, ya sea por reset o por atencin a una interrupcin. En forma global, una operacin de RESET o interrupcin, carga el registro PC (Program Counter) con un valor que se encuentra colocado en el vector de interrupcin asociado a sta, as en caso de que ocurra una interrupcin, la ejecucin del programa salta a la direccin que se encuentra en el vector de interrupcin. En caso de que se aplique un reset al MCU, este detiene inmediatamente la ejecucin de la instruccin que se encuentra ejecutando y carga al PC con el valor del vector de interrupcin del RESET. El proceso de reset del MCU comienza con la inicializacin de los registros de control interno del MCU, carga el valor del vector de reset y coloca las banderas de interrupcin para deshabilitarlas. En caso de que una interrupcin sea reconocida, el proceso de interrupcin suspende temporalmente la ejecucin normal del programa, y el control de ste pasa a la rutina de atencin a la interrupcin. Despus de que una rutina de atencin ha sido atendida, el control del programa regresa al programa principal, sin alterar los registros del CPU y prosigue con la ejecucin normal del programa principal.

1.6.1 Tipos de Reset


Existen 4 fuentes de reset que son reconocidos por el MCU los cuales son: : : : : Power On Reset (POR) Reset Externo (RESET) El sistema de monitoreo del MCU (COP) El monitor del reloj

El reset externo y el Power On Reset comparten el mismo vector de interrupcin, el sistema de monitoreo del MCU y el monitor del reloj contienen cada uno su propio vector de interrupciones. n Power On Reset (POR) Una transicin positiva en la lnea VDD genera un reset del tipo Power On Reset (POR), o reset de encendido el cual es usado slo en condiciones de encendido, este tipo de reset no puede ser utilizado para la deteccin de una cada o interrupcin de energa. n Reset Externo El CPU del MC68HC11 es capaz de distinguir entre un fuente de reset interna y una externa, sto lo logra monitoreando el estado de la lnea de reset. El circuito que monitorea la lnea de reset, hace la distincin entre un reset interno y uno externo en base al tiempo en que la lnea de reset permanece en estado lgico bajo, por lo que en caso de que la lnea reset permanezca menos de 7 ciclos de reloj, en estado bajo se considera que el reset fue del tipo interno, en caso contrario hace la consideracin que el reset fue del tipo externo. No es recomendable la colocacin de un arreglo RC (Resistencia Capacitor) para provocar un retardo en bajo de la lnea reset, ya que la constante de tiempo de este arreglo puede confundir el tipo de reset que fue requerido, sin embargo se puede escoger una constante RC lo suficientemente grande, para forzar el tipo de reset a externo. n Reset del COP Este MCU incluye un sistema denominado COP (Computer Operating Properly), el cual monitorea
25

Caractersticas Generales del MC68HC11

continuamente el correcto funcionamiento del sistema. Este monitor opera de la siguiente manera: Cuando es habilitado este sistema, un contador de carrera libre es inicializado, e interrumpe su cuenta si un programa est siendo ejecutado normalmente, de esta forma este contador es reinicializado por lo que este contador no puede alcanzar su cuenta mxima. En caso de que este contador alcance su cuenta mxima este sistema lo interpreta como una falla del sistema y es aplicado un reset al MCU. El estado del bit NOCOP, en el registro CONFIG es el que determina la habilitacin o no del sistema de monitoreo (COP). CONFIG $103F Bit 7 --------NOSEC NOCOP --EEON

Para la habilitacin del sistema COP se prosigue con la siguiente secuencia: 1.- Primeramente se limpia el bit de control NOCOP del registro CONFIG para habilitar el sistema. 2.- Se escribe un $55 en el registro COPRST para la activacin e inicializacin de su timer. 3.- Posterior a sto se debe de aplicar un reset para que el registro CONFIG pueda leerse y entonces queda habilitado el sistema (COP). En caso de que se desee limpiar este sistema se debe de escribir un $AA a el registro COPRST. COPRST $103A Bit 7 7 6 5 4 3 2 1 0

n Reset del monitor del reloj. El circuito del monitor del reloj, es un dispositivo que nos ayuda a determinar, si el reloj del sistema se encuentra funcionando adecuadamente. El principio de funcionamiento de este monitor est basado en un retardo provocado por un arreglo interno RC, en caso de que este circuito detecte una variacin de la frecuencia, entre los retardos provocados por el arreglo RC este circuito puede generar un reset. Este monitor del reloj puede ser habilitado o deshabilitado por el bit de control CME del registro OPTION. OPTION $1039 Bit 7 ADPU CSEL IRQE DLY CME -CR1 CR0

Este monitor es principalmente usado como un respaldo del sistema (COP). Este sistema reconoce una variacin en la frecuencia del reloj de alrededor de 10 khz como un error del reloj. La utilizacin de este monitor del reloj es recomendable siempre que la frecuencia interna del MCU sea mayor de 200 Khz.

1.6.2 Efectos del Reset


26

Caractersticas Generales del MC68HC11

En caso de que una condicin de reset sea reconocida, los registros internos y los bits de control son forzados a un estado de inicio definido. El vector del reset puede situarse en diferentes localidades de memoria dependiendo del modo de operacin y de la fuente del reset.

Tabla 1.6 Vectores de Reset

q Efectos del reset en los diferentes sistemas del MCU


q Efectos en la CPU Despus de un reset, la CPU obtiene del vector apropiado, la direccin donde se comenzar a ejecutar el programa, los bits de enmascaramiento X e I, son colocados en el registro de banderas (CCR) para deshabilitar cualquier requerimiento de interrupcin, el bit S tambin es puesto para deshabilitar el modo de operacin STOP. Posteriormente comienza la ejecucin del programa en la direccin especificada en el vector de interrupciones adecuado. Otros registros del CPU como el Stack, A, B etc. quedan indeterminados despus del reset. q El Mapa de Memoria Despus del reset, el registro INIT es inicializado en $01, por lo que en el rea de memoria del MCU donde se localiza la RAM interna es a partir de $0000, y el rea de memoria donde se localizan los registros de control es a partir de $1000. Para el MC68HC11E1, el registro CONFIG contiene un $0D, por lo que el rea de memoria donde se localiza la EEPROM se localiza a partir de la direccin $B600. q Timer Durante el reset, el contador de carrera libre es iniciado en $0000 y su velocidad es igual a la del reloj E, los registros de comparacin OCx son cargados con $FFFF. Todos los registros de captura de eventos quedan indeterminados. Todas las banderas de interrupcin son limpiadas y todas las interrupciones del timer son deshabilitadas. q Interrupcin de Tiempo Real La bandera de interrupcin de tiempo real (RTIF) es limpiada y la interrupcin de hardware es enmascarada. q Acumulador de pulsos. El sistema de acumulador de pulsos es deshabilitado en el reset, por lo que la lnea queda configurada como una entrada de propsito general. q Computer Operating Properly (COP). El sistema COP es habilitado si el bit de control NOCOP en el registro CONFIG esta limpio, y deshabilitado si el bit NOCOP est puesto. En el reset este sistema se encuentra deshabilitado.
27

Caractersticas Generales del MC68HC11

q Interfase de Comunicaciones Serie (SCI) La condicin de reset en el sistema SCI es independiente del modo de operacin, en el reset, el registro de control de la velocidad de transmisin BAUD, es inicializado a $04. Todas las interrupciones de transmisin y recepcin son enmascaradas y deshabilitadas. Las Lneas del puerto D se habilitan como entradas/salidas de propsito general. q Interfase Perifrica Serie (SPI). El sistema SPI es deshabilitado por el RESET. Las lneas de este puerto se configuran como Lneas de entrada/salida de propsito general. q Convertidor Analgico Digital La configuracin del convertidor Analgico/Digital se encuentra indeterminada despus del reset; se deshabilita el sistema del convertidor A/D y la bandera de fin de conversin es limpiada. q Resets y prioridades de interrupcin El reset y las interrupciones tienen una prioridad establecida por hardware. La prioridad, determina cual servicio de interrupcin es atendido primeramente cuando ocurre ms de un requerimiento de interrupcin al mismo tiempo. Las primeras seis interrupciones de mayor prioridad son no-enmascarables, y su prioridad se muestra a continuacin:
Prioridad 1.2.3.4.5.6.Fuente de Reset POR o Reset externo Reset del monitor de reloj Reset del sistema COP Interrupcin por la lnea XIRQ Interrupcin por cdigo de operacin ilegal Interrupcin por Software (SWI)

En la tabla 1.7 se muestran las prioridades de las interrupciones enmascarables comenzando con la de mayor prioridad. Cualquiera de las interrupciones enmascarables puede ser ascendida de prioridad, por la escritura apropiada a los bits de control PSEL[3:0]. Los vectores de interrupcin no son afectados por la variacin en el nivel de prioridad de la interrupcin. El registro que controla la prioridad de estas interrupciones es HPRIO. HPRIO $103C
Bit 7 RBOOT 6 SMOD 5 MDA PSEL [3,0] 0000 4 IRVNE 3 PSEL3 2 PSEL2 1 PSEL1 0 PSEL0

Prioridad de la fuente de Interrupcin Sobreflujo del contador de carrera libre


28

Caractersticas Generales del MC68HC11

0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Sobreflujo del acumulador de pulsos Detector de flanco del acumulador de pulsos Transferencia serie completada (SPI) Sistema serie SCI Reservado (predeterminado IRQ )
IRQ

(lnea externa o I/O paralela)

Interrupcin de tiempo real Entrada de captura de eventos 1 Entrada de captura de eventos 2 Entrada de captura de eventos 3 Salida de comparacin de eventos 1 Salida de comparacin de eventos 2 Salida de comparacin de eventos 3 Salida de comparacin de eventos 4 Entrada de captura de eventos 4 / Salida de comparacin 5

Tabla 1.7 Prioridad de las fuentes de interrupciones enmascarables en forma ascendente

1.6.3 Interrupciones.
El MCU contiene 18 vectores de interrupcin, los cuales soportan 22 fuentes de interrupcin, las 15 fuentes de interrupcin enmascarables son generadas por los sistemas perifricos del MCU. Estas interrupciones son reconocidas cuando una mscara de interrupcin global (I) en el registro CCR est limpia. Las tres fuentes de interrupcin no enmascarables aparte de las fuentes de reset son como ya se mencion: t Cdigo de operacin ilegal t Interrupcin de Software (SWI) t Lnea XIRQ. En la tabla 1.8 se muestran las diferentes fuentes de interrupcin y la asignacin de vectores a cada una de stas.
Direccin de los vectores FFC0,C1- FFD4,D5 FFD6,D7 Reservado Sistema de comunicacin SCI Fuente de interrupcin Mscara del registro de banderas -I Mscara local --

29

Caractersticas Generales del MC68HC11


- SCI registro de recepcin de datos lleno - SCI sobreescritura del registro de recepcin - SCI Registro de transmisin de datos libre - SCI Fin de Transmisin - SCI detector de IDLE FFD8,D9 FFDA,DB FFDC,DD FFDE,DF FFE0,E1 FFE2,E3 FFE4,E5 FFE6,E7 FFE8,E9 FFEA,EB FFEC,ED FFEF,EF FFF0,F1 FFF2,F3 FFF4,F5 FFF6,F7 FFF8,F9 FFFA,FB FFFC,FD FFFE,FF SPI Transferencia serie de datos completada Detector de flanco del acumulador de pulsos Sobreflujo del acumulador de pulsos Sobreflujo del contador de carrera libre Entrada de captura de eventos 4 / Salida de comparacin de eventos 5 Salida de comparacin de eventos 4 Salida de comparacin de eventos 3 Salida de comparacin de eventos 2 Salida de comparacin de eventos 1 Entrada de captura de eventos 3 Entrada de captura de eventos 2 Entrada de captura de eventos 1 Interrupcin de tiempo real Lnea externa IRQ Lnea externa XIRQ Interrupcin de Software Cdigo ilegal (no reconocido) Interrupcin del COP Falla del Reloj RESET I I I I I I I I I I I I I X Ninguna Ninguna Ninguna Ninguna Ninguna RIE RIE TIE TCIE ILIE SPIE PAII PAOVI TOI I4/O5I OC4I OC3I OC2I OC1I IC3I IC2I IC1I RTII Ninguna Ninguna Ninguna Ninguna NOCOP CME Ninguna

Tabla 1.8 Vectores de interrupcin y Reset del MCU La interrupcin del SCI contiene varias mscaras locales, que indican cual de todos los procesos ha realizado solicitud de interrupcin. Por lo que nicamente requiere de un vector de interrupcin.

1.6.4 Proceso de reconocimiento de interrupcin.


Una interrupcin puede ser reconocida en cualquier momento, despus de que la mscara de interrupcin local, habilita la interrupcin y la mscara global es limpiada (I), En el caso de interrupciones enmascarables. Cuando una fuente de interrupcin es reconocida, la instruccin que se encuentra ejecutando es finalizada normalmente. Antes de comenzar a ejecutar la rutina de atencin a la interrupcin, los registros de la CPU son introducidos en el Stack en el siguiente orden:

30

Caractersticas Generales del MC68HC11


Localidad de memoria (Stack) SP SP-1 SP-2 SP-3 SP-4 SP-5 SP-6 SP-7 SP-8 Registros de la CPU PCL PCH IYL IYH IXL IXH ACCA ACCB CCR

Tabla 1.9 Orden de almacenamiento de los registros en el Stack Antes de que cualquier registro sea introducido al stack el bit X e I son puestos para deshabilitar la ejecucin de una interrupcin dentro de la rutina de atencin que es atendida y para evitar posibles anidamientos. Al finalizar la rutina de atencin a la interrupcin, la instruccin RTI es ejecutada, y los registros guardados en el stack son obtenidos en forma inversa de como fueron introducidos, por lo que el control del programa contina en la prxima instruccin despus de que fue interrumpido el programa sin alterar el valor de los registros. g Requerimiento de interrupcin no enmascarable ( XIRQ ) Este tipo de interrupcin no enmascarable, se utiliza en casos extremos, en los cuales se pierde el control del programa o se detecta una interrupcin de la energa. Al inicio, el Bit X del registro de banderas es puesto, por lo que esta fuente de interrupcin se encuentra deshabilitada, la forma de habilitacin de esta interrupcin se hace mediante una instruccin TAP. Esta instruccin, adems de transferir el contenido del registro de banderas(CCR) al registro A, limpia el bit de habilitacin de XIRQ . Despus de habilitar esta interrupcin, sta no puede ser deshabilitada por software, y slo permanece deshabilitada en el caso de que la solicitud de interrupcin se realice en una rutina de atencin a una interrupcin de este mismo tipo. g Interrupcin por deteccin de cdigo ilegal Debido a que no todos los posibles cdigos o secuencia de cdigos se encuentran definidos por el MCU, un circuito de deteccin de cdigo ilegal es incluido, el cual genera una interrupcin en caso de que sea detectado un cdigo no definido. El proceso de interrupcin es muy similar a las dems fuentes de interrupcin. g Interrupcin de Software La instruccin SWI genera una interrupcin de software, esta interrupcin es del tipo no enmascarable.
31

Caractersticas Generales del MC68HC11

La ejecucin de una interrupcin SWI deshabilita las interrupciones enmascarables, cuando una interrupcin de software se comienza a ejecutar, las otras fuentes de interrupcin son deshabilitadas hasta que la interrupcin de software es finalizada, o hasta que la bandera I es limpiada por software del registro CCR. h Interrupcin enmascarable (lnea IRQ ) La estructura de la interrupcin enmascarable del MCU puede ser extendida para la atencin de ms de una fuente de interrupcin, ya que esta lnea puede configurarse en modo OR alambrada. Cuando un evento externo dispara la interrupcin, la bandera asociada a sta es puesta para prevenir cualquier anidamiento de interrupciones.

1.6.4 Modos de operacin de bajo consumo de energa.


Una de las caractersticas ms atractivas de este microcontrolador, para su aplicacin en diseos porttiles (alimentados por medio de Bateras), son sus modos de operacin de bajo consumo. A continuacin se presenta un resumen de las dos posibles formas de ahorro de energa por software. Los modos de operacin STOP y WAIT, suspenden la operacin del CPU, hasta que una interrupcin o reset es reconocida. La condicin WAIT suspende el proceso del programa, y reduce el consumo de energa a un nivel intermedio. La condicin STOP congela todos los relojes del MCU, y reduce el consumo de energa al mnimo, pero esta energa es suficiente para la conservacin de los datos de la memoria RAM. Siempre que la alimentacin sea conservada. i Modo de operacin WAIT El cdigo WAI pone al MCU en modo de espera, esta instruccin, hace que los registros sean guardados en el Stack y el proceso del CPU es suspendido hasta que una interrupcin es reconocida. La interrupcin puede ser externa ( IRQ o XIRQ ) o cualquiera de las interrupciones internas generadas por el MCU. La cantidad de energa que consume el MCU depende de la aplicacin que se le de al MCU, ya que la conservacin de energa depende de que sistemas se encuentren activos, y cuales de los mltiples relojes del sistema, pueden ser apagados. i Modo de operacin STOP En caso de que se ejecute la instruccin STOP, cuando el bit S del registro de condicin de cdigo (CCR) ha sido limpiado, el MCU se pone en la condicin de STOP. En caso de que la bandera de Stop (Bit S del CCR) no sea cero esta instruccin es tratada como una instruccin NOP. El modo de condicin STOP tiene el mnimo consumo de energa. Este modo de conservacin de energa se basa en la congelacin de todos los relojes incluyendo el circuito oscilador del cristal. Para salir del modo STOP y regresar al proceso normal, un nivel bajo debe ser detectado en alguna de las interrupciones externas ( IRQ o XIRQ ) o en la lnea de RESET. El CPU y los estados de las lneas no son cambiadas por el modo de operacin STOP y los datos en stas
32

Caractersticas Generales del MC68HC11

se mantienen. Si se usa la lnea IRQ como un medio de regresar del modo STOP el bit de enmascaramiento global debe ser limpiado. En cambio, si se utiliza la lnea XIRQ para regresar de la condicin de stop, se puede realizar de dos modos: P En caso de que el bit X se encuentre puesto al aplicar un nivel bajo en esta lnea, el control del programa continuar en la prxima instruccin inmediatamente despus de su reconocimiento sin requerimiento de la rutina de atencin a la interrupcin. P Si el bit X es limpiado, una rutina de atencin a interrupcin, es ejecutada normalmente despus del la aplicacin del nivel bajo en el lnea XIRQ.

33

Los Puertos Paralelos de Entrada/Salida

3.- Puertos paralelos de Entrada/Salida.


El microcontrolador MC68HC11E1 contiene 38 lneas de Entrada/Salida distribudas en 4 puertos de 8 lneas y un puerto de 6 lneas. Como se discuti anteriormente estos puertos contienen funciones compartidas, las cuales dependen del modo de operacin en que se encuentre operando el MCU. Estas funciones se resumieron en la tabla 1.3. Las funciones de cada lnea y puerto dependen del modo de operacin. Al reinicializar el sistema, las diferentes lneas de entrada/salida quedan configuradas con un nivel especificado, las lneas de entrada quedan en general configuradas como de alta impedancia, por lo que el dato correspondiente se encuentra indeterminado. Algunas lneas tienen un nivel conocido durante el reset, por lo que sus valores se encuentran definidos como 1's o 0's lgicos, otras de estas lneas no son afectadas por el reset.

3.1 EL PUERTO A
El puerto A tiene 3 lneas de salida (PA4,PA5,PA6), 3 lneas de entrada (PA0,PA1,PA2) y dos lneas bidireccionales (PA7,PA3), este puerto se encuentra compartiendo las funciones del TIMER. PORTA $1000 Bit 7 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

3.2 EL PUERTO B
En modo de Single Chip o Bootstrap las lneas del puerto B son lneas de salidas de propsito general. En modo extendido, las lneas del puerto B son las lneas de orden alto del bus de direcciones. PORTB $1004 Bit 7 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

3.3 EL PUERTO C
En modo de operacin normal (Bootstrap o Single Chip), el registro DDRC es inicializado por el reset en $00, por lo que el puerto C es inicializado como un puerto de entrada de 8 bits de alta impedancia. El registro DDRC nos proporciona la configuracin del puerto C, ya sea como lneas de entrada (mediante la escritura de un "0" lgico) o como lneas de salida ("1" lgico). En modo de operacin expandido o TEST el puerto C contiene las lneas del bus de direcciones de orden bajo multiplexados con el bus de datos. DDRC $1007
34

El puerto de Comunicacin Serie Asncrono

Bit 7 DDC7 PORTC $1003 Bit 7 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 DDC6 DD65 DDC4 DDC3 DDC2 DDC1 DDC0

3.4 EL PUERTO D
En todos los modos de operacin los bits del puerto D (D0:D5) pueden ser usados como entradas/salidas de propsito general o como lneas de comunicacin serie, ya sea por el SCI o por el SPI. Durante el reset, las lneas del puerto D estn configuradas como lneas de entrada de alta impedancia, sto debido a que el reset inicializa el registro DDRD con $00. El registro DDRD proporciona la configuracin del puerto D, en forma similar a DDRC DDRD $1009 Bit 7 --DDD5 DDD4 DDD3 DDD2 DDD1 DDD0

PORTD $1008 Bit 7 0 0 PD5 PD4 PD3 PD2 PD1 PD0

3.5 EL PUERTO E
El puerto E es usado como un puerto de entrada de propsito general (digital), o alternativamente como la entrada al convertidor analgico digital. En caso de que algunas lneas del puerto E estn siendo utilizadas como entradas de propsito general, y otras como entradas al convertidor analgico/digital. El registro PORTE, no debe ser ledo durante la porcin de muestreo del proceso de conversin analgico-digital.

PORTE $100A Bit 7 PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0

Puertos de Comunicacin Serie


Este MCU contiene dos subsistemas independientes de comunicacin serie. Un sistema de comunicacin
35

El puerto de Comunicacin Serie Asncrono

serie asncrono (SCI) y un sistema serie de comunicacin sncrono (SPI), en estas notas solamente se describe el primero.

4.- El Puerto de Comunicacin Serie Asncrono (SCI)


La interfase de comunicaciones serie (SCI), es un Transmisor/Receptor Universal Serie Asncrono (UART). El formato sin retorno a cero (NZR) de comunicaciones que utiliza consiste en: un bit de inicio, 8 o 9 bits de datos y un bit de stop. Varias velocidades de transmisin se encuentran disponibles. El transmisor y el receptor del SCI son independientes, pero ambos utilizan el mismo formato y velocidad de transmisin de datos.

4.1 Formato de los datos en la transmisin


La transmisin del formato serie requiere de las siguientes condiciones: q q q q La lnea en estado alto, antes de que cualquier recepcin o transmisin tenga lugar. Un bit de inicio (cero lgico) transmitido o recibido, el cual indica el inicio de cada caracter. El dato se transmite o se recibe comenzando con el bit menos significativo LSB Un bit de Stop (uno lgico) es usado para indicar el fin de la palabra transmitida ( Una palabra en este caso est compuesta por un bit de inicio, un cdigo carcter de 8 o nueve bits y un bit de stop). q Un carcter de BREAK

4.2 Operacin de transmisin.


El sistema del transmisor SCI incluye un registro paralelo (SCDR) de transmisin de datos, y un registro de corrimiento serie. El contenido del registro de corrimiento serie slo puede ser escrito a travs del registro paralelo de transmisin de datos. La salida del registro de corrimiento serie es aplicada a lalnea TxD. En la figura 4.1 se muestra el diagrama a bloques del sistema de transmisin del SCI.

36

El puerto de Comunicacin Serie Asncrono

reloj Velocidad del de transmision (Solo escritura) SCDR Tx BUFFER Registro de corrimiento de 10 o 11 bits H (8) 76543210 L 8
LINEA DE BUFFER Y CONTROL

PD1 TxD

forza la linea como salida


CONTROL LOGICO

TDRE TIE
SCCR2 CONTROL 2 DEL SCI

TC TCIE Requerimiento de Interrupcin del sci


REQUERIMIENTO DE SCI RX

Figura 4.1 Diagrama de bloques del transmisor del SCI.

4.3 Operacin de recepcin


Durante la recepcin la secuencia de transmisin es hecha a la inversa. El registro de corrimiento serie recibe el dato y lo transmite al registro paralelo (SCDR) de recepcin de datos, hasta que se completa el dato en el registro de corrimiento, esta doble transferencia de datos entre el registro de corrimiento y el registro paralelo permite que se est cargando un dato en el registro de corrimiento, mientras que otro dato es ledo en el registro paralelo.

37

El puerto de Comunicacin Serie Asncrono

RECEPTOR DE VELOCIDAD DE COMUNICACION

RECUPERA DATO

RIE

RIE

Figura 4.2 Diagrama de bloques del Receptor (SCI).

4.4 Deteccin de error del SCI.


Este sistema puede detectar tres tipos de errores, los cuales son: q Sobreescritura del dato en el registro paralelo (SCDR) de transferencia de dato. q presencia de ruido en la recepcin del dato. q Error de "encuadre" o error de bit de paro (framming error). Estos errores se asocian a las banderas OR, NF y FE respectivamente, y el bit es puesto de acuerdo al error que fue reconocido, estos bits se encuentran en el registro SCSR.

4.5 Registros del SCI


38

El puerto de Comunicacin Serie Asncrono

5 registros estn asociados al puerto de comunicaciones serie asncrono, de los cuales tres controlan el estado del puerto., Estos son SCCR1, SCCR2 y BAUD. Un registro proporciona el dato paralelo a transmitir o recibir denominado SCDR .El registro SCSR nos proporciona el estado del puerto serie. A continuacin se describe cada uno de estos registros SCCR1 Registro de control de comunicacin serie 1 Este registro nos da un control sobre la longitud de la palabra, la forma de transmisin y una llave para habilitar al SCI. SCCR1 $102C Bit 7 R8 T8 -M WAKE ----

R8 : Bit 8 del dato recibido Si el bit M es puesto, R8 almacena el noveno bit del dato que fue recibido T8 : Bit 8 del dato a ser transmitido Si el bit M es puesto, T8 almacena el noveno bit del dato que ser transmitido M : Modo (Selecciona el formato del dato) 0 = Bit de inicio, 8 bits de dato, 1 bit de stop 1 = Bit de inicio, 9 bits de dato, 1 bit de stop WAKE: Activar por direccin de marca o paro 0 = Activar por Reconocimiento de lnea de parada 1 = Activar por marca de direccin (Bit mas significativo del dato en alto) BITS [5, 2:0] No utilizados Siempre se leen Ceros SCCR2 Registro de control de comunicacin serie 2 Este registro de control provee los bits de habilitacin o deshabilitacin de funciones individuales del SCI. SCCR2 $102D Bit 7 TIE TCIE RIE ILIE TE RE RWU SBK

TIE : Habilitacin de interrupcin por transmisin 0 = Deshabilita interrupcin de TDRE (Registro de transmisin vaco) 1 = Requerimiento de interrupcin del SCI cuando la bandera de TDRE se encuentra puesta. TCIE : Habilitacin de interrupcin por transmisin de dato completada 0 = Deshabilita interrupcin de transmisin Completada (TC) 1 = Requerimiento de interrupcin del SCI cuando la bandera TC se encuentra puesta.
39

El puerto de Comunicacin Serie Asncrono

RIE : Habilitacin de interrupcin de recepcin 0 = Interrupciones RDRF y OR Deshabilitadas 1 = Requerimiento de interrupcin del SCI Cuando la Bandera RDRF o OR se encuentran puestas. ILIE : Habilitacin de interrupcin por lnea parada (idle) 0 = Interrupcin por lnea de paro deshabilitada. 1 = Requerimiento de interrupcin si la bandera IDLE se encuentra puesta TE : Habilitacin de transmisin Cuando el bit TE vara de 1 a 0 un caracter de espera es puesto en seguida 0 = Transmisin deshabilitada 1 = Transmisin Habilitada RE : Habilitacin de recepcin 0 = Recepcin deshabilitada 1 = Recepcin habilitada RWU : Control de activacin de recepcin 0 = Recepcin normal del SCI 1 = Habilitacin por "wakeup" e inhibicin de la interrupcin de recepcin. SBK : Enva Break 0 = Apagado del generador de break. 1 = Encendido del generador de cdigo Break

SCSR Registro de estado de comunicacin serie El registro SCSR (Registro de estados del SCI) nos da informacin generada por el circuito de interrupciones para obtener la fuente de interrupcin particular del SCI.

SCSR $102E Bit 7 TDRE TC RDRF IDLE OR NF FE --

TDRE : Bandera de Transmisin de datos Vaco Esta bandera es puesta cuando el SCDR est vaco. La limpieza de esta bandera, se efecta con la lectura del registro SCSR cuando TDRE est puesto y la escritura al SCDR 0 = SCDR Ocupado 1 = SCDR Vaco

TC : Bandera de transmisin finalizada Esta bandera es puesta cuando la transmisin est parada (idle esto es no hay dato prembulo o se transmite un break). La limpieza de esta bandera, se efecta con la lectura de SCSR, cuando la bandera TC se encuentra puesta y la escritura al registro SCDR
40

El puerto de Comunicacin Serie Asncrono

0 = Transmisor ocupado 1 = Transmisor parado (idle) RDRF : Bandera de registro de recepcin de datos lleno. Esta bandera es puesta, si un caracter se encuentra listo para ser ledo en el registro SCDR. La limpieza de esta bandera se efecta con la lectura del registro SCSR con la bandera RDRF puesta y la lectura del registro SCDR. 0 = Registro SCDR Vaco 1 = Registro SCDR Lleno IDLE : Bandera de lnea parada (idle) detectada. Esta bandera es puesta cuando la lnea RxD est parada (idle). Esta lnea es deshabilitada si RWU=1. Esta lnea se puede limpiar leyendo SCSR cuando IDLE esta puesto y posteriormente leer SCDR. 0 = Lnea RxD activa 1 = Lnea RxD parada idle. OR : Bandera de error de Sobreescritura Esta bandera es puesta en caso de que un nuevo caracter es recibido, antes de que el caracter anteriormente recibido es ledo del SCDR. La limpieza de la bandera OR, se efecta por la lectura del registro SCSR con el bit OR puesto , y la lectura de SCDR. 0 = No ocurri sobreescritura 1 = Sobreescritura detectada. NF : Bandera de Error de Ruido Esta bandera es puesta, si la mayora de las muestras lgicas detectadas no presentan una definicin unnime. 0 = Decisin unnime (No se detecto ruido) 1 = Se detecto ruido FE : Error de cuadratura Esta bandera es puesta, en caso de que un cero sea detectado donde se espera un bit de paro. 0 = Bit de stop es detectado 1 = Es detectado un cero en el bit de paro Bit 0 : No implementado, siempre se lee como cero BAUD Registro de velocidad de transmisin. BAUD $102B
TCLR -SCP1 SCP0 RCKB SCR2 SCR1 SCR0

Este registro es usado para seleccionar diferentes velocidades de transmisin del sistema SCI, la velocidad de transmisin es seleccionada por dos grupos de bits, los bits SCP[0,1] determinan una primera velocidad base, la cual puede ser disminuda por SCR[2,1,0], la forma en que se divide la frecuencia se muestra en las tablas 4.1 y 4.2
Seleccin de SCP1 preescalador SCP0 Divisor del reloj interno Frecuencia del cristal (Mhz) 4 4.9152 8 8.3886 12

41

El Sistema del Temporizador 0 0 1 1 0 1 0 1 1 3 4 13 62500 20833 15625 4800 76800 25600 19200 5907 125000 41667 31250 9600 131072 43691 32768 10082 187500 62500 46875 14423

Tabla 4.1 Velocidad de transmisin (SCP1, SCP2) SCR[2:0] Divide el preescaler Alta velocidad de transmisin (Salida del preescaler de la tabla anterior) 131072 000 001 010 011 100 101 110 111 1 2 4 8 16 32 64 128 131072 65536 32768 16384 8192 4096 2048 1024 76800 76800 38400 19200 9600 4800 2400 1200 600 32768 32768 16384 8192 4096 2048 1024 512 256 19200 19200 9600 4800 2400 1200 600 300 150 4800 4800 2400 1200 600 300 150 75 --

Tabla 4.2 Seleccin de la velocidad de transmisin.

4.6 Estado de banderas e interrupciones.


Este sistema de comunicaciones tiene dos banderas de estado (TE y RE), el estado de estas banderas, puede ser ledo alternativmente por software o por interrupciones. Un bit de habilitacin de interrupcin local puede ser puesto para habilitar a cada condicin de estado para generar un requerimiento de interrupcin cuando una condicin es reconocida. Los estados del SCI que pueden generar un requerimiento de interrupcin son: q Registro receptor de datos lleno (RIE) q Sobreescritura del registro de recepcin (RIE) q Registro transmisor de datos listo o vaco (TIE) q Transmisin completada (TCIE) q Deteccin de lnea parada (ILIE) El SCI nicamente se encuentra asociado a un vector de interrupcin, por lo que si se desea saber que evento solicit la interrupcin, es necesario consultar las banderas para determinar cual ocurri. Esta consulta se realiza por software en la rutina de atencin a la interrupcin del SCI.

5.- El Sistema del Temporizador


42

El Sistema del Temporizador

OSCILADOR Y GENERADOR DE RELOJ SEAL E E/4 RELOJ INTERNO (PH2) PREESCALER (/ 2, 4, 16, 32) SPR [1:0]

SPI

PREESCALER (/ 1, 3, 4, 13) SCP[1:0]

PREESCALER ( / 1, 2, 4, .... 128) SCR[2:0] / 16

CLOCK RECEPTOR DEL SCI

CLOCK TRANSMISOR DEL SCI E/2


6

ACUMULADOR DE PULSOS PREESCALER ( / 1, 2, 4, 8) RTR[1:0] INTERRUPCION DE TIEMPO REAL

E/2

PREESCALER (/ 1, 4, 8, 16) PR [1:0]

PREESCALER ( / 1, 4, 16, 64 ) CR [1:0]

Q
TCNT

FF2

Q Q Q
FORZA A RESET POR COP

IC / OC

RESET DEL

Figura 5.1 Sistema del Temporizador. El sistema del timer est compuesto por un reloj principal, el cual proporciona 5 canales de divisin (ver figura 5.1). Uno de los canales del reloj principal contiene un contador de carrera libre de 16 bits, este contador se puede programar para variar su velocidad, el control de velocidad est dado por dos bits de control. Las principales actividades del sistema del timer hacen referencia al contador de carrera libre; en el reset este contador es iniciado en $0000 y se comienza a incrementar despus de la aplicacin del reset, la cuenta de este contador aumenta hasta $FFFF, en ese momento se consigue la mxima cuenta, y el contador es reciclado a $0000, activando en este momento la bandera de sobreflujo. Este contador no puede ser reinicializado, cambiado o interrumpir su cuenta, ya que es un registro de solo lectura. El sistema de captura/comparacin de eventos est compuesto por 3 canales de captura de eventos, 4 canales de comparacin y un canal programable como comparacin o captura de eventos. Cada una de las tres lneas de captura de eventos funciona como un registro de captura (Latch) de 16 bits y cada una de las lneas de comparacin tienen un registro comparador de 16 bits. Cada una de estas funciones del timer tiene asociado su propio vector de interrupcin, incluyendo la interrupcin de sobreflujo y la interrupcin de tiempo real RTI. El acumulador de pulsos contiene un contador de 8 bits con seleccin de flanco. el acumulador de pulsos puede operar en modo de conteo de eventos internos o en modo de contador de eventos externos. Su forma de operacin es la siguiente:
43

El Sistema del Temporizador

Durante el modo de operacin como contador de eventos externos, el contador del acumulador de pulsos es incrementado, cuando un flanco activo es detectado en la entrada. Durante el modo de operacin de contador de eventos internos, una fuente de reloj incrementa el contador, cuando una seal de entrada es reconocida. La interrupcin de tiempo real RTI es una interrupcin peridica programable, la cual es ejecutada peridicamente, el perodo con que esta rutina es ejecutada es seleccionada por dos bits de control. El reloj del sistema COP WatchDog es independiente del contador de carrera libre, el sistema COP genera un pulso, el cual es deshabilitado por una secuencia de software correcta, en caso de que no exista ningn problema. En caso contrario se genera una secuencia de reset.

5.1 Entradas de captura de eventos


La figura 5.2 muestra el diagrama de bloques del sistema de captura/comparacin de eventos. Las lneas del puerto A incluyen el bloque de control lgico para funciones del timer y para entradas/salidas de propsito general. La funcin de captura de eventos, congela el tiempo en que un evento externo ocurre, esto lo realiza por la captura del valor del contador de carrera libre. El valor capturado es almacenado en dos registros de 8 bits. Los bits de control y estado asociados a la funcin de captura de eventos se encuentran contenidos en los registros PACTL, TCTL2, TMSK1 y TFLG1, los cuales se describen a continuacin: TCTL2 Registros de control del timer 2 Los bits de este registro son usados para programar la funcin de captura de eventos (IC), para detectar un flanco en particular en la lnea correspondiente de entrada,(IC1, IC2, IC3, IC4) cada una de estas entradas pueden ser configuradas independientemente para detectar flancos de subida, bajada o ambos, de acuerdo a la tabla 5.1 TCTL2 $1021 Bit 7
EDG4B EDG4A EDG1B EDG1A EDG2B EDG2A EDG3B EDG3A

44

El Sistema del Temporizador

Reloj E del MCU POR 1, 4, 8, o 16 PR1 PR0 TCNT (HI) TCNT (LO) TOF Bus del timer para otros sistemas 8 BIT 7 FOC1 OC2F TOC2 (HI) TOC2 (LO) OC3F TOC3 (HI) TOC3 (LO) OC4F TOC4 (HI) TOC4 (LO) FOC4 14/O5F TI4/O5(HI) TI4/O5(LO) I4/O5 IC1I LATCH 16 BITS CLK TIC1(HI) TIC1(LO) IC2F BIT 1 IC3I IC3F Estado de las banderas Habilitacin de interrupcines Control de las lneas del puerto A 1 BIT 0 IC1F IC2I BIT 2 OC5 FOC5 I4/O5I BIT 3
PA3/OC5/ IC4/OC5

LIBRE DE 16 BITS

Al acumuladoor de pulsos

Bus del timer de 16 bits


OC1I OC1F TOC1 (HI) TOC1 (LO)

PA7/OC1 /PAI

OC2I FOC2 OC3I FOC3 OC4I

7 BIT 6
PA6/OC2 /OC1

BIT 5 5 BIT 4

PA5/OC3 /OC1

PA4/OC4

LATCH 16 BITS CLK

LATCH 16 BITS CLK TIC2 (LO) TIC2(HI) LATCH 16 BITS CLK TIC3(HI) TIC3(LO)

Fig. 5.2 Diagrama de bloques de Comparacin/Captura.

EDGxB 0 0 1 1

EDGxA 0 1 0 1

Configuracin Deshabilita captura Captura solo en flanco de subida Captura solo en flanco de bajada Captura en ambos flancos

Tabla 5.1 Control de flanco de las lneas IC TIC1-TIC3 Registro de captura de eventos
45

El Sistema del Temporizador

En caso de que un flanco sea reconocido, el valor del contador de carrera libre es transferido al registro de captura de eventos, el registro al que es transferido este valor depende de cual lnea de entrada fu la que reconoci el flanco.
TIC1 $1010 - $1011 BIT15 BIT7 TIC2 $1012 - $1013 BIT15 BIT7 TIC3 $1014 - $1015 BIT15 BIT7 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0

TI4/O5 Lnea programable de Captura/comparacin de eventos El bit 3 del puerto A puede ser programado como captura o comparacin de eventos, el registro TI4/05 se comporta como un registro de comparacin de 16 bits o como registro de captura del timer, la forma en que opera este registro depende de como se encuentre programado el bit I4/O5 del registro PACTL.
TI4/O5 $101E - $101F BIT15 BIT7 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0

5.2 Salida de comparacin.


La funcin de una salida de comparacin, es usada para programar una accin que se desea que ocurra en un instante especfico, cuando el contador de 16 bits alcanza el mismo valor que un registro de comparacin. Para cada una de las 4 lneas de salida de comparacin, existe un registro de 16 bits, el valor de este registro es comparado con el valor del contador de carrera libre, en todos los ciclos de ste. Cuando un registro de comparacin es igual al valor del contador, una bandera de estado es puesta. Esta bandera puede ser usada para iniciar una accin en la lnea de salida de comparacin. Si el valor del contador es igual al registro de comparacin, una bandera es puesta en el registro TFLG1, si la interrupcin correspondiente est habilitada en el registro de enmascaramiento de interrupciones TMSK1 una solicitud de interrupcin es generada. TOC1-TOC4 Registros de salida de comparacin. Todos los registros de salida de comparacin son de 16 bits, cada uno de stos es inicializado a $FFFF
46

El Sistema del Temporizador

en el reset.
TOC1 $1016 - $1017 BIT15 BIT7 T0C2 $1018 - $1019 BIT15 BIT7 T0C3 $101A - $101B BIT15 BIT7 T0C4 $101C - $101D BIT15 BIT7 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0 14 6 13 5 12 4 11 3 10 2 9 1 BIT8 BIT0

TCNT Registro contador del TIMER Este registro es de slo lectura y tiene una longitud de 16 bits. El registro TCNT corre a una velocidad dada por el reloj principal y los bits del divisor (preescaler)
TCNT $100E - $100F BIT15 BIT7 BIT8 BIT0

TCTL1 Registro de control del Timer 1 Los bits de este registro especifican la accin que se ejecutar en la lnea de comparacin reconocida de acuerdo a la tabla 5.2. La accin de la salida de comparacin puede ser: } } } } Colocar la salida a Cero lgico Colocar la salida a uno lgico Efectuar un cambio en la salida. Desconexin de la lnea del sistema del timer

TCTL1 $1020 bit 7 OM2 OL2 OM3 OL3 OM4 OL4 OM5 OL5

47

El Sistema del Temporizador

OMx 0 0 1 1

OLx 0 1 0 1

Accin en la lnea de salida de comparacin Desconexin de la lnea del sistema del timer Cambio del estado en la lnea de salida Limpia la salida (0 lgico) Coloca un 1 lgico en la salida

Tabla 5.2 Accin de salida de las lnea de comparacin TMSK1 Registro de mscaras de interrupcin del timer 1 Este registro de 8 bits, es usado para habilitar o deshabilitar las interrupciones de entrada de captura de eventos o salida de comparacin. Para habilitar alguna de sta, se deber colocar el bit correspondiente en uno lgico. TMSK1 $1022 Bit 7 OC1I OC2I OC3I OC4I I4/O5I IC1I IC2I IC3I

TMSK2 Registro de mscaras de interrupcin del timer 2 Este registro de 8 bits es usado para habilitar o deshabilitar la interrupcin del sobreflujo del timer y la interrupcin de tiempo real. Los bits de control del preescaler del contador de carrera libre se encuentran includos en este registro(PR0, PR1), el preescalador es puesto de acuerdo a la tabla 5.3 TMSK2 $1024 Bit 7 TOI RTII PAOVI PAII 0 0 PR1 PR0

TOI ; Habilitacin de interrupcin de sobreflujo del temporizador 0 = Deshabilita la interrupcin de sobreflujo del timer 1 = Requerimiento de interrupcin cuando la bandera TOF es puesta a uno RTII ; Habilitacin de interrupcin de tiempo real 0 = Deshabilita interrupcin de tiempo real 1 = Requerimiento de interrupcin cuando la bandera RTIF es puesta a uno PAOVI ; Habilitacin de interrupcin de sobreflujo del acumulador de pulsos 0 = deshabilita la interrupcin de sobreflujo del acumulador de pulsos 1 = Requerimiento de una interrupcin del acumulador de pulsos cuando la bandera PAOVF sea puesta a uno PAII ; Habilitacin de interrupcin del flanco de entrada al acumulador de pulsos
48

El Sistema del Temporizador

0 = Inhibe el modo de operacin por interrupciones, y opera en modo de poleo 1 = Requerimiento de interrupcin cuando un flanco seleccionado es detectado a la entrada del acumulador de pulsos Bits[3:2] ; No utilizados (siempre se leen ceros) PR[1:0] ; Seleccin del preescalador del temporizador (Ver tabla 5.3) PR[1:0] 00 01 10 11 Preescalador 1 4 8 16

Tabla 5.3 Divisin del preescalador TFLG1 Registro de banderas de interrupcin del timer 1 Los bits de este registro indican cuando un evento en el sistema del timer ha ocurrido. Este registro permite operar el timer en base a interrupciones o poleo (consulta continua por software). En caso de que se quiera operar por poleo, el bit asociado a la entrada o salida debe ser consultado por software. Para trabajar por interrupciones el MCU consulta las banderas en forma asncrona, en caso de que de la bandera est puesta, un requerimiento de interrupcin es generado. La limpieza de las banderas, se realiza por la escritura de un uno en la posicin correspondiente al bit. TFLG1 $1023 Bit 7 OC1F OC2F OC3F OC4F I4/OC5F ICIF IC2F IC3F

TFLG2 Registro de banderas de interrupcin del timer 2 Los bits de este registro, indican cuando un evento como la interrupcin de tiempo real, interrupcin de sobreflujo o acumulador de pulsos a ocurrido. En caso de que se encuentren habilitadas las mscaras de interrupcin de estas banderas, y los bit's sean puestos por alguna condicin que se reconoci, se genera un requerimiento de interrupcin. Para limpiar estas banderas se debe escribir un 1 en el bit correspondiente, en caso de que se requiera otro requerimiento de interrupcin. TFLG2 $1025 Bit 7 TOF RTIF PAOVF PAIF 0 0 0 0

TOF : Bandera de interrupcin de sobreflujo del temporizador


49

El Sistema del Temporizador

Es puesta cuando el TCNT cambia de $FFFF a $0000 RTIF : Bandera de interrupcin de tiempo real Este bit es puesto automticamente a uno al finalizar un perodo de la interrupcin RTI PAOVF : Bandera de interrupcin de sobreflujo del acumulador de pulsos Esta bandera es colocada, cada vez que el contador del acumulador de pulsos pasa de $00 a $00. PAIF : Bandera de interrupcin de entrada de flanco al acumulador de pulsos Esta bandera es puesta cada vez que un flanco seleccionado es detectado por la entrada del acumulador de pulsos. Bits[3:0] : No implementados (Siempre se leen ceros).

5.3 Interrupcin de tiempo real


La interrupcin de tiempo real es usada para generar una interrupcin por hardware en un perodo fijo de tiempo, el tiempo de ejecucin de esta interrupcin es controlada y configurada por 2 bits en el registro de acumulador de pulsos (PACTL). La fuente de reloj para la funcin de la interrupcin de tiempo real (RTI) es un reloj de carrera libre, el cual no puede ser parado o interrumpido, excepto por el reset, este reloj causa que el tiempo entre 2 RTI sucesivos sea constante e independiente del software. La habilitacin de esta interrupcin esta dada por el bit TOI y RTII, en el registro TMSK2

5.4 Acumulador de pulsos


El MCU posee un contador de 8 bits, este contador puede ser configurado como un contador de eventos externos, o como un acumulador de tiempo controlado por una seal externa. En el modo de contador de eventos, el contador de 8 bits es incrementado por una seal externa, aplicada a la lnea del acumulador de pulsos. En modo de acumulador de pulsos, un reloj interno es aplicado al acumulador de 8 bits. Pero esto slo mientras es detectado un nivel de entrada en la lnea del acumulador de pulsos PAI. PACTL Registro de control del acumulador de pulsos En este registro se encuentran los bits de habilitacin del acumulador, y el modo de operacin. PACTL $1026 Bit 7 DDRA7 PAEN PAMOD PEDGE DDRA3 I4/05 RTR1 RTR0

DDRA7 : direccin del bit 7 del puerto A 0 = Entrada 1 = Salida PAEN : Habilitacin del sistema de acumulador de pulsos 0 = Acumulador de pulsos deshabilitado. 1 = Acumulador de pulsos habilitado
50

El Sistema del Temporizador

PAMOD : Modo de operacin del acumulador de pulsos 0 = Modo de contador de eventos (la entrada acta como reloj) 1 = Acumulador de tiempo controlado por una seal externa (la entrada acta como habilitadora del reloj) PEDGE : Selector de la transicin activa. 0 = el acumulador de pulsos responde a transiciones de bajada 1 = el acumulador de pulsos responde a transiciones de subida DDRA3 : Direccin del bit 3 del puerto A 0 = Entrada 1 = Salida I4/O5 : entrada de captura 4/Salida de Comparacin 5 0 = Habilitacin de salida de comparacin 5 1 = Habilitacin de funcin de Captura de eventos 4 RTR : [1:0] Seleccin de la velocidad de la interrupcin de tiempo real RTI. La velocidad esta dada por la tabla 5.4 RTR[1:0] 00 01 10 11 Cristal de 8 Mhz (E= 2Mhz) 4.096 ms 8.192 ms 16.384 ms 32.768 ms Tabla 5.4 Velocidad de la interrupcin RTI PACNT Registro contador del acumulador de pulsos Este registro de lectura/escritura contiene la cuenta de los eventos externos ocurridos en la lnea PAI o la cuenta del contador de carrera libre en modo de acumulador de pulsos. El registro PACNT puede ser ledo o escrito en cualquier momento. La cuenta de este registro no es afectada por el RESET PACNT $1027 Bit 7 BIT 7 6 5 4 3 2 1 BIT0

Estado del acumulador de pulsos y bits de habilitacin de interrupcin Los bits de control del acumulador de pulsos se encuentran en los registros TMSK2 y TFLG2, los cuales fueron descritos anteriormente. Los bits PAOVI y PAOVF son los bits de habilitacin de la interrupcin del acumulador de pulsos y la banderas de sobreflujo respectivamente. El bit PAIF es la bandera de la entrada del flanco de habilitacin y su respectiva habilitacin de interrupcin PAII

51

El Convertidor Analgico / Digital

6.- El Convertidor Analgico - Digital A/D.


El sistema del convertidor analgico/digital contiene un convertidor analgico digital de 8 bits de resolucin, 8 canales de entrada multiplexados, la conversin es realizada por aproximaciones sucesivas. El sistema del convertidor A/D, no requiere de un circuito externo de retencin y muestreo. Este convertidor puede funcionar en sincronizacin con el reloj interno E, o con un oscilador interno del tipo RC. El diagrama a bloques del convertidor se muestra en la figura 6.1.
PE0 AN0

Convertidor D/A de 8 bits con


PE1 AN1

cir. de muestreo y retencin

VRH

PE2 AN2

VRL
Registro de aproximaciones sucesivas y control

PE3 AN3

PE4 AN4

PE5 AN5

Bus interno de datos

PE6 AN6

PE7 AN7

Control del A/D ADCTL

Interfase entre resultados y registros

Resultado1 ADR1

Resultado2 ADR2

Resultado ADR3

Resultado ADR4

Figura 6.1 diagrama de bloques del converidor A/D El sistema del convertidor analgico digital, se puede dividir en 4 bloques funcionales y estos son: ~ El multiplexor analgico. ~ El convertidor Analgico/Digital. ~ El control del convertidor. ~ Registros de almacenamiento de resultados A continuacin se describir cada uno de los bloques que componen el sistema del convertidor A/D.

6.1 El multiplexor
El multiplexor es el encargado de seleccionar una de las 8 posibles entradas para su conversin, la seleccin de la entrada, es controlada por los bits CD,CC,CB y CA del registro ADCTL (ver tabla 6.1). Los 8 canales de conversin del puerto E son lneas unidireccionales para las entradas analgicas al multiplexor. Las lneas de este puerto tambin pueden ser usadas como lneas de entrada digital. Pero la lectura de estas entradas digitales no es recomendable durante el tiempo de muestreo del convertidor.
52

El Convertidor Analgico / Digital


Canal CD CC CB CA Seal Resultado en ADRx si MULT =1 ADR1 ADR2 ADR3 ADR4 ADR1 ADR2 ADR3 ADR4 -ADR1 ADR2 ADR3 ADR4

1 2 3 4 5 6 7 8 9-12 13 14 15 16 * Usado en pruebas de fabrica

0 0 0 0 0 0 0 0 1 1 1 1 1

0 0 0 0 1 1 1 1 0 1 1 1 1

0 0 1 1 0 0 1 1 * 0 0 1 1

0 1 0 1 0 1 0 1 * 0 1 0 1

AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 Reservado VRH* VRL* (VRH)/2* Reservado*

Tabla 6.1 Asignacin de los canales del convertidor A/D

6.2 El convertidor Analgico/Digital


La conversin de una entrada analgica ocurre en este bloque. Como ya se mencion anteriormente, la tcnica de conversin usada es del tipo de aproximaciones sucesivas. Por lo que para cada conversin es necesaria una secuencia de comparacin, comenzando con el bit ms significativo. Cada comparacin determina el valor de cada bit en el registro de aproximaciones sucesivas (SAR). El resultado de cada comparacin es almacenado en el registro de aproximaciones sucesivas, cuando una secuencia de conversin es completada, el contenido del SAR es transferido al registro de resultados correspondiente. 6.2.1 El control del convertidor Todas las operaciones del convertidor A/D son controladas por los bits del registro ADCTL. Los bits de este puerto pueden seleccionar la entrada analgica a convertir, el modo de conversin de un slo canal o mltiples canales y el modo de conversin continua o sencilla. Estos bits nos pueden indicar adems el estado de la conversin. 6.2.2 Registros de almacenamiento de resultados. Cuatro registros de 8 bits almacenan el resultado de las conversiones, ADR1, ADR2, ADR3 y ADR4. La bandera de resultados CCF indica cuando un resultado vlido esta presente en los registros de resultados. 6.2.3 Reloj del convertidor A/D
53

El Convertidor Analgico / Digital

El convertidor A/D puede usar dos tipos de reloj para la sincronizacin, uno de estos relojes es el reloj base de tiempo interno E o puede sincronizarse con un oscilador interno del tipo RC. En caso de que la frecuencia del reloj E sea inferior a 750 Khz es recomendable utilizar el reloj RC.

6.3 Secuencia de conversin


La operacin de conversin A/D se realiza en secuencias de 4 conversiones, cada secuencia de conversin involucra una conversin en 4 canales. La bandera de fin de conversin CCF se activa hasta que se realizan 4 conversiones y con ello indica que se encuentran disponibles los resultados de las conversiones en los registros de resultados ADR1, ADR2, ADR3 y ADR4. En la figura 6. 2 se muestra una secuencia tpica de conversin.
Reloj E

12 ciclos

MSB 4 ciclos

Bit6

Bit5

Bit4

Bit3

Bit2

Fin

Muestreo de la seal analgica

Conversin del primer canal y actualizacin de ADR1

Conversin del segundo canal y actualizacin de ADR2

Conversin del tercer canal Actualizacin de ADR3

Conversin del cuarto canal y Actualizacin de ADR4

32

64

96

128
ciclos de E

Figura 6.2 Diagrama de tiempo de conversin analgico - digital 6.3.1 Encendido del convertidor. El bit 7 del registro OPTION controla el encendido del convertidor A/D. Limpiando el bit ADPU del registro OPTION se apaga, es decir se desenergiza y deshabilita el sistema del convertidor A/D. Poniendo el bit ADPU el sistema del convertidor es habilitado y encendido.

OPTION $1039 Bit 7 ADPU CSEL IRQE DLY CME -CR1 CR0

6.3.2 Proceso de conversin Una secuencia de conversin A/D comienza con un ciclo de reloj E despus de una escritura al registro al registro ADCTL. Una entrada de voltaje igual a VRL ,convierte a $00 el valor de la entrada y una entrada de voltaje igual a VRH convierte este voltaje a $FF sin indicacin de sobreflujo, de manera que cualquier entrada entre VRL y VRH producir un valor entre $00 y $FF; as estas lneas pueden ser usadas para
54

El Convertidor Analgico / Digital

conversin radiomtrica.

6.4 Modos de operacin


El multiplexor permite seleccionar una de las 16 seales analgicas, 8 de stas corresponden a las lneas del puerto E, tres son puntos de referencia internos y cinco estn reservados. A continuacin se muestra la disposicin de los canales del convertidor en relacin con los bits de seleccin de los canales a convertir CDCA. 6.4.1 Operacin de un solo canal. Existen 2 modos de operacin de conversin de un slo canal: Si SCAN = 0 el canal seleccionado es convertido 4 veces, almacenando lo resultados convertidos en ADR1 a ADR4, despus de que la cuarta conversin es completada, toda la actividad del convertidor es parada hasta la escritura de un nuevo comando en el registro de control ADCTL Si SCAN = 1 indica una secuencia de conversin continua del canal seleccionado, con la quinta conversin almacenada en el registro de almacenamiento de resultados ADR1, la sexta en ADR2 y as sucesivamente. 6.4.2 Operacin de mltiples canales. Existen 2 modos de operacin: Si SCAN = 0 un grupo de 4 canales seleccionados son convertidos en una sola secuencia de conversin. El primer resultado es almacenado en el registro ADR1 y el cuarto es almacenado en el registro ADR4. Despus de que el cuarto canal es convertido, la actividad del convertidor se detiene. Si SCAN = 1 una secuencia de conversin continua es iniciada en el grupo de 4 canales seleccionado, guardando los resultados en ADR1 a ADR4, despus de que la cuarta conversin es finalizada, se recomienza con el primer canal, reescribiendo sobre ADR1 hasta ADR4.

6.5 Registro de control y estado del convertidor (ADCTL)


A travs de este registro se pueden controlar los eventos del convertidor, as como monitorear el estado de ste Una escritura a este registro inicia una secuencia de conversin. Para salir de una conversin en proceso, es necesario una escritura a este registro, con lo que una nueva secuencia de conversin es iniciada inmediatamente.

ADCTL $1030 Bit 7 CCF -SCAN MULT CD CC CB CA

CCF : Bandera de Fin de conversin


55

El Convertidor Analgico / Digital

Esta bandera es puesta cuando los registros que almacenan el resultado de la conversin contienen un dato vlido. Cada vez que el registro ADCTL es sobrescrito este bit es limpiado automticamente (Puesto a Cero) y una secuencia de conversin es iniciada. SCAN: Control de modo continuo. Si este bit de control es limpiado una secuencia de conversin es iniciada, de modo de que nicamente se realiza una secuencia de conversin. Si este bit es puesto a uno, la secuencia de conversin es ejecutada continuamente. MULT: Control de mltiples canales o canal sencillo. Si este bit es puesto a cero, el sistema del convertidor A/D es configurado para realizar la conversin de nicamente un canal especificado por los bits CD-CA. Si este bit es puesto a1, el sistema del convertidor es configurado para realizar la conversin consecutiva de cuatro canales elegidos, y el resultado es colocado en el registro correspondiente al canal que fue convertido. CD-CA: Estos bit's son los encargados de seleccionar el canal a convertir en modo de conversin sencilla. En modo de mltiple conversin, nicamente se utilizan los bits CD y CC para indicar que grupo de cuatro canales se convertir.

6.6 Registros de resultados del convertidor A/D (ADR1, ADR2, ADR3 y ADR4)
Estos 4 registros de slo lectura, almacenan el resultado de la conversin de 8 bits como se describi arriba. Los datos del resultado del convertidor A/D son vlidos cuando la bandera CCF est puesta, indicando que una secuencia de conversin ha sido completada. ADR1 $1031 Bit 7 ADR2 $1032 Bit 7 ADR3 $1033 Bit 7 ADR4 $1034 Bit 7 6 5 4 3 2 1 Bit 0 6 5 4 3 2 1 Bit 0 6 5 4 3 2 1 Bit 0 6 5 4 3 2 1 Bit 0

56

Вам также может понравиться