110
UNIVERSIDAD AUTONOMA METROPOLITANA Plantel Iztapalapa DESARROLLO DE LA TARJETA EVBU DESDE EL PUNTO DE VISTA TEORICO Asesor: OSCAR YAÑEZ SUAREZ Alumna: MA. DE LOURDES CUAUTLE CARDENAS Matricula: 85324536 Carrera: INGENIERIA BlOMEDlCA Area de Concentración: INSTRUMENTACION MEDICA ELECTRONICA FEBRERO DE1994

UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

  • Upload
    dotu

  • View
    233

  • Download
    2

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

UNIVERSIDAD AUTONOMA METROPOLITANA

Plantel Iztapalapa

DESARROLLO DE LA TARJETA EVBU DESDE EL PUNTO DE VISTA TEORICO

Asesor: OSCAR YAÑEZ SUAREZ

Alumna: MA. DE LOURDES CUAUTLE CARDENAS

Matricula: 85324536

Carrera: INGENIERIA BlOMEDlCA

Area de Concentración: INSTRUMENTACION MEDICA ELECTRONICA

FEBRERO DE1994

Page 2: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

íNDlCE

1.

1 .o

1.1

1.2

1.3

1.4

1.5

1.6

MCU

INTRODUCCION

MCU. 1.1.1 DESCRIPCION GENERAL

DESCRIPCION DE LAS SEÑALES Y MODOS DE OPERACION. 1 .2.1 Descripción de los pines 1.2.2 Modos de operación

CPU 1.3.1 Registros 1 .3.2 Modos de direccionamiento

MEMORIA INTERNA

I/O PARALELO 1.5.1 Muestre0 de I/O 1 S.2 "Apretón de manos" I/O (Handshake I/O)

1 .5.2.1 Protocolo de comunicación de entrada 1 .5.2.2 Protocolo de comunicación de salida

1 S . 3 PIOC. Registro de control U0 paralelo

CONVERTIDOR ANALOGICO DIGITAL 1.6.1 Formas de operación 1.6.2 Formas de muestre0 1 .6.3 Registros de control

I

Page 3: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros de control SPI

1.8 SCI (INTERFASE DE COMUNICACION SERIAL) 1.8.1 Descripción General 1 .8.2 Descripción Funcional 1.8.3 Registros de control SCI

1.9 TIMER PRINCIPAL, INTERRUPCION DE TIEMPO REAL Y ACUMULADOR DE PULSOS 1 -9.1 Timer Principal

1.9.1.1 Características 1 .9.1.2 Contador Principal TCNT 1.9.1 .3 Prescalador 1.9.1.4 Funciones de Captura de Entrada 1.9.1.5 Funciones de Comparación de Salida 1.9.1.6 Registros asociados a las funciones del Timer

1 -9.2 Interrupción de Tiempo Real 1.9.3 Acumulador de Pulsos

1.10 RESET, INTERRUPCIONES 1.10.1 Reset. Descripción General

1.10.1.1 Reset "Perro Guardián" COP 1.10.1.2 Monitor del reloj

1.10.2 Interrupciones

2. EVBU

2.1 INFORMACION GENERAL 2.1.1 Características 2.1.2 Especificaciones 2.1 -3 Descripción General I1

Page 4: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.2 HARDWARE 2.2.1 Descripción General 2.2.2 Instrucciones de Instalación

2.3 PROGRAMA MONITOR BUFFALO

2.4 INSTRUCCIONES DE OPERACION 2.4.1 Interruptor de control 2.4.2 Limitaciones de operación 2.4.3 Procedimiento de operación 2.4.4 2.4.5 Comandos del monitor.

Formato de la línea de comandos

2.4.5.1 Ensamblado/Desensamblado 2.4.5.2 Llenar un bloque (Block Fille) 2 -4.5.3 Poner puntos de ruptura (Break Point) 2.4.5.4 Bulk 2.4.5.5 Bulkall 2.4.5.6 Llamar (Call) 2.4.5.7 Ir a (Go) 2.4.5.8 Ayuda (Help) 2.4.5.9 Cargar (Load) 2.4.5.10 Despliega memoria (Memory Display) 2.4.5.1 1 Modifica memoria (Modify Memory) 2.4.5.12 Mover (Move) 2.4.5.13 Proseguir/Continuar (Proceed) 2.4.5.14 Modificar los registros (Register Modi@) 2.4.5.1$ Alto en la dirección (Stopat) 2.4.5.16 Trazo (Trace) 2.4.5.17 Modo Transparente (Transparent Mode) 2.4.5.1 8 Verificar (Veri@) 2.4.5.19 Transferencia de datos en el modo Bootstrap (XBOOT)

2.4.6 Forma de operación del emulador de terminal (CONNECT). 2.4.6.1 Transferencia de programas mediante el comando LOAD

111

Page 5: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.5 PROGRAMAS EN LENGUAJE ENSAMBLADOR 2.5.1 Formato 2.5.2 2.5.3 Directivas del ensamblador . 2.5.4

Forma de correr el ensamblador

Lista de Directivas del ensamblador .

3. BIBLIOGRAFIA

IV

Page 6: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

PROYECTO: DESARROZLO DE LA TARJETA EVBU, DESDE EL PUNTO DE VISTA TEORICO

1 .O INTRODUCCION

El presente trabajo es una guía de referencia, rápida y útil en el desarrollo de aplicaciones del EVBU; que por supuesto, no reemplaza a los manuales de Motorola, ni las hojas de especificaciones correspondientes, sin embargo cumple su cometido, desde el momento en que es ágil y de fácil entendimiento, siempre y cuando se tengan los conocimientos básicos sobre microprocesadores y sus periféricos, así como de programación en lenguaje ensamblador.

El EVBU, es un instrumento que permite evaluar/depurar a los MCU MC68HCA8, E9, 711E9, y 811E2, no obstante, el presente trabajo solo se referirá al MC68HCllE9, ya que es el que se encuentra instalado en esta tarjeta.

El procedimiento mencionado, se lleva a cabo a través del programa depurador/monitor denominado BUFFALO (Bit User Fast Friendly Aid to Logical Operations), que se encuentra localizado en la ROM interna del MCU.

Esperando que el presente trabajo, sirva de guía a quien tenga a bien leerlo, en relación al tema de que trata, de antemano agradezco al lector su paciencia y buena voluntad respecto del mismo.

1

Page 7: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.1 MCU (MC68HCllE9)

I. I. 1 DESCRIPCION GENERAL

El MC68HCl1 E9 es un microcontrolador, enfocado al desarrollo de periféricos en el circuito integrado (chip). Esta realizado con tecnología HCMOS (high-density complementary metal-oxide semiconductor), por sus siglas en inglés, gracias a esto se conjuntan un tamaño mínimo, alta velocidad, baja potencia y alta inmunidad al ruido. La figura 1 . I muestra un diagrama a bloques del MCU

Las características generales se constituyen por una parte de hardware y otra de software, enumeradas a continuación.

Características de hardware 12 Kbytes de ROM 512 Bytes de EEPROM 512 Bytes de RAM (relocalizable en cualquier frontera de 4 K) Sistema Timer basado en un contador de 16 bits, el cual cuenta con: Escalador programable de cuatro etapas El timer de acuerdo a sus funciones de entrada y salida puede ser seleccionado de las siguientes formas 3 funciones para captura de entrada (input capture) y 5 funciones para comparación de salida (output compare) o 4 para captura de entrada y 4 para comparación de salida Circuito acumulador de pulsos de 8 bits lnterfase de comunicación serial (SCI), trabajando en el modo NZR lnterfase Periférico Serial (SPI). 8 canales para el Convertidor Analógico Digital (CAD) con resolución de 8 bits Circuito de interrupciones en tiempo real Sistema de "Perro Guardián" para la operación apropiada de la computadora (Computer Operating Properly (COP) Watchdog Sistem)

Características de software. Conjunto de instrucciones M6800/M6801 Divisiones de fracciones y enteros de 16x1 6 Manipulación de bits Modo WAIT Modo STOP 2

Page 8: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Figura 1.1 - Diagrama a bloques del MCU

PES PES PE2 PE : PE3

KS?HC'i CPU

I I

ADDiESCCJATA BJS 1

PET C L T P DIAECTIO!: C

I P 3 F l E I I P X T C I

2. I

Page 9: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.2 DESCRIPCION DE LAS SEÑALES Y MODOS DE OPERACION

1.2.1 DESCRIPCION DE LOS PINES

Potencia de entrada (VDD) y tierra (VSS). VDD: Voltaje de suministro 5 V Vss: Tierra

Reset Activa baja. Puede ser generado por el usuario, presionando el interruptor SW1 en la tarjeta, o bien por la detección de un error interno, ya sea por el reloj monitor o por el sistema de "Perro Guardián" (watchdog).

Entradas externas del reloj (XTAL, EXTAL) La frecuencia aplicada a estos pines debe ser cuatro veces más alta que la deseada en el reloj E.

Salida de reloj E Es el reloj generado internamente, puede usarse como una referencia de tiempo. La frecuencia del reloj E es la cuarta parte de la que esta presente en las entradas externas del reloj. Cuando E=CERO LOGIC0 esta ocurriendo un proceso interno, si E=UNO LOGIC0 se accesan datos. Esta señal es detenida (halted) si el MCU esta en el modo STOP.

Petición de Interrupción (IRQ) Activa baja. Por programación se puede seleccionar que se active por un nivel negativo o por una transición.

Interrupción NO Mascarable (XIRQ) Activa baja. Se deshabilita por un reset y debe habilitarse por programación, es activada por nivel.

3

Page 10: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

g) Mode AlLoad Instruction Register y ModeBIStanby Voltaje (MODNM, MODBNSTBY), MODA y MODB, durante el reset se usan para seleccionar uno de los cuatro modos de operación, como se muestra a continuación:

MODB MODA SELECCION

I O Single chip I I Expandido Multiplexado O O Bootstrap especial O 1 Test esoecial

En la tarjeta estos pines corresponden a J3 y 54. Una vez que se ha seleccionado el modo de operación (activa baja), indica cuando una instrucción esta comenzando. El VSTBY es un suministro de potencia, de espera, mantiene el contenido de RAM cuando el voltaje de suministro esta ausente.

h) Voltajes de referencia al CAD (VRL, VRH). Para que el CAD trabaje con exactitud se requiere una caída de voltaje mínima de 2.5 V entre estos pines, si el voltaje es menor el CAD puede seguir trabajando pero no se garantiza la exactitud en los resultados.

i) STROBE B y ReadMlrite (STREVRQ) Si el modo de operación es single chip, actúa corno una salida hacia un sistema externo, equivalente a un "listo" para enviar información, formando parte del muestre0 del "apretón de manos" (handshake). Si es expandido multiplexado controla la transferencia al bus de datos externo.

j) STROBE A y Adress Strobe (STWAS) En el modo de operación single chip, es una entrada que detecta un pulso generado por un sistema externo, con el cual indica al MCU que "guarde" la información enviada por este sistema, es por lo tanto la forma de muestrear el "apretón de manos" (handshake), si es expandido multiplexado, se usa para demultiplexar las direcciones y las señales de datos al puerto C.

4

Page 11: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

k) PUERTOS (A, B, C, D, E): O Puerto A, TIMER

Esta formado por 8 bits, configurado como 3 pines de solo entrada, 4 pines de solo salida y 1 pin de entradakalida. Cualquier pin que no se programe con el timer puede ser usado como de propósito general.

Si el modo de operación es single chip todos los pines son salidas de propósito general. Si es expandido multiplexado forma la parte alta de las direcciones.

En el single chip los pines se pueden programar individualmente como entradaskalidas de propósito general. En el expandido multiplexado forma la parte baja de las direcciones y10 el bus de datos. Puerto O (6 bits = 6 pines) Cada pin se puede configurar individualmente como entradalsalida de propósito general. Alternativamente actúa como el SCI y SPI

Son entradas de propósito general o entradas al CAD; se pueden programar unas como de propósito general y otras como entradas al CAD.

O Puerto B (8 bits)

O Puerto C (8 bits)

O

O Puerto E (8 bits)

I .2.2 MODOS DE OPERACION

i)

ii)

Single chip Bajo este modo de operación el MC68CHllE9 no requiere buses de direcciones y datos, externos. Y por consiguiente el pto. B, el pto C, los pines strobe A y strobe B pueden ser utilizados como puertos ¡/O de propósito general.

Multiplexado expandido Maneja un bus multiplexado datos/direcciones que permiten al CPU procesar un espacio de memoria de 64 KBytes. Utiliza a los puertos B y C para formar el bus de direcciones y datos. Las señales de control están determinadas por AS y RMJ.

5

Page 12: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

AS es una salida activa alta para un latch externo tal que si AS=CERO LOGIC0 la información es latcheada y si AS=UNO LOGIC0 las direcciones pasan hacia el latch externo. R/&/ corresponde a la habilitación de lectura o escritura.

iii) Bootstrap Especial Es un modo de operación especial, que nos permite cargar un programa de 51 2 bytes en la RAM interna, usando las localidades $0000 - $01 FF, no existen limitaciones en cuanto al programa a cargar. El programa de arranque (boot loader) esta contenido en los 192 bytes de ROM bootstrap, y se habilita solo si el MCU es reseteado en el modo bootstrap especial y aparece en la memoria interna en las localidades $BF40 - $BFFF. El programa de arranque usa el SCI para leer el programa y después de recibir el byte inicial, automáticamente pasa el control al programa, a la localidad $0000.

iv) Test Especial Se creo originalmente para que el fabricante realice pruebas; es muy similar al multiplexado expandido y no se recomienda su uso porque el sistema de seguridad esta muy reducido.

6

Page 13: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.3 CPU

Opera con la técnica “Memory - Maped VO”, en la cual todas las localidades de memoria, periféricos e I10 son tratados como localidades de memoria dentro de un espacio máximo de 64 KBytes. Comparado con los primeros CPUs, el 6800 y el 6801, nos ofrece los siguientes adelantos:

O

O

Agrega un registro índice de 16 bits ( IY ) Instrucciones de manipulación de bits Dos nuevas instrucciones de división de 16x16 bits Instrucciones de intercambio del registro índice con el acumulador doble.

1.3.1 REGISTROS

I ) Acumulador (A, B y D) Los acumuladores A y B son cada uno de 8 bits, ambos son de propósito general, y se usan indistintamente, excepto en las instrucciones que a continuación se mencionan: ABX, ABY, TAP, TPA y DAA. El acumulador D es un registro de 16 bits formado por la unión de los acumuladores A y B.

2) Registros índice ( IX, IY ) Son registros de 16 bits cada uno, usados para el direccionamiento indexado, esto implica que la dirección efectiva esta formada por el contenido del registro índice más un offset de 8 bits. La Única diferencia entre ellos estriba en que IY implica I byte extra de código y por lo tanto 1 ciclo más de máquina.

3) Apuntador de pila ( SP ) Se puede localizar en cualquier área dentro de los 64 KBytes de memoria, puede ser de cualquier tamaño, siempre que exista memoria disponible. El SP guarda una dirección de 16 bits, cada vez que se guarda un byte en la pila, esta dirección se decrernenta automáticamente, y por lo tanto el SP apunta a la siguiente localidad vacía.

4) Contador de programa ( PC ) Es un registro de 16 bits, contiene la dirección de la siguiente instrucción a ejecutarse.

7

Page 14: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

5) Registro de Condición de Código ( CCR ) Lo constituyen 5 indicadores de estatus (HI N, Z, V y C), 2 bits de interrupciones mascarables ( I, X ) y un bit que deshabilita el STOP. Banderas C = 1 Si hay carryíborrow. Es una bandera de error en multiplicaciones y

V = 1 Si hay sobreflujo al realizar operaciones con complemento a 2 2 = 1 Si el resultado es cero N = 1 Si el resultado es negativo 1 Máscara de interrupciones, puede deshabilitar todas las

interrupciones mascarables. Cuando se da una petición de interrupción este bit es puesto a 1 después de que los registros son apilados y antes de que se haga el fetch del vector correspondiente, una vez atendida la interrupción se debe ejecutar una instrucción RTI la cual restaura los registros y pone un cero en este bit. Después de un reset este bit es puesto a uno automáticamente y solo puede ser limpiado por software.

H = 1 implica que hay un carry entre el bit 3 y 4 ( Half-carry ) X Se usa para deshabilitar las interrupciones debidas al pin XIRQ.

Después de un reset este bit es puesto a 1 y solo puede ser limpiado por software. Cuando en et pin XIRQ se reconoce un cero lógico, se genera una petición de interrupción, cuando esta es atendida, se pone este bit automáticamente, después de que se apilan los registros y antes de que se haga un fetch al vector correspondiente, solo podrá ser limpiado cuando se ejecuta una instrucción RTI. Por esto se dice que este bit es puesto por hardware y solo es limpiado por programación.

S = O Habilita el STOP, en caso contrario lo deshabilita. Si el CPU encuentra una instrucción STOP mientras el bit S=l, la tratara como un NOP.

divisiones

I .3.2 MODOS DE DIRECCIONAMIENTO

Se puede hacer direccionamiento inmediato, directo, extendido, indexado, inherente y relativo.

Las instrucciones se encuentran en un mapa de código multipágina. A esto se debe la asociación de un prebyte (es un byte adicional antes del código), permitiendo así expandir ,el número de instrucciones. Las instrucciones que no lo requieren deben considerarse como de página 1 y las subsecuentes son: página 2 mapeada en $18, página 3 mapeada en $1A, página 4 mapeada en $CD.

8

Page 15: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Direccionamiento Inmediato

En este modo de direccionamiento el argumento actual se encuentra a continuación del código de instrucción.

En este caso el campo de operando comienza con el carácter #, con el cual el ensamblador detecta este direccionamiento y a continuación se pueden usar los siguientes caracteres:

Prefijo Definición

Nada $ @ % I

Decimal Hexadecimal Octal Binario Carácter ASCII

Nota:

para indicar el tipo de sistema numérico empleado. Los prefijos anteriores pueden utilizarse en todos los direccionamientos

Se muestran direccionamiento:

Código de Maquina

86 16

C8 34

a continuación algunos ejemplos de este tipo de

Operación Operando Comentarios

LDAA #22 Carga el valor decimal 22 en el acumulador A (ACCA <-$I 6)

EORB #$34 Efectúa la operación XOR entre el acumulador B y

$34

Direccionamiento Extendido

La dirección efectiva de la instrucción aparece explícita en los dos bytes siguientes al código. Los ejemplos correspondientes se agregan junto con el siguiente modo de direccionamiento.

Direccionamiento Directo

Es en realidad de página cero. El byte menos significativo aparece en el byte siguiente del código y el byte alto se asume como cero. iimita el acceso al área de memoria $0000 - $OOFF, es recomendable usarla para variables de

9

Page 16: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

datos frecuentemente referenciados. Las instrucciones lectura-modifica- escritura no pueden hacer este tipo de direccionamiento.

Se muestran a continuación algunos ejemplos.

Código de Etiqueta Operación Operando Comentarios Máquina 83 O0 12 SUBD CAT AI acumulador D se le

asigna el resultado de la sustracción efectuada entre el acumulador D y él contenido de la dirección específicada

CAT EQU Define CAT= $12

93 12 SUBD CAT 7F O0 12 CLR CAT Limpia el contenido de la

dirección específicada por CAT

En la primera línea de código del ejemplo anterior, se hace una referencia a una etiqueta definida posteriormente, por lo que el ensamblador automáticamente selecciona un direccionamiento extendido. En la tercera línea de código, al hacer referencia a la misma etiqueta, el ensamblador conoce su valor y automáticamente selecciona un direccionamiento directo.

Di recci onam iento I ndexado

La dirección efectiva depende del contenido del registro índice ( IX, IY ), más 8 bits de offset, por lo tanto el offset puede tomar valores de O - 255 ($00 - $FF). Puede referenciar 64 KB de memoria.

Una forma de manejar un byte de offset dinámico es usar la instrucción que suma el acumulador B al registro índice. Si no se específica el valor del offset, se da por hecho que es $00.

Los siguientes ejemplos muestran la forma de utilizar el direccionamiento indexado.

10

Page 17: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Código de Etiqueta Operación Operando Comentarios Máquina

E3 O0 ADDD X DE=(X) E3 O0 ADDD ,x DE=(X) E3 O0 ADDD OIX DE=(X)

CAT EQU 7 Define CAT = 7

E3 07 ADDD CAT,X DE=(X) + 7 E3 22 ADDD $22,X DE=(X) + $22

E3 22 ADDD CATW2+6,X DE=( X)+( CATW2 +6)

Nota: DE indica la dirección efectiva

Direccionamiento Inherente

Todo lo que necesita para ejecutar la instrucción es inherentemente conocido por el CPU. Sus operandos son registros y por lo tanto no requiere hacer un fetch en la memoria. Algunos ejemplos son:

Código de Máquina Operación Operador Comentarios

I B ABA Ninguno A+6 ->A 5c INCB Ninguno B+l ->B 08 INX Ninguno X+l ->x

Direccionamiento Relativo

Se usa solo en instrucciones que realizan un salto condicionado (branch), el offset relativo se encuentra en el rango de -128 a +127 bytes con respecto a la dirección siguiente a la instrucción del salto condicionado.

Este offset es generado por el MCU automáticamente.

11

Page 18: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.4 MEMORIA INTERNA (ROM, RAM, EEPROM)

Presentamos a continuación el mapa de la memoria interna, sin embargo, éste puede modificarse dependiendo del modo de operación seleccionado o bien de la reubicación de la RAM y del bloque de registros.

Area de memoria Tipo

$0000 - $01 FF RAM (512 bytes) * Su contenido puede ser mantenido usando STOP y/o

VSTBY

$1 O00 - $103F Bloque de registros ( 64 bytes ) *

$8600 - $B7FF EEPROM ( 512 bytes)

$BF40 - $BFFF BOOT ROM **

$DO00 - $FFFF ROM (12 KB ) ***

Notas:

* Son relocalizables en cualquier frontera o página de 4 K, por el registro INlT

* Solo esta presente en el modo especial bootstrap, localiza el programa bootstrap, y en particular en las direcciones $BFCO - $BFFF, localiza el reset y los vectores de interrupciones. Esto significa que si el modo utilizado es multiplexado expandido esta área de memoria puede direccionarse externamente.

*** En el modo single chip y multiplexado expandido en las direcciones $FFCO - $FFFF localiza los vectores de interrupción.

En el modo multiplexado expandido el área restante puede direccionarse externamente.

La ROM ocupa los 12 KBytes más altos del mapa de memoria, contiene el programa depurador/monitor BUFFALO. Para poder hacer uso de esta parte de la memoria es necesario deshabilitarla, y direccionar externamente otra

1 2

Page 19: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

memoria. Se deshabilita limpiando el bit ROMON en el registro CONFIG, y para mayor seguridad esta implementado en un celda de tipo EEPROM

La EEPROM esta arreglada en 32 renglones de 16 bytes cada uno, y existe la posibilidad de borrar un renglón o los 32 renglones a fa vez ( bulk erase). Pero si el MCU esta operando en el modo Bootstrap o en Test no podrá ser borrada. Contamos con dos registros dedicados a la EEPROM.

PPROG ( $103B ) Controla la programación y borrado de la EEPROM BPROT ( $1 035 ) Previene escrituras inadvertidas al registro CONFIG y a los 512 bytes de la EEPROM

Otros registros relacionados con el área de la memoria son:

INlT ( $103D) Ubica o relocaliza la RAM y los registros de control en el mapa de memoria del CPU. Sus 4 bits altos relocalizan la RAM y los 4 más bajos a los registros

CONFIG ( $103F ) Esta implementado en celdas EEPROM y controla la presencia de ROM y EEPROM en el mapa de memoria, también habilita el sistema de "perro guardián" y el de seguridad.

13

Page 20: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.5 1/0 PARALELO

El MC68HCIlE9, cuenta con 40 pines ¡/O, arreglados en 5 puertos. tienen funciones múltiples que dependen del modo de Todos los pines

operación y la programación del registro de control.

a) Puertos de propósito general ( C y D ) Cada puerto cuenta con un registro de datos ( asociado a cada línea ¡/O) y un registro de dirección de datos. En las líneas de salida, una lectura regresa el valor del pin; y una escritura en una entrada, provoca que el dato se almacene en un latch interno de modo que al programarse como salida, aparezca en el pin esta información.

b) Puertos con dirección fija ( A, B, E ) Cada uno de estos puertos, tienen fija la dirección de los datos. Con excepción de los bits 3 - 7 del puerto A que pueden programarse como entrada o salida. El puerto B es solo de salida y el puerto E es solo de entrada.

1.5.1 MUESTRE0 DE I10

Existe un modo de muestreo simple controlado por el registro de control ¡/O (PIOC); en este caso cuando se detecta un nivel activo en STRA se hace un muestreo en el puerto C, recibiendo la información; en cambio cuando se detecta un nivel activo en STRB se hace un muestreo en B, y se considera que es en este momento cuando los datos sacados por este puerto son validos.

Se puede elegir un muestreo de entrada al pto. C, en cuyo caso este puerto puede leerse en dos direcciones: el registro de datos (PORTC) y el registro de latch alterno (PORTCL).

1.5.2 APRETON DE MANOS" I/O (HANDSHAKE 110)

El modo de comunicación (handshake) completa involucra al pto. C (entrada a un latch), y los pines STRA y STRB.

Existen dos modos básicos de operación (entrada y salida) y una variación adicional en el modo de handshake de salida que permite la operación del pto. C en tercer estado. En todos los modos la línea STRA es

14

Page 21: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

una entrada que detecta un pulso, generado por el sistema externo, con el cual se sincroniza el latch del puerto C para recibir los datos; y STRB es una salida que actúa como una señal de "listo" al sistema externo.

1 5.2.1 Protocolo de comunicación de entrada.

En este caso el pto. C es una entrada a un latch, STRA es un comando al latch desde el sistema externo que maneja al pto. C y STRB es una salida de "listo" controlada por el MCU.

Cuando el dispositivo externo reconoce una condición "listo" pone los datos a la entrada del pto. C y un pulso activo en STRA latchea los datos en este por medio del registro PORTCL, en este momento se desactiva la señal de "listo" en STRB y en el bit STAF (en el registro PIOC) se pone un uno lógico, mediante el cual es posible generar una interrupción. Para que sea posible que se de una nueva señal de "listo" es necesario leer el registro PRTCL, y esto ocurre aún cuando no se haya limpiado el bit STAF.

1.5.2.2 Protocolo de comunicación de salida.

En este caso el pto C. actúa como una salida a un dispositivo externo, STRB indica que el pto. C esta "listo" para enviar el dato, y STRA es una entrada por la cual el sistema externo indica al MCU que los datos han sido aceptados.

El MCU saca los datos por el pto. C e indica por medio de STRB que los datos son estables. El dispositivo externo después de procesar los datos debe poner un pulso en STRA para indicar que pueden ponerse nuevos datos en el pto e.

Cuando en la comunicación de salida se usa la opción de tercer estado en el pto C., se debe considerar que mientras STRA esta inactiva todas las líneas del puerto están en tercer estado.

1.5.3 PlOC - REGISTRO DE CONTROL I/O PARALELO. ( $1002 )

Es importante recordar que las funciones de comunicación solo están

15 disponibles cuando se esta trabajando en modo single chip.

Page 22: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

El registro PlOC es un registro de lecturdescritura excepto el bit 7 que es una bandera. Se usa para configurar y controlar el protocolo de comunicación I/O en el MC68HC11 E9.

Explicamos a continuación cada uno de los bits de este registro:

Bit 7 STAF - Bandera de Strobe A (Strobe A Flag) Independientemente del modo de muestreo o comunicación empleado, en este bit se pone un 1 lógico cuando se detecta un pulso activo en el pin STRA. Este bit es limpiado automáticamente cuando se dan los dos siguientes pasos: a).- Armado del mecanismo de limpieza. Consiste en leer por software el registro PlOC mientras STAF = 1 b).- Limpiar STAF poniéndolo a cero. Este segundo paso depende del

modo de muestre0 o comunicación empleado, en el modo de muestreo simple (HNDS = O), y en el de protocolo de comunicación de entrada (HNDS = 1 y OIN = O), se limpia esta bandera al leer el registro PORTCL, en el de protocolo de comunicación de salida (HNDS = 1 y OIN = I ) , la bandera se limpia al realizar una escritura al registro PORTCL. Debido a que pueden existir cambios en ei modo de comunicación empleado entre el primero y el segundo de los pasos arriba mencionados, se recomienda que la acción a seguir durante la limpieza de STAF este determinada por el estado de los bits HNDS y OIN. Aún cuando no existe un límite de tiempo entre estos dos pasos se recomienda que ocurran lo más cercanos posible.

Bit 6 STA1 - Habilita interrupciones por Strobe A (Strobe A Interrupt Enable) Este bit establece que cuando STAF = 1 se genera una interrupción. Cuando STA1 = I implica que cuando STAF = 1 se genere una interrupción por hardware y cuando STA1 = O están inhibidas las interrupciones.

Bit 5 CWOM - Modo Wired-OR en el Pto C (Port C Wired-OR Mode) Este bit afecta simultaneamente los 8 bits del puerto C. Cuando CWOM=O las salidas de este puerto operan como push-pull activas, cuando CWOM = 1 operan en forma de colector abierto (open-drain).

Bit 4 HNDS - Selecciona el modo de Muestre0 Simple/"Apretón de manos" (Handshake/Simple Strobe Mode Select) Si HNDS = O se selecciona el modo de muestreo simple. Si HNDS = 1 se activa el protocolo de comunicación de entrada o salida

16

Page 23: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Bit 3 OIN - Selecciona el tipo de comunicación Entradalsalida (Outpuülnput Handshake Select) Este bit solo actúa cuando el bit HNDS = 1. Si OIN = 1 selecciona comunicación de salida Si OIN = O selecciona comunicación de entrada.

Bit 2 PLS - Selecciona el modo del pulso de Strobe B (Strobe B Pulse Modeselect) Si PLS = O se selecciona una operación entrelazada, esto es una vez activado STRB, permanecerá en esta condición hasta que se reciba una señal de reconocimiento en STRA. Si PLS = 1 se selecciona un pulso, esto quiere decir que STRB soto se encuentra activa durante dos ciclos de reloj E. En el caso de haber elegido como forma de operación muestre0 simple automáticamente se asume el modo de pulso para STRB.

Bit 1 EGA - Selección del pulso para Strobe A (Edge Select for Strobe A) Selecciona la polaridad del pulso que activara o se reconocerá en el pin STRA. Si EGA = O se considera que STRA esta activa al ser detectada una transición de bajada, ignorándose por lo tanto una transición de subida. Si EGA = 1 STRA es activa cuando se detecta una transición de subida. AI utilizar la variación de tercer estado en el protocolo de comunicación de salida especifica el nivel en STRA que habilitara el bufíer de salida del puerto C. Este buffer es activado con una señal activa alta, generada por una operación OR-exclusiva entre EGA y el nivel activo en el pin STRA

Bit O INVB - Invierte Strobe B (Invert Strobe B) Si INVB = O la señal en STRB es activa baja Si INVB = I la señal en STRB es activa alta.

17

Page 24: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.6 CONVERTIDOR ANALÓGICO DIGITAL

El MC68HCIlE9 cuenta con 8 canales de entrada multiplexada a un Convertidor Analógico Digital (CAD) de aproximaciones sucesivas, el cual genera un error total de 5 1 LSB incluyendo un error de cuantización de 2 1/2 LSB, y acepta entradas analógicas que se encuentren en el rango de los voltajes de referencia.

Cuenta con dos pines para los voltajes de referencia VRH y VRL, cuyos valores deben encontrarse en el siguiente rango VRL=O V y VRH =5 V 510%. Para trabajar con señales analógicas que se encuentran en un rango menor al mencionado es posible ajustar VRH entre 3 y 2.5 V.

Es un convertidor radiometrico, esto quiere decir que voltajes de entrada iguales a VRL son convertidos a $00 y los iguales a VRH son transformados a $FF.

1.6.1 FORMA DE OPERACION

Para cada conversión emplea 32 ciclos de reloj E, considerando que este reloj trabaja a más de 750 KHz; en los sistemas que manejan una velocidad de reloj menor es necesario habilitar por medio del registro OPTION un reloj oscilador interno R-C que opera a 1.5 MHz aproximadamente. La información convertida siempre es guardada en los registros ADRI, ADW, ADR3 y ADR4, como se muestra en los siguientes seis muestreos:

la Conversión = ADRI 2a Conversión = ADR2

ADR3 ADR4

3a

ADRI 4a

ADR2 5a 6a

II - - II - - II - - I I - -

Los registros ADRX son de solo lectura. 18

Page 25: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Para iniciar una conversión, basta con realizar una escritura al registro ADCTL, con la cual se programe la forma de operación del convertidor. El proceso de conversión es abortado, (en cualquier forma de muestre0 seleccionado), al realizar una escritura al registro ADCTL, e inmediatamente comienza otro proceso de conversión. Como se vera mas adelante existen dos posibilidades de detener la conversión, sin que se de inicio nuevamente al proceso.

1.6.2 FORMAS DE MUESTRE0

a) Dependiendo del número de canales.

i) Un solo canal. Los datos son tomados de un solo canal, que es seleccionado por medio del registro ADCTL y son almacenados en los registros corno ya se indico en párrafos anteriores.

ii) Cuatro canales. Solo es posible seleccionar uno de cuatro grupos de canales, sin embargo solo dos de ellos son de utilidad para efectuar conversiones; cada uno de estos grupos esta formado por cuatro canales consecutivos como se muestra en la tabla 1.6.1. Se selecciona un grupo de canales a muestrear y cada dato leído dependiendo del canal a que corresponda sera almacenado en un registro como se observa en esta misma tabla.

I 9

Page 26: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA No. 1.6.1 .- Asignación de canales Analógico - Digitales

CD CC CB CA PIN Canal Registro Dirección

O O O O PEO O O O 1 PEI O O 1 O PE2 O O 1 1 PE3

O 1 O O PE4 O 1 O 1 PE5 O 1 1 O PE6 O 1 1 1 PE7

ANO ANI AN2 AN3

AN4 AN5 AN6 AN7

ADRl ADR2 ADR3 ADR4

ADRl ADR2 ADR3 ADR4

$1 031 $1 032 $1 033 $1 034

$1 031 $1 032 $1033 $1 034

1 O O O Reservado I O O 1 Reservado 1 O 1 O Reservado 1 O I 1 Reservado

ADRl ADR2

1 1 O O VRH 1 1 O 1 VRL 1 1 1 O (VRH)/2 * ADR3 1 1 1 1 Reservado

* *

Nota: * Este grupo de canales se usan para pruebas del fabricante

b) Dependiendo de la forma de muestreo.

i) Muestrea cuatro veces y se detiene. En esta modalidad se realizan cuatro conversiones y el CAD se detiene, para reiniciar la conversión es necesario realizar una escritura al registro ADCTL.

ii) Muestrea continuamente. En este caso el CAD no para de trabajar, a menos que sea deshabilitado por media del registro OPTION.

20

Page 27: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.6.3 REGISTROS DE CONTROL

Solo hay dos registros de control relacionados con el CAD.

1 .- Registro OPTION ($1 039) Solo nos referiremos a los bits que afectan al DAC.

Bit 7 ADPU - Habilita al DAC Si ADPU = O el DAC esta deshabilitado Si ADPU = 1 el DAC es habilitado, una vez puesto este bit a 1 es necesario generar un retardo que permita estabilizar los circuitos comparadores, antes de usar el sistema convertidor, este retardo debe ser de cuando menos 100 microseg.

Bit 6 CSEL Si CSEL = 1 selecciona un reloj oscilador interno

2.- Registro ADCTL ($1 030) Este registro es de lectura/escritura excepto los bits 7 y 6. El bit 7 es el único que es limpiado por reset. Presentamos a continuación una breve explicación de cada bit.

Bit 7 CCF - Bandera de Conversión Terminada. Este bit es de solo lectura. y es puesto a I cuando los cuatro registros (ADRI - ADR4) asociados con los resultados de conversión contienen información valida. Cada escritura al registro ADCTL limpia esta bandera y genera un nuevo ciclo de conversión. Cuando se muestrea de forma continua los registros se sobre escriben aún cuando esta bandera permanezca igual a I.

Bit 6 - Siempre se lee como O

Bit 5 SCAN - Controla el Muestre0 Continuo SCAN = O Se realizan cuatro conversiones Únicamente SCAN = 1 El convertidor continua operando hasta que sea deshabilitado, sobre escribiendo los registros de resultados cada vez que tiene un nuevo dato disponible.

21

Page 28: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Bit 4 MULT - Controla Un-CanaKanales Múltiples Si este bit es cero la información a convertir es tomada de un solo canal que es especificado por medio de los bits CD-CA de este mismo registro, tal como se mostró en la tabla 1.6.1 Si este bit es uno se realiza una conversión en cada uno de cuatro canales, del grupo seleccionado. La selección de este grupo se realiza mediante los bits CD y CC de este registro.

Bit 3 a O CD, CC, CB, CA - Seleccionan el canal Estos cuatro bits seleccionan el canal o el grupo de canales de los cuales se van a tomar los datos a convertir. Como se muestra en la tabla 1.6.1.

22

Page 29: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.7 SPI ( INTEFWASE PERIFÉRICO SERIAL )

1.7.1 CARACTERISTICAS GENERALES

Esta diseñada para permitir la comunicación del MCU con diversos periféricos, (estos pueden ser tan simples como cualquier circuito integrado TTL o tan complejos como un CAD ).

Sus principales características son:

Transferencia sincrona de "tres alambres", totalmente duplex. Opera como maestro o esclavo. Frecuencia de maestro (max.) 1 .O5 Mhz Frecuencia de esclavo (max.) 2.1 Mhz Cuatro velocidades de transmisión (bit rates) de maestro programables Son programables la polaridad y la fase del reloj Bandera de interrupción de fin de transmisión Bandera de protección de colisión de escritura Protección automática (Yault"), maestro-maestro Es muy fácil comunicarla ("interfasarla") a partes de expansión simple.

Cuenta con cuatro señales de salida ubicadas en el puerto D, y son:

I. I¡. 111. Reloj Serial (SCK) IV. Selecciona esclavo (SS)

Entrada al maestro, salida del esclavo (Master In Slave Out, MISO) Salida del maestro, entrada al esclavo (Master Out Slave In, MOSI)

1.7.2 DESCRIPCION FUNCIONAL

AI configurar ai MClJ como maestro, la línea SS debe ligarse a un I lógico (seleccionando al SPI como maestro); la información se transmite al esclavo a través de la línea MOSI y el esclavo responde por la línea MISO, con lo que

23

Page 30: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

establecen una comunicación totalmente duplex, sincronizando los datos de entrada y salida con el mismo reloj, este reloj es una salida del maestro y corresponde a la línea SCK, el cual permanecerá en alto o bajo, (dependiendo de como sea programado), hasta que se inicie la transmisión, y en ese momento genera 8 ciclos de reloj, al final de estos, se da por terminada la transmisión e inmediatamente es puesto el bit SPlF indicándola.

Si al momento de realizar una transmisión se hace una escritura al registro de corrimiento del maestro, la transmisión continua, y la escritura no se lleva a cabo, se pone el bit WCOL, del registro SPSR, indicando una colisión de escritura.

En cambio para configurar al MCU como esclavo se debe fijar un cero lógico en el pin SS, la línea SCK, es una entrada (espera una señal de reloj) para sincronizarse con el dispositivo maestro. En este caso el esclavo recibe la información a través de la línea MOSl y la carga en el registro de corrimiento, una vez recibidos los 8 bits los transfiere en paralelo al buffer de lectura. Durante un ciclo de escritura, los datos son cargados en el registro de corrimiento y en cuanto el esclavo recibe un tren de pulsos (reloj) transfiere esta información al maestro por la línea MISO.

1.7.3 REGISTROS DE CONTROL SPI

Son cuatro los registros asociados al SCI, descritos brevemente a continuación:

DDRD (Registro de Control de Dirección de Datos del Pto. D) Es un registro de lecturaíescritura, accesible en cualquier momento. Como su nombre indica controla la dirección de datos de este puerto. Es empleado por el SPI, de la siguiente forma: Bit 5 DDRDS/= (Control de Dirección de Datos del bit 9s)

Si esta habilitado el SPI como un esclavo, este pin es una entrada. Pero si el SPI se habilita como maestro, la función de este pin depende del valor de DDRDS de tal forma que: DDRD5 = O Indica que algún otro dispositivo en el sistema de maestro múltiple esta intentando seleccionar a este MCU como esclavo, e inmediatamente pone todos los pines del SPI en afta impedancia. DDRD5 = 1 Este pin actúa como una salida de propósito general sin afectar al SPI.

24

Page 31: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Bit 4 DDRD4/SCK (Control de Dirección de Datos del bit 4/SCK) Si el SPI es configurado como esclavo, SCK es la salida del reloj serial. Si en cambio es un maestro DDRD4 debe ser puesto a 1 para habilitar la salida del reloj SCK.

Si el SPI es un esclavo, este pin es la entrada de datos serial del esclavo. Pero si es un maestro DDRD3 debe ser puesto a 1 para habilitar la salida serial de datos del maestro.

Si el SPI es un esclavo, el bit DDRD2 debe ser puesto a 1 para habilitar la salida de datos serial del esclavo. En cambio si es un maestro, este pin es la entrada serial de datos del maestro.

Bit 3 DDRD3/MOSI

Bit 2 DDRD2/MISO

SPCR (Registro de Control del SPI) Es un registro de lectura/escritura accesible en cualquier momento. El registro DDRD debe ser configurado antes iniciar de cualquier transferencia por el SPI. Bit 7 SPlE (Habilita Interrupciones por el SPI)

SPIE=O Habilita las interrupciones del SPI SPIE=I El SPI requiere una interrupción siempre que el bit SPlF o MODF sea igual a I (previendo que el bit I en el registro CCR sea cero)

Bit 6 SPE (Habilita al sistema SPI) O= El sistema SPI esta desahilitado I= El sistema SPI se habilita

O= Las salidas del Pto. D son de tipo push-pull 1 = Las seis salidas del Pto D actúan como de colector-abierto.

Bit 4 MSTR (Selecciona el modo Maestro/Esclavo) O= SPI esta configurado como esclavo 1 = SPI se configura como maestro.

Bit 3 CPOL (Selecciona la polaridad del reloj) O= Selecciona el reloj activo alto. 1 = Selecciona el reloj activo bajo

Bit 1 y Bit O SPRI , SPRO (Selecciona la velocidad de transmisión del SPI) La siguiente tabla muestra la relación entre estos dos bits de control y la velocidad de transferencia del SPI cuando se configura como maestro. (Si esta configurado como esclavo estos bits no tienen signif icado)

Bit 5 DWOM (Selecciona el modo de or-alambrada en el Pto. D)

Bit 2CPHA (Selecciona la fase del reloj)

25

Page 32: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Tabla No. 1.7.1 - Bits de Control SPRI y SPRO

SPRI SPRO Reloj E Dividido por

O O 2 O I 4 1 O 16 1 1 32

SPSR (Registro de Estado del SPI) Este es un registro de solo lectura, contiene las banderas de estado que indican que la transferencia del SPI ha concluido, y la ocurrencia de ciertos errores en el SPI Bit 7 SPlF - Bandera de Transferencia del SPI terminada Bit 6 WOCL - Bandera de Error por colisión en la escritura. Bit 5 Siempre lee cero Bit 4 MODF - Bandera de error de modo automático Bit 3 - Bit O Siempre leen cero.

SPDR (Registro de Datos I/O Periférico Serial), es el encargado de transmitir y recibir datos del bus serial. En el dispositivo maestro la transmisión/recepción será iniciada con una escritura a este registro, la cual se efectúa directamente al registro de corrimiento. Una lectura a este registro es hecha al buffer de lectura.

26

Page 33: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.8 SCI (INTERFASE DE COMUNICACION SERIAL)

1.8.1 DESCRIPCION GENERAL

Este sistema es del tipo UART (Transmisor Receptor Universal Asíncrono), puede usarse para conectar el MCU a una terminal CRT (Tubo de Rayos Catódicos) o a una PC, o puede formar una red de comunicación serial.

Características del SCI "dos-alambres":

Formato NRZ (non return to zero) Método avanzado de detección de error, incluyendo detección de ruido Operación totalmente duplex Por software se puede programar uno de 32 baud rate diferentes También por software se selecciona la longitud de la palabra ( 8 o 9 bits por palabra) Bits separados habilitan la recepción y la transmisión Manejo de interrupciones Cuatro bits (diferentes) que habilitan el control de interrupciones

Características del receptor SCi

O

0

0

O Detección de ruido O Detección de desbordamiento (overrun) o

Función para despertar ( wake up) al receptor Detección de línea ociosa (idle) Detección de error de estructura ( framing error)

Bandera indicadora de que el registro de datos esta lleno

Características del transmisor SCI

+ + Bandera de transmisión completa +

Bandera que indica que el registro de datos esta vacío

Envio de rompimiento (Send break)

27

Page 34: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Formato de datos

El formato de datos NZR ( non return to zero ) implica los siguientes puntos:

1.

2.

3. 4.

5.

Antes de la transmisión/recepciÓn de un carácter se pone una línea ociosa, esto significa que en esta línea es puesto un I lógico. Se usa un bit inicial (cero lógico) para indicar el principio de una estructura. El primer bit transmitido/recibido es el menos significativo Un bit de parada (1 lógico), se usa para indicar el fin de una estructura. Una estructura consta de un bit inicial, un carácter de 8 o 9 bits y un bit de parada. Una ruptura (break) se define como la transmisiÓn/recepción de un cero lógico, por al menos el tiempo de una estructura completa

Forma de despertar al receptor ( wake up )

Para los casos en que un sistema tiene más de un receptor, el MC68HC11 tiene implementada una forma de despertar o activar a un receptor o grupo de receptores. AI utilizar este función, el transmisor envía como el byte inicial de cada mensaje un dato "direccionado", a un receptor o grupo de receptores específicos, por medio de la cual serán activados, aquel receptor(es) no despertado ignorara el resto de la transmisión, con lo cual puede continuar con otras funciones.

Para habilitar la función de despertar a un receptor es necesario escribir un 1 lógico en el bit RWU del registro SCCR2, e inmediatamente el receptor se "duerme". Mientras RWU= 1 todas las banderas de estado relacionadas con el receptor estarán inhibidas. Normalmente este bit es limpiado por hardware con uno de dos posibles métodos: con una línea ociosa, o marcando una dirección.

Una línea ociosa se define como un 1 lógico continuo sobre RxD por al menos el tiempo o duración de 10 u 11 bits. AI usar este método, el receptor despierta tan pronto como la línea RxD se encuentre ociosa y es conveniente que, entre cada mensaje se incluya un espacio de ocio, pero no entre cada carácter.

En el método de marca de dirección el bit más significativo en un carácter indica si el carácter es una dirección ( 1 ) o un dato ( O ). De modo que el receptor despierta cuando recibe un carácter de dirección.

28

Page 35: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Recepción de datos (RxD)

El receptor cuenta con circuitería interna de reloj, cuya frecuencia es 16 veces el baud rate, y se le conoce como reloj RT.

Cuando se detecta el bit de inicio o de parada, se muestrea 3 veces a intervalos RT fijos ( 8, 9 y I O RT ); considerando que 1 RT es donde se espera inicie dicho bit. Estas muestras determinan si el bit es correcto o no.

En cambio el transmisor al enviar la información genera un tiempo de bit derivado del reloj RT, a razón de 1/16 del reloj de muestre0 del receptor.

1.8.2 DESCRIPCION FUNCIONAL

Transmisión

Considerando que el transmisor esta habilitado; la transmisión se inicia con una escritura al registro de datos (SCDR), de donde son transferidos a un registro de corrimiento, automáticamente se pone el bit TDRE (registro SCSR) y se genera una interrupción, sí esta se encuentra habilitada. La transmisión esta sincronizada por el reloj RT y cuando es completada se pone el bit TC (transmisión completa), y es posible generar una interrupción, en este momento. Si se deshabilita el transmisor a la mitad de una transmisión, se envía completo el carácter antes de ceder el control del pin RxD.

Recepción

Sí se encuentra habilitada la lectura del registro SCDR, proporciona el último byte de datos recibido. El bit RDRF indica cuando se ha transferido la información del registro de corrimiento al de datos, lo cual se hace sincronizado por el reloj RT; si hay algún error en la recepción, puede ponerse alguna de las siguientes banderas OR (over-run), NF (noise) o FE (framing).

1.8.3 REGISTROS

Son cinco los continuación:

DE CONTROL SCI

registros usados en el sistema SCI, los que se enumeran a

29

Page 36: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

I .

2.

3.

4.

5.

SCDR (Registro de Datos de Comunicación Serial) Este registro realiza dos funciones, las cuales son: a) Es el registro receptor de datos. b) Es el registro transmisor de datos

SCCRI (Registro de Control 1 de Comunicación Serial) Proporciona los bits que controlan: i. Longitud de la palabra. ii. Selección del método para despertar a un receptor, en caso de

necesitarlo

SCCR2 (Registro de Control 2 de Comunicación Serial) Este registro habilita/deshabilita las funciones individuales del SCI. Bit 7 TIE - Habilita las interrupciones por el transmisor Bit 6 TClE - Habilita las interrupciones cuando se ha completado una transmisión Bit 5 RIE - Habilita las interrupciones por el Receptor Bit 4 ILlE - Habilita las interrupciones por una línea ociosa Bit 3 TE - Habilita al transmisor Bit 2 RE - Habilita al Receptor Bit I RWU - Despertar al receptor Bit O SBK - Envío de ruptura

SCSR (registro de estado del SCI) Este registro contiene todas las banderas de estado relacionadas con el SCI

BAUD (registro de Baud rate) Selecciona el Baud rate, usado para controlar al transmisor y receptor.

30

Page 37: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.9 TIMER PRINCIPAL, INTERRUPCION EN TIEMPO REAL Y ACUMüLADOR DE PULSOS

1.9.1 TIMER PRINCIPAL

La base del sistema de Timer lo constituye un contador de 16 bits que "corre-libremente" (free-running), y un prescalador programable de cuatro etapas; a los cuales me referiré con mayor detalle en párrafos posteriores. Este subsistema es manejado totalmente por software y es el que involucra más registros y bits de control.

1.9.1.1 CARACTERISTICAS:

- Contador de tiempo de 16 bits con un prescalador programable de cuatro etapas.

- Existe una función de sobreflujo del timer, que permite extender la capacidad de conteo del sistema más alla de los 16 bits.

- Tres funciones de captura de entrada, cada una de las cuales cuenta con un latch, para capturar la información.

- Cinco funciones de comparación de salida, cada una tiene un registro comparador.

- La función de comparación de salida 1 puede realizar comparaciones de salida forzadas.

- Se considera como parte de este subsistema, un circuito de interrupciones periódicas programables, llamado Interrupciones de Tiempo Real (RTI)

Todas las funciones del Timer incluyendo la de sobreflujo y RTI cuentan con un control de interrupciones así como su vector correspondiente, de forma individual.

También cuenta con bits adicionales de control para seleccionar por software la polaridad de la transición que dispara cada captura de entrada así como la acción automática que resulta de una comparación de salida.

Todas las funciones del timer se llevan a cabo por el puerto A.

31

Page 38: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.9.1.2 CONTADOR PRINCIPAL TCNT, "CORRE-LIBREMENTE"

Este contador (TCNT) esta direccionado en $100E (byte alto) y $IOOF (byte bajo), es la parte central del timer, y como ya se menciono es de 16 bits y es de incremento, inicia la cuenta a partir de un reset ($0000) y una vez alcanzada la cuenta máxima ($FFFF) inicia nuevamente.

Se dice que "corre-libremente", pues no hay forma de resetear, cambiar o interrumpir por software la cuenta, sin embargo es posible leerlo en cualquier momento sin afectarlo.

Para leerlo se utilizan preferentemente instrucciones de doble byte, apareciendo primero el byte alto de la cuenta y después el byte bajo, pero también es posible leerlo con instrucciones de un solo byte.

1.9.1.3 PRESCALADOR

Este prescalador permite al usuario seleccionar una de cuatro velocidades de reloj para controlar al contador principal. Esta selección permite hacer un intercambio entre la resolución y el rango del contador. Por ejemplo automáticamente TCNT trabaja a la velocidad del reloj E que da como resultado una resolución del timer de 500 nanoseg. y un rango de tiempo de 32.77 mseg entre el sobreflujo; si en cambio se elige el prescalador mayor, su velocidad de trabajo es el reloj E dividido por 16, con lo que nos da una resolución de 8 microseg. y un rango de 524.3 mseg. entre el sobreflujo ( en ambos casos E= 2 MHz).

Es importante considerar el rango de TCNT porque el software necesario para las funciones del timer que necesitan usar el sobreflujo es más complejo.

Otro factor a considerar en la selección del prescalador es el consumo de potencia, pues este, es directamente proporcional a la frecuencia de operación del timer.

El factor del prescalador es seleccionado utilizando los bits PRI y PRO del registro TMSK, la tabla 1.9.1, muestra la relación entre el factor prescalador y el valor de los bits de control. Un valor del prescalador de 1 implica que la frecuencia de operación corresponde a la del reloj E dividido por 1, mientras que un valor de 16 nos dice que la frecuencia del reloj E esta dividida por 16.

32

Page 39: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 1.9.1 - FRECUENCIA DE CRISTAL VS VALORES DE PRI Y PRO

PRI PRO FACTOR DEL PRESCAIADOR

O O 1 O 1 4 1 O 8 1 1 16

FREC. DEL CRISTAL= 8MHZ (E=2MHZ) RESOLUCION: 1 CUENTA RANGO: SOBREFLUJO

500nd32.77 ms 2 microdl31 .I ms 4 micros./262.1 ms 8 micros./524.3 ms

1.9.1.4 FUNCIONES DE CAPTURA DE ENTRADA

Todos los registros de estas funciones son de 16 bits, de solo lectura y no son afectados por un reset; son utilizados para guardar el contenido de TCNT cuando detecta una señal.

Con estas funciones es posible registrar el tiempo en que algún evento externo ocurre, lo cual se consigue guardando el contenido de TCNT cuando un pulso especificado se detecta en el pin de entrada del timer respectivo.

Nos permiten registrar el tiempo en que ocurren pulsos sucesivos de una señal de entrada y por software podemos establecer el período y10 el ancho de la misma. Para medir el período se detectan dos transiciones sucesivas de igual polaridad, en cambio para determinar el ancho del pulso se detectan transiciones sucesivas de polaridad opuesta. Una gran parte del trabajo se realiza por software, por ejemplo para establecer el ancho de un pulso se debe restar de la cuenta obtenida cuando se detecto una transición de subida, la cuenta acaecida al sensar una transición de bajada.

Otro uso importante de estas funciones es el fijar una referencia de tiempo. En este caso se trabaja de manera conjunta con las funciones de salida a la comparación. Por ejemplo si se desea generar una señal de salida cierto número de ciclos de reloj después de haber detectado una señal, obteniendo un valor de cuenta 1, se debe agregar el número de cuenta que representa el retardo deseado a la cuenta 1 y guardarlo en el registro de comparación de salida. Como ambas funciones están reguladas por TCNT es importante en estos casos considerar su resolución.

33

Page 40: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.9.1.5 FUNCIONES DE COMPARACION DE SALIDA

Estas funciones se utilizan para programar que una acción ocurra en un tiempo específico (TCNT alcanza un valor específico). Cada una de estas funciones cuenta con un registro comparador (separado) y un comparador dedicado (no es accesible al usuario). Todos estos registros son de lecturdescritura, de 16 bits y son inicializados a $FFFF después de un reset. El contenido del registro comparador es comparado con la cuenta de TCNT y cada vez que son iguales automáticamente se pone una bandera de estado de comparación y se genera una acción específica. Por medio del registro TCTLI , es posible elegir una de las cuatro siguientes acciones:

a) Desconectar el timer de la salida del pin. b) TOGGLE la línea de salida (OCx) c) Limpia la línea de salida (OCx), poniéndola en cero d) Poner en la línea de salida (OCx) un uno.

También es posible generar una interrupción.

Algunos de los usos que se le pueden dar a estas funciones son: Producir un pulso de una duración específica. -

- Generar un retardo.

I .9.1.6 REGISTROS ASOCIADOS A LAS FUNCIONES DEL TIMER

Los registros asociados al timer son explicados brevemente a continuación.

I .- Registro CFORC - Registro de timer para comparaciones forzadas. ($1 OOB)

Este registro se usa para forzar acciones tempranas en la salida a la comparación. Es un registro de 8 bits Únicamente de escritura. No se recomienda el uso de este tipo función, cuando se selecciono como acción a ejecutar un TOGGLE, pues se da una comparación normal inmediatamente antes o después de una comparación forzada lo que genera operaciones indeseables.

2.- Registro OCI M - Registro de Mascara 1 de Comparación de Salida ($1 OOC)

Este registro junto con la salida a la comparación 1 especifican los bits del puerto A que serán afectados al darse la comparación esperada en OC1 . Los bits de este registro corresonden bit a bit con los pines del puerto A (pines del 7 ai 3).

34

Page 41: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

3.- Registro OCI D - Registro de Datos de Comparación de Salida ($1 OOD)

Trabaja junto con la comparación de salida 1 para especificar el dato que será almacenado en los bits del puerto A, que se afectaran en la comparación.

4.- Registro TCTLI- Registro de Control del Timer 1 ($1020)

Este registro permite especificar la acción a seguir como resultado de una comparación exitosa (como se menciono en párrafos anteriores). Sus bits son: OM2, OM3, OM4 y OM5 - Modo de Salida. OL2, OL3, OL4 y OL5 - Nivel de Salida

5.- Registro TCTL2 - Registro de Control del Timer 2 ($1021)

Es limpiado a cero por el reset, y establece las condiciones que seran sensadas en la señal de entrada. Sus bits son EDGxB y EDGxA que corresponden al control de transición al capturar la entrada x, la decodificación es la siguiente:

EDGxB EDGxA CONF IGUFWC ION

O Captura deshabilitada 1 O 1 Detecta cualquier transición

Solo detecta transición de subida Solo detecta transición de bajada

6.- Registro TMSKI - Registro de Mascara de Interrupciones del Timer 1 ($1 022)

OCxl - Interrupción de comparación de salida x Si el bit que habilita OCxl es puesto cuando la bandera OCxF esta puesta, generando un requerimiento de interrupción por hardware.

ICxl - Interrupción de captura de entrada x. Si el bit que habilita ICxl es puesto cuando la bandera ICxF esta puesta, se hace una petición de interrupción por hardware.

35

Page 42: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

7.- Registro TFLGI - Registro de Banderas de Interrupciones del Timer I ($1 023)

Este registro indica que ha ocurrido un evento en el sistema del timer y junto con el registro TMSKI permite al subsistema del Timer operar manejando interrupciones o por muestreo. A cada bit de este registro le corresponde un bit en TMSK. Para limpiar estas banderas se debe escribir un uno en el bit de posición correspondiente a la bandera que se desea limpiar, las instrucciones de manipulación de bit son inapropiadas para limpiar estas banderas.

OCxF- Bandera de salida a la comparación x. Esta bandera es puesta cada vez que ocurre una comparación exitosa.

ICxF- Bandera de entrada capturada x. Esta bandera se pone cada vez que se detecta una señal a la entrada. Recordemos que la señal detectada es especificada en el registro TCTL2.

8.- Registro TMSK2 - Registro de Mascara de Interrupciones del Timer 2 ($1 024)

Este registro controla si se da o no un requerimiento de interrupción por hardware cuando se pone la bandera de estado del registro TFLG2.

Bit 7 TO1 - Habilita la interrupción de sobreflujo del timer TOI=O deshabilita las interrupciones TOi=l genera una interrupción cuando TOF=I

Bit 6 RTll - Habilita interrupciones de RTI RTI I =O des ha bi I i ta interrupciones RTII=I genera una interrupción cuando RTIF=I

Bit 5 PAOVI - Habilita las interrupciones al sobreflujo del acumulador de pulsos

PAOVI=O Interrupción deshabi I itada PAOVI=I Requiere una interrupción cuando PAOVF=I

Bit 4 PAll - Habilita interrupciones a la entrada del acumulador de pulsos PAII=O Interrupción deshabilitada PAII=I Ocurre una interrupción cuando PAIF=I

Bit 3 y 2 No se utilizan 36

Page 43: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Bit 1 y O PRI y PRO Selecciona el prescalador del timer En la tabla No. 1.9.1 se muestra el factor que establecen

9.- Registro TFLG2 - Registro de bandera de Interrupciones del Timer 2 ($1 025)

Se usa para indicar que ha ocurrido algún evento en el timer y junto con TMSK2 le permite al subsistema del timer trabajar con interrupciones o por muestreo.

Estas banderas son limpiadas escribiendo un uno en el bit de posición correspondiente a la bandera por limpiar.

Bit 7 TOF - Sobreflujo del Timer Es puesta cada vez que TCNT avanza de $FFFF a $0000

BIT 6 RTlF - Bandera de interrupción de Tiempo Real Es puesta en cada transición de subida del punto seleccionado.

Bit 5 PAOVF - Bandera de Interrupción de Sobreflujo del Acumulador de Pulsos Se pone esta bandera cuando el acumulador de pulsos avanza de $FF a $00.

Bit 4 PAlF - Bandera de Interrupciones de la Entrada de Acumulador de Pulsos Se pone cuando se detecta un pulso activo en el pin de entrada PAL

Bit 3 a O No son utilizados.

1.9.2 INTERRUPCION DE TIEMPO REAL

Esta función se usa para requerir una interrupción por hardware a períodos fijos, esto puede ser útil para tener la referencia de períodos de tiempo de una señal. En función de las necesidades de cada aplicación se cuenta con cuatro posibles velocidades de esta señal y están en función de la frecuencia del MCU, y se determinaran por los bits RTRI y RTRO del registro PACTL.

37

Page 44: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

I .9.3 ACUMULADOR DE PULSOS

El acumulador de pulsos es un contador de lectura/escritura de 8 bits, puede operar de cualquiera de los dos siguientes modos: a) Contador de eventos externos.

En este caso cada vez que se detecta un evento externo se incrementa el contador; la máxima velocidad de conteo es igual a la frecuencia de E dividida por dos.

b)

siempre que el pin PA1 este activo.

Acumulador de tiempo de compuerta. En esta modalidad el contador se incrementa cada 64 ciclos de reloj E

El pin PA1 del puerto A es usado por el acumulador de pulsos, el cual también puede ser configurado como un pin I/O de propósito general.

El acumulador de pulsos cuenta con los siguientes registros

1 .- Registro PACNT - Contador del Acumulador de Pulsos ($1 027) Es un contador de 8 bits es de lectura/escritura.

2.- Registro PACTL - Registro de Control del Acumulador de Pulsos ($1026) Es el registro que controla al acumulador de pulsos

Bit 7 DDRA7 - Control de la Dirección de Datos del Bit 7 del Pto. A Si es O el bit 7 es configurado como una entrada Si es 1 Se configura como salida

Bit 6 PAEN - Habilita al Acumulador de Pulsos O = Deshabilitado el acumulador de Pulsos, el contador se detiene y

se deshabilitan las interrupciones. I = Habilita al acumulador de pulsos

Bit 5 PAMOD - Selecciona el Modo del Acumulador de Pulsos O = Cuenta eventos externos I = Modo de acumulador de tiempo de compuerta

Bit 4 PEDGE - Selecciona la transición del Acumulador de Pulsos Este bit tiene diferentes significados, dependiendo del estado del bit PAMOD

38

Page 45: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

PAMOD PEDGE ACCION SOBRE EL RELOJ

O O Se incrementa con la transición de subida O 1 Se incrementa con la transición de bajada 1 O Un cero en PA1 inhibe la cuenta I 1 Un uno en PA1 lnhibe la cuenta.

Bit 3 DRRA3 - Dirección de Datos del Bit 3 del Pto. A O = Solo entrada 1 = Salida

Bit 2 14/05 - Captura la entrada 41 Salada a la comparación 5 O = Habilita la función de salida a la comparación 5 1 = Habilita la función de captura la entrada 4

Bit 1 y O RTRI y RTRO - Selecciona la velocidad de Interrupciones RTI Estos dos bits seleccionan una de cuatro posibles velocidades de interrupción en el circuito de interrupción de tiempo real.

39

Page 46: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

1.10 RESET E INTERRUPCIONES

1.1 O. 1 RESET. DESCRIPCION GENERAL

Existen cuatro posibilidades para resetear al MCU, y son:

I .- Apagar el circuito (Power-on) 2.- Recibir un cero lógico en el pin externo del reset (RESET) 3.- Por el sistema timer de "Perro Guardián" COP. 4.- Por el monitor del reloj.

Una vez que se detecta una condición de reset, internamente se genera un muestre0 de este pin (RESET), 6 ciclos de reloj después, si detecta un I lógico, implica que el reset fue generado internamente, ya sea por el timer de "perro guardián" o por el monitor de reloj, en caso contrario se genero externamente.

A continuación de un reset, el CPU busca el vector de inicio en las localidades $FFFE y $FFFF ( $BFFE y $BFFF si esta en el modo bootstrap o de prueba), sus registros se encuentran indeterminados, todas las interrupciones son deshabilitadas, y las banderas de estado son limpiadas.

1.1 O. 1.1 RESET "PERRO GUARDIAN" COP

Es un sistema de protección contra fallas por software. El sistema de "perro guardián" esta basado en un timer que "corre-

libremente", y que tiene establecido un período de tiempo (llamado tiempo fuera) que al cumplirse genera un reset. Este tiempo fuera solo se alcanza cuando una secuencia de software no empieza a ejecutarse a tiempo.

Para que se genere el reset se debe cumplir estrictamente con la sig u i en te secuencia:

a) b)

Escribir $55 al registro COP de reset (COPRST) en la dirección $103A Escribir $AA a este mismo registro.

Entre ambas escrituras pueden ser ejecutadas cualquier número de

La lectura del registro COPRST no afecta el timer y no regresa datos

40

instrucciones.

significativos.

Page 47: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Es posible especificar uno de cuatro períodos de tiempo en el timer de este sistema y aún es posible deshabilitarlo completamente.

1.1 O. 1.2 MONITOR DEL RELOJ

Detecta la ausencia de uno o más ciclos de reloj E, con una certeza de 5 a 100 microseg. Esto quiere decir que a una frecuencia de 200 Khz o más no genera una falla, pero si la frecuencia del reloj E es de 10 Khz o menos definitivamente causa la falla del monitor del reloj y por lo tanto se genera un reset.

1.10.2 INTERRUPCIONES

Contamos con 18 fuentes independientes de interrupciones de las cuales solo una es por software; y es posible dividirlas en dos categorías:

a) Mascarables: Es posible enmascarar 15 fuentes a la vez usando el bit I del CCR, o en su defecto se pueden enmascarar individualmente por los bits de control locales.

i.- Interrupción al detectarse un código de operación ilegal ii.- La interrupción por software (SWI) pertenece a este grupo, pues no es inhibida por los bits de mascara global de interrupciones (X e I) . Esta interrupción es atendida de forma similar a cualquier interrupción mascarable, sin embargo una vez que empieza a ser atendida no es posible atender otra interrupción hasta que se haga un fetch de su vector. iií.- La interrupción externa correspondiente al pin XIRQ, se considera no mascarable pues una vez habilitada no es posible enmascararla por software.

b) No-mascarables:

Cuando una interrupción interna o externa ocurre, se pone la bandera de estado indicando la petición. La interrupción será atendida hasta que se termine de ejecutar la instrucción actual, mientras tanto se considera que la interrupción esta pendiente, una vez atendida la interrupción se limpia la bandera de petición. Para resolver a cual interrupción atender primero, en el caso de que sean varias las peticiones al mismo tiempo, las fuentes de interrupción están "ordenadas" por niveles de prioridad. Sin embargo mediante el registro HPRIO, es posible modificar dinámicamente el nivel de prioridad de dichas fuentes.

41

Page 48: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Cada una de estas fuentes cuenta con un vector localizado en memoria (en direcciones fijas), donde se escribe la dirección de la rutina de atención a la interrupción (RAI).

La tabla 1.10.1, muestra una lista de las fuentes de interrupciones, la localización en memoria de sus vectores, el bit en CCR que las afecta y

TABLA NO. 1.10.1 - FUENTES DE INTERRUPCION

Dirección del vector FFCO, C1

FFD4, D5 FFDG, D7

FFD8, D9

FFDA, DB

FFDC, DD

FFD,E, DF FFEO, E l

FFE2, E3

FFE4, E5

FFEG, E7

FFE8, E9

FFEA, E6

FFEC,ED

FFEE, EF

Fuente de Interrupción

Reservada

Reservada Sistema Serial SCI

Transferencia Serial Completa Pulso de entrada del Acumulador de Pulso Sobreflujo del Acumulador de Pulso Sobreflujo del Timer Timer Comparación de Salida 5 Timer Comparación de Salida 4 Timer Comparación de Salida 3 Timer Comparación de Salida 2 Timer Comparación de Salida 1 Timer Captura de Entrada 3 Timer Captura de Entrada 2 rimer Captura de Entrada 1

Causa de interrupción

a) Reg. Receptor de datos lleno b) Desbordamiento del receptor c) Detección de línea ociosa d) Reg. Transmisor de datos vacío e) Transmisión completa

Mascara en CCR

Bit I

Bit I

Bit I

Bit I

Bit I Bit i

Bit I

Bit I

Bit I

Bit I

Bit I

Bit I

Bit I

Máscara Local

a) RIE

b) RIE

c) ILlE

d) TIE

e) TClE

SPlE

PAll

PAOVI

TO I OC51

OC41

OC31

oc21

OCl I

OC31

oc21

o c 1 I

42

Page 49: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA No. 1.10.1 FUENTES DE INTERRUPCION (CONTINUACION)

Dirección del vector FFFO, F1

FFF2, F3

FFF4, F5

FFFG, F7 FFF8, F9

FFFA, FB

FFFC, FD

FFFE, FF

Interrupción Interrupción

Interrupción de Tiempo Real IRQ (Pin externo o 110 Paralelo)

Pin XlRQ (Int. Pseudo no-mascara ble) SWI Detección de Opcode Ilegal Reset "Perro Guar- dián" COP Reset por el reloj monitor de COP RESET

a) Pin Externo b) Comunicación I/O Paralelo

Mascara en CCR Bit I

Bit I

Bit X

Ninguno Ninguno

Ninguno

Ninguno

Ninguno

Máscara Local

RTI I

a) Ninguno b) STA1

Ninguno

Ninguno Ninguno

NOCOP

CME

Ninguno

43

Page 50: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros
Page 51: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2. EVBU

2.1 INFORMACION GENERAL

El EVBU es un instrumento Útil en la evaluación/depuración de los MCUs MC68HCllA8, E9, 71 1 E9 y 81 11 E9, sin embargo no reemplaza instrumentos más potentes, como el modulo de evaluación MC68HC11 EVM.

2.1.1 CARACTERISTICAS

Las características del EVBU son:

1. Una línea de ensamble/desensamble.

2. Cuenta con un circuito de evaluación/depuración basado en el MCU MC68HC11.

3. Capacidad de transferencia de programas (download) con una P.C.

4. Reloj de tiempo real MC68HC68Tl + RAM con circuitería para una interfase periférico serial.

5. Terminal RS-232C compatible con un puerto 110.

6. lnterfase a un área de wire-wrap.

7. Requiere una fuente de potencia de +5vdc

2.1.2 ESPECIFICACIONES

La Tabla 2.1 .I específica las condiciones de trabajo del EVBU

44

Page 52: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA 2.1 .I - ESPECIFICACIONES DEL EVBU

CARACTE RI STICAS ESP EC IF I CAC I ON ES

MCU MC68HC11 E9FN1

Terminal del puerto I/O Compatible con un RS-232C

Temperatura: Operación Almacenamiento

+25O C -40 a +80 grados C

Humedad relativa O a 90% (no condensada)

Requerimientos de Potencia: Primaria (PI, Vdd) Secundaria (PI, Vdd) (Opcional) Bateria de respaldo (P3) + 3 V d c @ 2 5 d (Opcional)

+5vdc @ 50 mA +7.5 A + I4 vdc @ 50 mA

Dimensiones: Ancho Largo

Area de wire-wrap Area

Orificios

8.255 cm. (3.25 pulgadas) 16.986 cm. (6.69 pulgadas)

Aproximadamente 7.62 cm2

29 de ancho X 30 de alto (3 pulgadas cuadradas)

2.1.3 DESCRIPCION GENERAL

Las principales ventajas del MCU MC68HC11, son que en el mismo integrado existe un área de memoria, y además realiza funciones periféricas. Cuenta además con un programa llamado BUFFALO (Bit User Fast Friendly Aid to Logical Operations) que permite al usuario monitorear o depurar programas en código ensamblador. Este programa se encuentra en la memoria ROM del MCU.

45

Page 53: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Dicho código puede ensamblarse por dos métodos distintos:

Utilizando el comando de ensamblado del programa monitor BUFFALO.

Ensamblarlo en una P.C. y después convertirlo a lenguaje máquina con el ensamblador as*.exe (para mayores referencias ver sección 2.5), que en este caso denominaremos formato de registro-S, efectuando posteriormente la transferencia (download) al EVBU.

La comunicación y la transferencia de datos entre el EVBU y la P.C. se realiza mediante la circuitería del puerto I10 implementada en base a la configuración RS-232C por lo cual es necesario contar con una terminal de conección compatible.

46

Page 54: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.2 HARDWARE

2.2.1 DESCRIPCION GENERAL

La figura 2.2.1 inuestra los conectores, interruptores y puentes instalados en el EVBU.

DIAGRAMA DE CONECTORES

O

IC; C

Page 55: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Con la siguiente asignación:

PUENTES

J1 Selecciona la potencia de entrada. El suministro habitual es de +5 vdc @ 50 mA, pero si no se cuenta con una fuente como esta es posible seleccionar una entrada de 7.5 a 14 vdc a la entrada del conector PI . Para mayor información leer instrucciones de instalación.

J2 Selección del programa a ejecutar. Determina si se activa el programa monitor BUFFALO o si efectúa un "salto" interno a la EEPROM, y ejecuta el programa código del usuario sin intervención del BUFFALO Después de un reset el programa monitor BUFFALO detecta el estado de la línea PEO; si detecta un cero lógico (el puente en J2 debe estar en los pines 2 y 3), se ejecuta el programa monitor, si en cambio detecta un uno lógico (localizar el puente entre los pines 1 y 2), realiza un salto a la EEPROM. El pin PEO se usa para las operaciones del CAD, por consiguiente debe tenerse precaución con el puente instalado en J2.

J3 y J4 Selecciona modo de operación del MCU. En particular el puente J4 tiene una unión, en sus pines I y 2, y deberá ser removida si no se desea trabajar en el modo simple. De igual forma una vez que se corta esta unión y se desea trabajar en modo simple, será necesario agregar un puente externo en J4

La tabla 2.2.1 muestra la forma de seleccionar el modo de operación

48

Page 56: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA No. 2.2.1 - Selección del Modo de Operación

MODA MOD6 MODO DE OPERACION J4 53 DEL MCU

Instalado* Retirado Modo Single-Chip

Ret irado* Retirado Multiplexado - Expandido

Instalado* Instalado Modo Bootstrap - Especial

Retirado" Instalado Modo de prueba

Notas:

El puente instalado denota un cero lógico o una conexión a tierra.

Retirar un puente denota un 1 lógico o una condición a bierto/pul I up

* Significa que la unión de J4 no se ha retirado y/o se instalo un puente externo

* Significa que la unión de J4 si se retiro además de que no existe un puente externo

J5 y J6 Reconfiguración del reloj del MCU.

J7 Habilita la operación de trazo por el BUFFALO. Este puente conecta la señal PA3/OC5 a la señal XIRQ permitiendo así la ejecución de varios comandos, como proceed(P), STOPAT, y trazo (T), quienes serán explicadas con más detalle posteriormente.

J 8 y J9 Reconfiguración del SCI.

JIO a J13 Reconfiguración del SPI.

49

Page 57: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

J14 INT* reloj de tiempo real, este puente desconecta la linea XlRQ del pin de señal del dispositivo periférico. INT* corresponde a la señal de salida que es conectada al pin XlRQ del MCU, para efectuar esta conexión es necesario instalar un puente externo en J I 4

J15 Reconfiguración TxD

Los diodos D I - D4 actúan sobre el reloj de tiempo real cuando la bateria de respaldo esta activada.

PUNTOS DE PRUEBA (TPI - TP6)

TPI Salida de reloj

TP2 CPUR = ResetdelCPU

TP3 VSYS = Voltaje del sistema

TP4 LINE = Sensor de línea (line sense)

TP5 POR = Power-on reset

TP6 PSE = Habilita suministro de potencia

Es posible instalar en estos puntos un poste para efecto de monitoreo y por lo tanto verificar las señales cuando se han instalado diversos componentes en el área de wire-wrap.

50

Page 58: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

CONECTORES

P I Interconexión de suministro de potencia

P2 Conector terminal del puerto I10

P3 Interconexión de bateria externa

P4 Es un conector de 60 pines que facilita la interconexión del MCU del EVBU a un equipo externo o a un Sistema Bajo Prueba (TARGET SYSTEM EQUIPMENT)

P5 Es un conector de 60 pines que permite la comunicación del MCU en el EVBU con los componentes del área de wire-wrap.

El área de wire-wrap es de aproximadamente 3 pulgadas cuadradas y cuenta con 29 hoyos de ancho por 30 de largo. Tiene una línea de tierra (GND) rodeando esta area, y visto desde su cara superior observaremos un bus de +5 vdc en la esquina superior izquierda.

2.2.2 INSTRUCCIONES DE I NSTALAC ION

El EVBU requiere para trabajar una fuente de potencia y una terminal RS-232C compatible, así como un cable para establecer la conexión con una salida serial de la computadora.

Como ya habíamos mencionado el EVBU requiere +5 Vdc @ 50 mA, que debe aplicarse ai conector PI, la figura 2.2.2 muestra una vista superior de este conector.

51

Page 59: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

P i

1 G P i O

2 V D D

Figura 2.2.2

Además de esto es necesario seleccionar en J1 el voltaje de entrada. Para io cual es necesario instalar un puente externo entre los pines 1 y 2 para seleccionar una fuente de +5 Vdc.

En caso de no contar con una fuente de +5 Vdc, es posible utilizar una fuente de mayor voltaje (+7.5 a 14.0 vdc). Con la salvedad de que en este caso se debe instalar un regulador de voltaje MC78LC05C en la localidad U1. Y posteriormente se debe mover el puente instalado en los pines 1 y 2 de J1 a los pines 2 y 3 del mismo.

52

Page 60: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.3 PROGRAMA MONITOR BUFFALO

El BUFFALO (Bit User Fast Friendly Aid to Logical Operations), es el firmware residente o programa monitor del EVBU, se localiza en los 12 KB de la ROM interna.

Consta de cinco partes, que se explican brevemente a continuación.

Inicial ización. Comprende el código de inicialización posterior a un reset

Interprete de Comandos. Después de una inicialización por un reset, en la pantalla de la P.C. aparece la identificación del programa monitor seguida de un retorno de carro o ENTER y una diagonal invertida (\), la información que lee a partir de ese momento es buscada en una tabla de comandos y al ser localizada se le llama como una subrutina.

Rutinas 110 Esta sección esta formada por dos partes que son:

i.- Supervisores de rutinas (INIT, INPUT y OUTPUT), son los encargados de determinar que controlador de rutinas llamar para realizar la acción específica.

ii.- Controlador de rutinas, cada conjunto de controladores de rutinas esta a su vez formado por tres partes; una rutina de inicialización, una rutina de entrada y una rutina de salida.

Subrutinas de utilerías. Son rutinas disponibles, para realizar tareas I/O. Se direccionan mediante una tabla de "saltos", puesta en ROM antes de los vectores de interrupción.

Tabla de comandos Cada comando en el programa BUFFALO es un modulo individual y esta formado por tres líneas ( en la tabla). El primer byte es el número de caracteres en el nombre del comando, la segunda entrada es el nombre del comando en ASCII y el tercero es la dirección inicial al modulo del comando.

53

Page 61: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

VECTORES DE INTERRUPCION

Cada uno de estos vectores tiene asignados tres campos de un byte, en los cuales se debe escribir primero el código de operación de un salto y a continuación una dirección de dos bytes, que indican donde comienza la Rutina de Atención a la Interrupción (MI).

Por ejemplo para usar el vector IRQ, se realizan los siguientes pasos:

a. Escribir en la localidad $OOEE, el código $7E que corresponde a JMP

b. En las localidades $OOEF y $ OOFO escribir la dirección donde inicia la Rutina de Atención a la Interrupción

Durante la inicialización el BUFFALO revisa el primer byte de cada una de estas tres localidades. Si no encuentra ningún código de salto ($7E), el BUFFALO instalará un salto a una rutina llamada STOPIT. Asegurando, así que no se han inicializado vectores de interrupción que podrían causar alguna operación indeseable durante el encendido y apagado. Si accidentalmente se da una interrupción la rutina STOPIT genera la ejecución de una instrucción STOP. El usuario debería reemplazar cualquiera de las instrucciones JMP STOPIT con un JMP a la RAI escrita por él. Si se diera un reset mediante el interruptor Sl , el BUFFALO no sobreescribe estas instrucciones de salto, por lo tanto no necesitan ser reinicializadas después del reset.

La tabla 2.3.1 lista dichos vectores y sus bytes de campo asociados

54

Page 62: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.3.1 - VECTORES DE INTERRUPCION

Vectores de Interrupción

lnterfase de Comunicación Serial (SCI) lnterfase Periférico Serial (SPI) Entrada del Acumulador de Pulsos Sobreflujo del Acumulador de Pulsos Sobreflujo del Timer Comparación de Salida Timer 5 Comparación de Salida Timer 4 Comparación de Salida Timer 3 Comparación de Salida Timer 2 Comparación de Salida Timer I Captura de Entrada Timer 3 Captura de Entrada Timer 2 Captura de Entrada Timer 1 Interrupción de Tiempo Real IRQ XI RQ Interrupción por Software (SWI) Código de operación Ilegal

Computer Operating Properly (COP) Monitor del reloj

Campo

$OOC4 - $OOC6

$OOC7 $OOCA $OOCD $OODO $00D3 $00D6 $00D9 $OODC $OODF $00E2 $00E5 $00E8 $OOEB $OOEE $OOF I $OOF4 $OOF7 $OOFA $OOFD

- $OOC9 - $OOCC - $OOCF - $00D2 - $00D5 - $00D8 - $OODB - $OODE - $00E1 - $00E4 - $00E7 - $OOEA - $OOED - $OOFO - $OOF3 - $OOF6 - $OOF9 - $OOFC - $OOFF

55

Page 63: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4 INSTRUCCIONES DE OPERACION

En los siguientes párrafos se resume la información necesaria para inicializar y operar el EVBU. Serán tratados los siguientes puntos: interruptor de control, limitaciones de operación, formato de la línea de comandos y procedimientos de operación. Estos Últimos se refieren al ensamble/desensamble y transferencia de programas (download).

2.4.1 INTERRUPTOR DE CONTROL

Es el interruptor de reset (SI); si se le presiona resetea al EVBU y por consiguente a la circuitería del MCU.

2.4.2 LIMITACIONES DE OPERACION

El SCI del MCU MC68HCI1, esta puesto para trabajar a 9600 baud con un reloj E de 2MHz. Este baud puede modificarse por software, reprogramando el registro BAUD, ya sea utilizando el comando MM (modificar memoria) o escribiendo la instrucción de modificación en el programa del usuario,

AI modificar el baud tres comandos resultan afectados; MD (despliega memoria), T (trazo) y HELP (ayuda). Esto se corrige modificando el baud del programa comunicador o utilizando otro programa.

Debido entre otras cosas a la forma de operación del MCU y de las interrupciones, así como a la presencia del BUFFALO, existen limitaciones en el manejo del mapa de memoria, razón por la cual se lista a continuación la distribución de esta.

56

Page 64: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.1 - LIMITACIONES DEL MAPA DE MEMORIA

Dirección

$0000

$0048

$0066

$OOC4

$01 O0

$1 O00

- $0047

- $0065

- $OOC3

- $OOFF

- $OIFF

- $103F

$4000

Limitaciones

Disponible al usuario. El BUFFALO localiza automaticamente al apuntador de pila (stack pointer) del usuario en la dirección $0047

Area de la Pila (Stack) del monitor BUFFALO

Variables del BUFFALO

Pseudovectores (saltos) de interrupciones

Disponible al usuario

Registros de control del MCU

Algunas versiones de EVBs tienen direccionado en esta localidad un flip- flop D. Durante la inicialización el BUFFALO 3.2 escribe $00 en la localidad $4000 y distintas operaciones del monitor ocasionan que se escriba $00 o $01 manteniendo así la compatibilidad

57

Page 65: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.1 - LIMITACIONES DEL MAPA DE MEMORIA (CONTINUACION)

Dirección

$9800 - $9801

Limitaciones

En estas localidades el BUFFALO lee y escribe si una terminal de soporte 110 (ACIA) esta presente en el sistema. De modo que si se instala un ACIA en el área de wire-wrap conectando al MCU es necesario referirse al listado del BUFFALO para comprender sus implicaciones

512 bytes de EEPROM

12 KB de ROM Ubicación del programa monitor (BUFFALO)

2.4.3 PROCEDIMIENTO DE OPERACION

En el EVBU, después de un reset, el programa monitor muestrea el estado de la línea PEO para determinar la siguiente acción a ejecutar, como se muestra a continuación:

PEO = O Ejecuta el programa monitor

PEO = I Salta a la localidad $B600 (EEPROM), y ejecuta el código presente; en esta localidad el usuario debe escribir un código de salto y la dirección correspondiente del programa a ejecutarse. (Para realizar cualquier escritura en la EEPROM es posible utilizar el comando MM, como se verá más adelante).

58

Page 66: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Para obtener lo anterior se debe cambiar de posición el puente ubicado en J2, considerando su ubicación en los pines:

1 Y2 Fuera del BUFFALO 2 Y 3 Programa monitor

Cuando se necesita realizar una transferencia, es necesario disminuir el baud rate, tanto en el program? monitor como en el programa emulador de terminal. Primero se cambia el del BUFFALO, io cual se puede hacer utilizando el comando MM, tal como se muestra a continuación:

>MM 102B (retorno de carro)

102B 30 35 (retorno de carro) (se seleccionan 300 baud)

Posteriormente se debe igualar el baud del programa emulador, para a continuación solicitar la transferencia:

>LOAD T (retorno de carro)

En este momento el BUFFALO, espera el archivo tipo registro-S de la P.C., una vez terminada la operación observaremos el siguiente mensaje en la pantalla:

done >

Como el baud es lento, todas las instrucciones se ejecutan también lentamente, por eso es recomendable restaurar a continuación, ambos a 9600 baudios.

Para mayor información referirse a la sección 2.4.6.1 Transferencia de programas usando LOAD.

59

Page 67: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.4 FORMATO DE LA LINEA DE COMANDO

El formato de la línea de comando es como sigue:

~~c~mando~[~parámetros~](retorno de carro)

donde:

> Prompt del monitor EVBU <comando> <parámetros> Expresión o dirección

Mnemónico del comando (palabra completa o una letra)

(retorno de carro)

Notas:

(1 El formato de la línea de comando se define usando caracteres especiales, cuyo significado sintáctico es el siguiente:

<> Encierra variables sintácticas [ ] Encierra campos opcionales [ I.. . Encierra campos opcionales repetidos

Estos caracteres no son introducidos por el usuario, son solo para propósitos de definición.

Los campos están separados por cualquier número de espacios, comas o carácter de tabulación.

Todos los números introducidos son interpretados como hexadecimal.

Todos los comandos de entrada pueden introducirse en mayúsculas o minúsculas, pues son convertidos automáticamente a mayúsculas, excepto los de transferencia (download) de programa de la PC al EVBU o cuando esta operando en el modo transparente.

La línea de formato de comando acepta un máximo de 35 caracteres, al introducir el carácter número 36, automáticamente trunca el comando e inmediatamente despliega el mensaje "Too long".

60

Page 68: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Los errores pueden corregirse por un espacio seguido de (CTRL-H), o bien abortando el comando (CTRL-X o DELETE).

(6)

Presionando un retorno de carro se repite el comando más reciente, excepción hecha con LOAD.

(7 )

2.4.5. COMANDOS DEL MONITOR

Puede usarse en muchos casos una letra o un símbolo específico en lugar del mnemónico completo det comando, sin embargo existe un número mínimo de letras que deben introducirse para identificar plenamente el comando deseado. En caso de introducir una sola letra, el BUFFALO ejecutara el primer comando que comience con ella.

Se cuenta también con las siguientes teclas de función adicionales:

(CTRL)A Modo de salida transparente o ensamblador

(CTRL)B Pone un comando de ruptura en el modo transparente a la P.C.

(CTRL)H Espacio en blanco

(CTRL)J Alimentación de línea <if> (Line feed)

(CTRL)W Espera/pantalla congelada. Reinicia la ejecución oprimiendo cualquier tecla.

(CTRL)X Comando abortar/cancelar

(DELETE) Comando abortar/cancelar

(RETURN) Comando de entrada/ repetir el último comando

Todas las líneas de comandos son aceptadas cuando se presiona la tecla de retorno de carro.

6 1

Page 69: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.2 - COMANDOS DEL PROGRAMA MONITOR

Comando Descripción

ASM [<dirección>]

ASSEM

BF <direcl ><direc2><dato>

BR [-I [<dirección>]. . .

BREAK

BULK

BULKA

BULKALL

CALL [<dirección>]

COPY

DUMP

ERASE

FILL

Ensamblado/desensam blado

Igual que ASM

Llena un bloque de memoria con el valor de dato

Pone puntos de ruptura en la dirección o direcciones especificadas

Igual a BR

Borra un bloque de EEPROM

igual a BULKALL

Borra un bloque de EEPROM + el registro CONFIG (en este Último solo funciona en el modo de prueba o bootstrap)

Ejecuta una subrutina

Igual a MOVE

Igual a MD

Igual a BULK

Igual a BF

62

Page 70: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.2 - COMANDOS DEL PROGRAMA MONITOR (CONTINUAC ION)

Comando Descripción

G [<dirección>] Ejecuta un programa

GO Igual a G

HELP

HOST

LOAD <T>

Despliega los comandos en el monitor de la PC

Igual a TM

Transferencia o carga de programas (Download) (registro-S), vía el puerto terminal

MEMORY Igual a MM

MD [<direcl >[<direc2>] ] Despliega un bloque de memoria

MM [<dirección>] Modifica memoria

MOVE<direcl ><direc2>[<destino>] Mueve un área de memoria a una nueva localidad

P

PROCEED

RD

Continúa la ejecución de un programa sin tener que retirar los puntos de ruptura

Igual a P

Igual a RM

6 3

Page 71: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.2 - COMANDOS DEL PROGRAMA MONITOR (CONTINUAC ION)

Comando Descripción

READ

REG I STE R

RM [PI XI Y, a, bl c, s,l

STOPAT <dirección>

T [cn>]

TM

TRACE

VERF <T>

XBOOT [cdirecl >[<direc2>] ]

?

[<dirección>]/

Igual a MOVE

Igual a RM

Modifica/despliega los registros del MCU al usuario

Alto en la dirección marcada

Trazo, puede ejecutar desde $01 hasta $FF instrucciones

Entrada al modo transparente

Igual a T

Compara la memoria con los datos introducidos por transferencia (download), vía el puerto de la terminal.

Pone el programa a otro MC68HC11 vía el modo bootstrap

Igual a HELP

Igual a MM [<dirección>]

Presentamos a continuación una explicación más amplia de estos comandos, junto con algunos ejemplos.

64

Page 72: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Los ejemplos en este capítulo, cuentan con las siguientes características:

a. El comando que debe introducir el usuario esta subrayado

b. Como mencionamos antes la línea de comando es aceptada cuando se presiona un retorno de carro (RETURN), por lo cual no esta escrito en los ejemplos

2.4.5.1 ASM (ENSAMBLADO/DESENSAMBLADO)

ASM[<dirección>]

donde: <dirección> Es la dirección inicial de la operación de ensamblado. Si

no se específica esta dirección se asume automáticamente que se refiere al inicio de la RAM interna.

Cada línea fuente es convertida en código de lenguaje máquina y se almacena en la memoria, escribiendo sobre los datos previos. Cuando se desea desplegar una instrucción, el código de máquina es ensamblado y tanto el mnemónico de la misma como sus operandos son desplegados. Todos los códigos válidos son convertidos a lenguaje ensamblador, en cambio todos los códigos no válidos son desplegados en la pantalla como "ILLOP".

Las reglas sintácticas son:

a) Todos los valores numéricos se asumen como hexadecimales.

b)

c)

Los operandos pueden ser separados por uno o más espacios o un ta bulador. Cualquier carácter o caracteres que sigan a un mnemónico válido y sus operandos asociados, se asumen como comentarios y son ignorados.

65

Page 73: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Los modos de direccionamiento son:

Direccionamiento inmediato, se determina si a la dirección le precede un signo #.

Direccionamiento indexado.

Direccionamiento directo y extendido, la especificación de alguno de estos esta dada por la longitud del operando de dirección (2 bytes, uno de código y uno para la dirección efectiva, indican directo, 3 o 4 bytes, uno o dos de código y dos para la dirección efectiva, indican extendido). Es posible forzar el direccionamiento extendido, llenando el operando de direcciones con ceros.

El offset relativo a las instrucciones de salto condicional (branch) es calculado por el ensamblador.

Si no hay una línea fuente por ensamblar o hay un error en esta, el contenido de la memoria permanece sin cambio.

Cuatro instrucciones pares tienen el mismo código, así al ser desensambladas se despliega el siguiente mnemónico.

Arithmetic Shift Left (ASL)/Logical Shift Left( LSL), se despliega ASL

Arithmetic Shift Left Double (ASLD)/Logical Shift Left Double (LSLD), se despliega LSLD.

Branch if Carry Clear (BCC)/Branch if Higher or Same (BHS), se despliega BCC.

Branch if Carry Set (BCS)/Branch if Lower (BLO), se despliega BCS.

Si se intenta efectuar el ensamblado a una dirección que no corresponde a la RAM o a la EEPROM se despliega un mensaje de dirección inválida (xxxx=invalid addres).

Cuando se detecta un error, se despliega el mensaje correspondiente y se reabre la misma dirección.

66

Page 74: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Contamos además con las siguientes opciones:

I Ensambla la línea escrita y desensambla la misma dirección.

A Ensambla la línea escrita y desensambla la dirección secuencia1 siguiente.

(RETURN) Ensambla la línea escrita y desensambla el siguiente código de operación.

(CTRL)J

(CTRL)A

>ASM O1 O0

0100 STX 86 55

0102 STX 97 co

0104 STX AE O0

O104 STX

Ensambla la línea escrita y si no hay una nueva línea para ensamblar, desensambla la siguiente localidad, o sea el si g u i en te código.

Salida de la operación de ensamblado

EJEMPLOS

$FFFF

$FFFF

$FFFF

$FFFF

Branch out of range

0106 STX $FFFF 20 28

0108 STX $FFFF >

>LDAA #55

STAA CO

>LDS 0,X

>BRA C500

>BRA 0130

CTRL )A

DESCRlPCiON

indica que se ejecutara el comando ASM a partir de la dirección $01 O0

En esta instrucción el signo # indi- ca direccionamiento inmediato

Emplea direccionamiento directo ya que solo emplea 2 bytes de código

El uso de los registros índice implica direccionamiento indexado

En este caso el offset del salto condicional esta fuera de rango, por lo que se despliega un mensaje de fuera de rango

El offset requerido para ejecutar el salto se calcula automáticamente

Ensamblamado terminado

67

Page 75: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Como las localidades $01 00-$0108 contenian $FF, al desensamblarlas su código corresponde a STX $FFFF. Los números que aparecen una vez que se introdujo la instrucción, corresponden al código de operación y a la dirección efectiva.

2.4.5.2 BLOCK FILL (LLENAR UN BLOQUE)

BFcdirecl ><direc2><dato>

donde:

<direcl> Inicio del área de memoria que se va a llenar

<direc2> Dirección final de esta área de memoria

<dato> Valor en hexadecimal, con el que se va a llenar la memoria

Si se trata de una dirección inválida, se despliega un mensaje de error en la pantalla (xxxx = invalid addres).

EJEMPLOS

>BF O100 OIFF FF

>BF B700 6700 O

DESCRlPCiON

Cada byte de la memoria desde O100 hasta O1 FF es llenado con el dato FF

Pone en la localidad 6700 un O

68

Page 76: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.3 BREAKPOINT SET (PONER PUNTOS DE RUPTURA)

BR[-][<dirección>]. . .

donde:

[-I Retira todos los puntos de ruptura

[-I continúa [<dirección>] ... Retira uno o mas puntos de ruptura en las direcciones indicadas

Este comando pone la dirección del punto de ruptura en una tabla, siendo posible poner hasta cuatro de estos puntos, los cuales pueden ser desplegados en la pantalla. Cuando se ejecuta un programa o subrutina usando alguno de los comandos CALL, G o PI se produce un alto en la dirección del código previo, a la ubicación del punto de ruptura.

Cada uno de estos puntos se acompaña de una interrupción por software (SWI). La rutina de atención SWI salva y despliega el estado interno de la máquina, entonces restaura el código en el punto de ruptura antes de regresar el control al programa monitor.

El código de SWI no puede ser ejecutado por un punto de ruptura porque el programa monitor usa el vector de SWI. No es posible poner puntos de ruptura en localidades RAM o EEPROM.

La tabla 2.4.3 lista los formatos de comando, permitidos para poner uno o varios puntos de ruptura.

69

Page 77: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

TABLA NO. 2.4.3 - FORMATOS DE COMANDO PARA HACER USO DE PUNTOS DE RUPTURA

~~

FORMATO DE COMANDO DESCRiPClON

BR

BR <dirección>

BR cdirecl ><direc2> ...

BR -

BR -<direcl ><direc2>..

BR <direcl> - <direc2> ...

BR <direcl> -<direc2>. . .

Despliega todos los puntos de ruptura

Pone un punto de ruptura

Pone los puntos de ruptura, en las direcciones específicadas

Retira todos los puntos de ruptura

Retira el punto de ruptura en <direcl> y agrega los puntos de ruptura indicados

Agrega un punto de ruptura en <direcl>, limpia todos los restantes y agrega <direc2>

Agrega <direcl>, y retira los restantes a partir de <direc2>

7 O

Page 78: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

EJEMPLOS DESCRIPCION

>BR 0103

0103 O000 O000 O000 >

>BR 0103 0105 0107 O109

Pone un punto de ruptura en la dirección O1 03

Localiza los cuatro puntos de ruptura

0103 0105 0107 O109 >

Despliega todos los puntos de ruptura

0103 0105 0107 O109 >

>BR -0109

0103 0105 0107 0000 >

>BR -0109

O109 O000 O000 O000 >

>BR -

O000 O000 O000 O000 >

>BR EO00

Retira el punto de ruptura en la localidad O1 O9

Limpia todos los puntos de ruptura y agrega O109

Retira todos los puntos de ruptura

En esta dirección no es posible poner un punto de ruptura, pues corresponde a la ROM, como consecuencia se despliega un mensaje de dirección inválida

rom-E000 O000 O000 O000 O000 >

Page 79: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

>BR 0105 O107 O109 0111 O113 Como solo se aceptan cuatro puntos de ruptura. Se despliega un mensaje de buffer lleno

Full 0105 0107 O109 O111 >

2.4.5.4 BULK

Este comando permite al usuario borrar todas las localidades EEPROM en el MCU ( $B600 - $B7FF). Se genera internamente un retardo de 10 ms cuando ei reloj E corre a 2 MHz.

No se despliega ningún mensaje de verificación de borrado, por lo que el usuario debe realizar la verificación utilizando los comandos MM o MD.

EJEMPLO

>BULK

>

DESCRIPCION

Se borran todas las localidades de la EEPROM.

El prompt indica que se ha completado esta operación

72

Page 80: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.5 BULKALL

Este comando permite borrar todas las localidades de EEPROM en el MCU y además el registro CONFIG en la localidad $103F. El registro CONFIG del MCU en el MC68HCllE9, no puede ser modificado en el modo de operación normal.

De igual modo que con el comando anterior no se despliega un mensaje de verificación de borrado.

>

EJEMPLO

>BULKALL

DESCRlPClON

Borra las localidades de la EEPROM y el registro CONFIG

Prompt, indica que ha terminado esta operación

2.4.5.6 CALL (LLAMAR)

CALL [<dirección>]

donde:

<dirección> Corresponde a al dirección donde comienza la subrutina

Esta subrutina le permite al usuario ejecutar cualquier subrutina o programa. La ejecución comienza en la localidad apuntada por el PC (contador de programa), a menos que otra dirección sea indicada. Antes de que el

7 3

Page 81: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

BUFFALO realice la llamada, dos bytes extras son guardados en la pila, y corresponden a la dirección de retorno, o sea a las localidades a donde apuntaba el PC. Finaliza la ejecución cuando se encuentra una RTS, un punto de ruptura o el EVBU es reseteado usando el interruptor SI .

PROGRAMA NO. 2.4.A - EJEMPLO PARA UTILIZARSE CON LOS COMANDOS CALL, G, P y STOPAT

>ASM O100

O100 STX $FFFF >LDAA#44 86 44

0102 STX $FFFF >STAAOlFC B7 O1 FC

0105 STX $FFFF >NOP o1

0106 STX $FFFF >NOP O1

0107 STX $FFFF >NOP o1

0108 STX $FFFF >RTS 39

O109 STX $FFFF >/CTRL)A

Se debe introducir este programa de ejemplo antes de hacer uso del comando CALL

EJEMPLO

>CALL O100

P-O100 Y-DEFE X-F4FF A-44 B-FE >

DESCRIPCION

Ejecuta la subrutina que se encuentra a partir de la dirección $01 O0

C-DO S-O047

Solo cuando encuentra la instrucción RTS despliega el estado que guardan los registros después de que se ejecuto la subrutina (excepto el contenido original de PC)

74

Page 82: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.7 GO (IR A)

G[<dirección>]

donde:

<dirección> corresponde a la dirección donde comenzara a ejecutarse un programa.

Permite al usuario ejecutar un programa ( corriendo en tiempo real). Es posible indicar la dirección a partir de la cual comenzara la ejecución, en caso contrario la ejecución empezará donde esta apuntando el PC. El programa se ejecuta hasta que se encuentra un punto de ruptura o el EVBU recibe un reset por medio del interruptor S I .

NOTAS

Para ejecutar el ejercicio mostrado a continuación, es necesario emplear el programa de ejemplo No. 2.4.A, localizado en la pag. 74, e insertar puntos de ruptura en las localidades $0105 y $0107, para finalmente ejecutar el comando G.

EJEMPLO

>G O100

DESCRIPCION

La ejecución del programa empieza en la localidad O1 O0

P-0105 Y-DEFE X-F4FF A44 6-FE C-DO S-O047 >

En la localidad 0105 encuentra un punto de ruptura, procede entonces a mostrar el estado que guardan los registros en este momento, como se observa en el programa de ejemplo el acumulador A debe contener $44

75

Page 83: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.8 HELP (AYUDA)

HELP

Este comando ocasiona que se despliegue en la pantalla información para referencia rápida.

2.4.5.9 LOAD (CARGAR)

donde:

<T> Transmite registros-S al EVBU vía el puerto terminal

El EVBU solo permite utilizar el comando LOAD con el operando <T>.

Este comando permite la transferencia de archivos objeto en formato registro-S, desde una PC al EVBU. En la sección procedimiento de operación se muestra un ejemplo del uso de este comando.

76

Page 84: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4. 5.10 MEMORY DISPLAY (DESPLIEGA MEMORIA)

MD[<direcl> [<direc2>] ]

donde: <direcl> Dirección inicial del área de memoria a desplegar

(opcional)

[<direc2>] Dirección final del area de memoria (opcional)

Mediante este comando es posible visualizar en la pantalla un área de memoria enmarcada por direcl y direc2. En caso de no indicar el valor de direc2, se visualizaran 9 líneas de 16 bytes cada una, partiendo de direcl. Si direcl > direc2, se tomara como dirección inicial la primera dirección. En caso de no indicar alguna dirección, igualmente se desplegaran las 9 líneas ya mencionadas, partiendo de la dirección mas cercana, a la última accesada.

Cada línea de memoria desplegada consta de una dirección hexadecimal de cuatro dígitos que corresponde al inicio de la misma, seguida de 16 valores hexadecimales, cada uno de dos dígitos, seguido por el carácter ASCII, si es aplicable, de las 16 localidades de memoria. No todos los ocho bits corresponden al ASCII desplegado, algunos de los caracteres al final de la línea pueden ser blancos.

EJEMPLOS

>MD E61F

E610 E620 E630 E640 E650 E660 E670 E680 E690

F1 34 02 54 4D EE E4 04 54 45 53 54 FE 29 FF 42 55 46 46 14 4C 4F 20 33 2E 32 20 28 69 6E 74 29 20 2D20 42 69 74 20 55 73 65 72 20 46 61 73 74 20 46 72 69 65 6E 64 6C 79 20 41 69 64 20 74 GF 20 4C 6F 67 69 63 61 6C 20 4F 70 65 72 61 74 69 6F 6E 04 57 68 61 74 3F 04 54 6F 6F 20 4C 6F 6E 67 04 46 75 6C 6C 04 4F 70 D2 20 04 72 6F 6D 2D 04 43 6F 6D 6D 61 6E 64 3F 04 42 62 64 20 61 72 67 75 60 65 6E 74 04 4E 6F 20 68 6F 73 74 20 70

4TM TEST )B UFFALO 3.2 (int ) - Bit User Fast Friendly Aid to Logical Operati on What? Too Ion g Full Op- rom- Command? Bad ar gument No host p

77

Page 85: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

>MD 0130 0120

0130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF >

>MD O100 0120

O100 86 04 B7 O1 FC O1 O1 O1 39 FF FF FF FF FF FF FF 9 0110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 0120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF >

2.4.5.1 1 MODIFY MEMORY (MODIFICA MEMORIA)

MM [<dirección>]

donde:

<dirección> es la localidad de memoria que sera modificada y desplegada

Este comando permite modificar/examinar el contenido de la localidad de memoria indicado. También permite borrar y reescribir cualquier localidad EEPROM ( las localidades EEPROM son tratadas como si fueran RAM ).

Con este comando existen además varios submodos de operación que permiten la modificación o la verificación de datos, y son los siguientes:

78

Page 86: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

(CTRL)J o (SPACE BAR) o + Examina/modifica la siguiente localidad

(CTRL)H O * O -

I

Examina modifica la localidad previa

Reexamína/modifica la misma localidad

(RETURN) Finaliza la operación de MM

O Calcula el offset relativo de las instrucciones branch

Cuando se intenta modificar una dirección inválida aparecera el mensaje "rom". Una dirección inválida es cuaiquier localidad que no puede ser leída inmediatamente después de una modificación, necesitandose verificar el cambio efectuado.

EJEMPLOS

> MM 0180

0180 FF &/

O180 66 &*

017F FF AA(RETURN)

DESCRIPCION

Despliega la localidad O 1 80

Cambia el dato de la localidad O1 80 y la reexamina

Cambia el dato de la localidad 0180 y muestra la localidad de memoria anterior (O1 7F)

Cambia el dato de la localidad 017F y termina la operación MM

79

Page 87: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

>MM 013C

013C FF 018EO 51

013C FF

>MM O100 >

O100 86 04 87 O1 FC O1

>

>MM B700

B700 FF 52

>

>MM B700

Despliega la localidad O1 3C

Calcula el offset, resultado = $51

Examina la localidad $0100

Examina la siguiente localidad(es) usando (SPACE BAR)

Examina en la EEPROM la localidad $B700 Cambia la información de la localidad $6700

Reexamina la localidad $B700

8700 52 >

2.4.5.12 MOVE (MUEVE)

MOVE <direcl> <direc2> [<destino>]

donde:

<direcl> Dirección inicial de la memoria

cdirec2> Dirección final de la memoria

BO

Page 88: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

[<destino>] Dirección inical del destino ( opcional)

Con este comando es posible copiar/mover una área de memoria a nuevas localidades. Si el destino no es indicado, el bloque de datos enmarcados por direcl y direc2, serán movidos un byte hacia arriba. Si se usa este comando en localidades EEPROM estas serán reprogramadas.

No se despliega ningún mensaje de operación terminada, Únicamente aparecerá el prompt al finalizar la operación.

EJEMPLO

>MOVE EO00 EOFF O100

>

DESCRlPCiON

Mueve los datos ubicados en las localidades $EOOO-$EOFF a las localidades $01 00-$01 FF

2.4.5.1 3 P ROC E E DICONTI N U E (PROS EG U I WCONTI NUAR)

P

Con este comando se continua la ejecución de un programa, sin tener que retirar los puntos de ruptura. También es Útil para saltarse los puntos de ruptura establecidos en un programa ejecutado con el comando G.

81

Page 89: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

NOTAS

Referirse al programa ejemplo No. 2.4.A en la pag. 74, para el siguiente ejemplo del comando P. Los puntos de ruptura han sido insertados en las localidades $01 05 y $01 07 ( referirse a la pag. 75).

EJEMPLOS

>G O100

P-0105 Y-DEFE X-F4FF A44 B-FE

'P

P-o 37 \i .DEFE X-Fd FF A44 B-FE

DESCRIPCION

Inicia la ejecución en O100

C-DO S-O047 En 0105 encontro un punto de ruptura y muestra el contenido de los registros hasta este momento

Continua la ejecución

C-90 S-O047 En 0107 encuentra un punto de ruptura y vuelve a mostrar el contenido de los registros, que de acuerdo al programa usado no se modificaron

>

82

Page 90: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.14 REGISTER MODIFY (MODIFICA LOS REGISTROS)

RM [PI Y, XI a, b, c, SI

Usando este comando es posible modificar los registros del MCU, contador de programa (P), índice Y (Y), índice X (X), acumulador A(A), acumulador B (B), registro de condición de código (C), y apuntador de pila (S).

EJEMPLOS DESCRIPCION

Muestra el contenido de los registros

P-O108 Y-7982 X-FFOO A-44 8-70 C-CO S-O047 P-O108 O100 Cambia el contenido del registro P >

>RM X Muestra el contenido de los registros y permite cambiar el registro X

P-O100 Y-7982 X-FFOO A-44 B-70 C-CO S-O047 X-FFOO 1000 Cambia el registro X >

83

Page 91: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

P-o1 O0

P-o 1 O0

Y-7982

x-I O00

A-44

B-70

c-co

S-O047

Muestra el contenido de los registros

Y-7982 X-1000 A 4 4 B-70 C-CO S-O047

(SPACE BAR)

(SPACE BAR)

(SPACE BAR)

(SPACE BAR)

(SPACE BAR)

(SPACE BAR)

(SPACE BAR)

Muestra el siguente registro

AI introducir un (SPACE BAR) despés de que se desplego el apuntador de pita se termina la acción del comando RM

2.4.5.15 STOPAT (ALTO EN LA DIRECCION)

STOPAT <dirección>

donde:

<dirección> indica que cuando el PC encuentre esta dirección debe detenerse

84

Page 92: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

La ejecución de este comando significa que se ejecutara una instrucción a la vez, hasta que se encuentre la dirección marcada, incluso es posible que parezca que el programa se ejecuta lentamente. La ejecución empieza en la dirección que apunta el PC y se detiene justamente antes de la ejecución de la instrucción localizada en la dirección marcada, por consiguiente solo debe usarse cuando se conoce el valor donde se encuentra un código de operación para así ubicar adecuadamente al PC ( por ejemplo después de que se llega a un punto de ruptura o después de haber utilizado un comando RM en el cual se ha fijado el valor de PC).

STOPAT tiene la ventaja, sobre los puntos de ruptura, de que puede fijarse la dirección de alto en atguna localidad en ROM, no solo en RAM ylo EEPROM.

NOTAS:

Es necesario usar el ejemplo ubicado en la pag. 74 para llevar a cabo el siguiente ejercicio. Además se debe utilizar el comando RD para localizar el registro PC en la localidad $0100

EJEMPLO DESCRIPCION

>STOPAT 0108 Ejecuta el programa de ejemplo hasta llegar a la localidad $0108

P-O108 Y-DEFE X-F4FF A44 B-FE C-90 S-O047 >

a5

Page 93: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.16 TRACE (TRAZO)

donde:

<n> es el número (en hexadecimal, desde $01 hasta $FF máximo). Si no se específica <n> se da por hecho que es I .

Este comando permite ver la ejecución de una o varias instrucciones, dependiendo del valor de en>. La ejecución inicia en la localidad apuntada por el registro PC. Cada vez que se ejecuta el comando trazo se desensambla el código de operación y se despliega el estado de los registros (del MCU) posterior a ia ejecución de éste.

El comando trazo opera poniendo la interrupción OC5 después del primer ciclo posterior al primer fetch del código de operación usado.

NOTAS:

Es necesario usar RD para localizar al PC en la dirección $FF85 antes de llevar a cabo los siguientes ejemplos.

USO DE UN COMANDO TRAZO

'1 JMP $E1F7 P-EI7F Y-FFFF X-FFFF A-44 B-FF C-IO S-O046 >

Page 94: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

USO DE VARIOS COMANDOS DE TRAZO

>T 2 PSHA PSHB

>T 3 PSHX JSR CMPA

>T 4 BLT RTS CMPA BLT >

P-E1F8 Y-FFFF X-FFFF A-44 B-FF C-IO S-0046 P-EIF9 Y-FFFF X-FFFF A-44 B-FF C-10 S-O045

P-EIFA Y-FFFF X-FFFF A-44 B-FF C-IO S-O043 $EI9D P-E19D Y-FFFF X-FFFF A-44 B-FF C-IO S-O041 #$61 P-E19F Y-FFFF X-FFFF A-44 B-FF C-19 S-O041

$E1A7 P-E1A7 Y-FFFF X-FFFF A-44 B-FF C-19 S-O041 P-EIFD Y-FFFF X-FFFF A 4 4 B-FF C-I9 S-O043

#$30 P-EIFF Y-FFFF X-FFFF A-44 B-FF C-19 S-O043 $E223 P-E223 Y-FFFF X-FFFF A-44 B-FF C-IO S-0046

2.4.5.1 7 TRANSPARENT MODE (MODO TRANSPARENTE)

TM ( NO ES APLICABLE AL EVBU)

Este comando conecta el puerto residente del EVBU a un puerto terminal, permitiendo la comunicación entre esta Última y una computadora. En cuyo caso todos los puertos I/O son ignorados por el EVBU hasta que un carácter de salida sea introducido desde la PC.

Los subcomandos de TM son:

(CTRL)A Salida del modo transparente

(CTRL)B Envía una ruptura a la computadora

87

Page 95: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Nota:

El comando TM solo puede usarse si se instala un puerto I/O en el área de wire-wrap del EVBU

EJEMPLO

appslab login: ED

Password:

"System Message"

$

$ /CTRL)A

>

DESCRIPCION

Introduce o da inicio al modo transparente

Respuesta apuntada a la computadora

La computadora espera una contraseña

Tarea terminada. Se pone un comando de salida

Salida del modo transparente

88

Page 96: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.18 VERIFY (VERIFICAR)

VERF <T>

donde:

Compara la memoria a los datos transferidos al puerto terminal mediante un comando LOAD

Nota:

El EVBU soto permite este tipo de variación con este comando

Este comando le indica al EVBU que compare los registros-S transferidos con los datos almacenados en la memoria.

EJEMPLOS

NERF T done >

>VERIF T

error addr EO00

>

DESCRlPClON

Introduce el comando Verificación terminada

Acepta el comando Encontro un error El mensaje de error muestra la primera dirección en que fallo la verificación

Es necesario referirse al procedimiento de transferencia para información adicional referente a este comando

89

Page 97: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.5.19 XBOOT (TRANSFERENCIA DE DATOS EN EL MODO BOOTSTRAP)

XBOOT [<direcl> [<direc2>] ]

donde:

<direcl> Dirección inicial

<d irec2> Dirección final

El comando XBOOT CargaAransfiere un bloque de datos desde la direcl hasta direc2 vía el SCI (Interface de Comunicación Serial) a otro MCU MC68HC11 que haya sido reseteado en el modo bootstrap. Como parte del protocolo en el modo bootstrap es necesario poner un carácter de control o guía que será $FF el cual establece el baud rate del resto de la transferencia.

Si solo se da una dirección, esta es considerada la dirección inicial y el tamaño del bloque automáticamente se fija en 256 bytes. Si no se indica alguna dirección, el programa monitor BUFFALO lo limitara entre $COO0 y $ COFF.

NOTAS:

El MCU MC68HCllA8 requiere un tamaño de bloque fijo de 256 bytes para operar en bootstrap, mientras el MCU MC68HC11 E9 puede aceptar una longitud de bloque variable entre 1 y 512 bytes.

El comando XBOOT genera una señal de salida en el SCI transmisor de 7812.5 baud que es puesto a otro MCU MC68HC11 que opere en el modo bootstrap. Esta señal aparecerá como un dato no detectado al despliegue terminal usado para la comunicación normal con el EVBU. Después de usar el comando XBOOT el EVBU debe resetearse presionando el interruptor SI, antes de restablecer la comunicación normal.

Describimos a continuación el procedimiento de operación para utilizar este comando.

90

Page 98: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Antes de utilizar este comando es necesario preparar el EVBU como sigue:

a. Realizar un corte en J9

b. Instalar un puente sobre J9 en los pines 1 y 2

Después de preparar el EVBU:

a. Ensamblar o almacenar en la EEPROM del MCU en el EVBU, (locatizado entre $B600 y $B6FF) el programa que sera transferido al otro MCU.

b. Introducir el comando XBOOT y las direcciones sin presionar la tecla de retorno de carro (RETURN) como se muestra a continuación, para después seguir con el inciso c.

>XBOOT 8600 BGFF No presionar (RETURN)

C.

d.

e.

f.

9-

h.

I .

Previamente se retira el puente sobre J9

Conectar una alambre que puentee el pin 2 de J9 con la entrada RxD de la tarjeta del otro MCU

Resetear el MCU receptor en el modo bootstrap

Presionar un retorno de carro involucrando así al comando XBOOT

Como TxD no esta conectada a la terminal, no se observará ningún cambio en la pantalla. El proceso de carga en modo bootstrap tarda aproximadamente un tercio de un segundo en terminar la operación.

Desconectar el puente instalado en el paso d.

Instalar el puente retirado en el paso c.

Resetear el EVBU transmisor por medio del interruptor S I para restaurarlo a su operación normal.

Page 99: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.6FORMA DE OPERACION DEL EMULADOR DE TERMINAL (CONNECT)

Para poder trabajar con el programa monitor es necesario contar con un programa emulador de terminal, el cual debe permitir trabajar con una computadora IBM-PC o compatible, o bien con una Apple Macintosh. Los programas emuladores de terminal típicos son para IBM-PC, PROCOMM, KERMIT y CONNECT; para Macintosh son MacTerminal y Red Ryder. En el presente trabajo nos referiremos exclusivamente al CONNECT.

Se detallan a continuación el procedimiento de operación del CONNECT.

a. Llamar al programa CONNECT.EXE: c:>CONNECT (en el caso de que este instalado en el disco duro)

A o B:> CONNECT (dependiendo del drive en que se encuentre el disco)

b. A continuación aparecerá en la pantalla el menú principal de este programa tal como se muestra a continuación.

CONTROL DATA CONNECT VERSION I .2 MAIN MENU U.S ASCII

O. 1. 2. 3. 4. 5. 6. 7. 0. 9.

Connect and log in to host system Set parameters Enter mode terminal Send file Receive file Submit job Check job status List microdisk directory Log out from host system Leave CONNECT

Selection > -

El número 1, nos permite observar/rnodificar los parámetros de comunicación entre la computadora y el EVBU, tales como el puerto serial

92

Page 100: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

C.

d.

utilizado, el baud rate y el tipo de conexión. De donde se desprende que cada vez que se modifica el baud rate en el EVBU, es necesario volver al menú principal, seleccionar el No. 1 y modificar el baud rate.

El número de 2, corresponde al simulador de terminal, que quien nos interesa; en este caso la pantalla Únicamente mostrara el mensaje de salir con ALT-Fl O.

En este momento debe encenderse el suministro de potencia del EVBU o en su defecto debe recibir un reset por medio de SI . En la pantalla aparece el identificador del BUFFALO, seguido de un prompt, a partir del cual es posible introducir cualquier comando.

Para finalizar cualquier sesión bastara apagar la fuente de alimentación del EVBU, y presionar ALT-F10, para salir del modo de terminal en CONNECT, en este momento aparecerá nuevamente el menú principal, indicándonos que el número 9 nos permite salir del CONNECT.

El comando LOAD T nos permite transferir archivos en formato Motorola, (registro-S) desde una computadora personal al EVBU.

Brevemente mencionamos a continuación los pasos necesarios para crear un programa en registro-S.

a. Crear con un editor de textos, el programa fuente (con extensión .ASM).

b. Utilizando un programa ensamblador convertir este programa fuente en un archivo objeto tipo registro-S y/o listado de archivo.

c. Después de wear el archivo registro-S, se transfiere al EVBU como se muestra paso a paso en los párrafos siguientes.

93

Page 101: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.4.6.1 Transferencia de programas usando LOAD

La transferencia de programas de la PC. ai EVBU, mediante la utilización del comando LOAD, se realiza mediante los siguientes pasos:

1 .- Modificar el baud rate de operación del EVBU

>MM 1028 (retorno de carro)

1026 30 35 (retorno de carro) Selecciona 300 baud

2.- Modificar el baud rate del emulador de terminal

ALT-F 1 O

A continuación aparece el menú principal, en el cual se selecciona la opción I, con lo cual aparecerá la pantalla como se muestra a continuación:

SET PARAMETERS

Current

1. Communication port: COM2

2. Baud rate : 9600

3. Connection type : DIRECT LINE

Screen I of 3 Selection >

Press Fí to use these values F2 to use and write vatues into file CONNECT.CFG

PgUp/PgDn to display other screens ALT-F1 O to leave without changing any values

94

Page 102: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

La opción 2 nos permitirá igualar el baud con el que se selecciono para el EVBU. Una vez realizado este cambio, es necesario volver al menú principal y seleccionar el modo de terminal.

3. Invocar al comando LOAD para efectuar la transferencia del programa

>LOAD <T> (retorno de carro)

4. Invocar esta misma operación en el emulador de terminal

ALT-FS Después de esta acción, la parte inferior de la pantalla aparecerá de la siguiente forma:

Send from disk

Micro File Name:

Exit: ALT FIO End: F5 Send:

En este momento se introduce el nombre del archivo por transferir

5. Una vez que da inicio la transferencia abajo de >LOAD <T> , aparecerá el mensaje done y cuando finaliza la transferencia aparecerá nuevamente un prompt como ejemplificamos a continuación

done >

Se esta realizando la transferencia Termino de cargar el programa

6. Para continuar trabajando, es aconsejable restaurar el baud rate a 9600, tanto en el EVBU, como en el emulador de terminal, siguiendo el procedimiento descrito en los pasos I y 2.

95

Page 103: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

2.5 PROGRAMAS EN LENGUAJE ENSAMBLADOR

2.5.1 FORMATO

Cada una de las líneas de un programa fuente puede incluir los siguientes campos:

- Una etiqueta - - Unoperando -

Un operador (mnemónico de la instrucción o directiva de ensamblador)

Comentarios (opcional, un ' * ' indica una línea de comentarios)

Etiqueta

Sí el primer carácter es un espacio en blanco o un tabulador indica que no hay etiqueta. Por consiguiente el primer carácter, para que indique la existencia de una etiqueta debe ser cualquier carácter valido. Los caracteres válidos son: todas las letras mayúsculas y minúsculas, los dígitos del O al 9, carácteres especiales como punto (.), signo de pesos ($), el carácter asterisco (*) indica una línea de comentarios. AI final de una etiqueta pueden incluirse dos puntos (:). Se aceptan 8 caracteres o menos.

Operador

Sí hay una etiqueta, el operador se encuentra a continuación de esta, pero entre ambas debe existir un espacio en blanco o un tabulador.

En los operadores todas las letras son convertidas a minúsculas antes de que se empiece a comprobar que el mnemónico es legal. Esto es 'nop', 'NOP', 'Nop', son reconocidas iguales.

Los operadores pueden ser de dos tipos: código de operación, o directiva de ensamblador.

Operando

La interpretación del campo de operando depende del contenido del campo de operador, si el operando es necesario debe precederlo un espacio

9 6

Page 104: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

en blanco o un tabulador. Puede estar formado por un símbolo, una expresión o una combinación de símbolos y expresiones separadas por comas. Especifican el modo de direccionamiento de la instrucción y el operando de la misma.

Comentarios

Este campo es opcional, y su objetivo es el de documentar el programa. Debe estar separado del campo de operando por al menos un espacio en blanco.

2.5.2 FORMA DE CORRER EL ENSAMBLADOR

El programa ensamblador es denominado 'as*.exe', donde '*( es cualquiera de los siguientes dígitos O, 1 , 4, 5, 9, u 11 dependiendo de la familia del procesador. Por ejemplo para generar el código M6800, se debe correr el programa 'asO.exe', para el M68HC05 se debe correr el programa 'as5.exe1, etc.

Invocación del Ensamblador

Para correr el ensamblador se debe introducir la siguiente línea:

as* archivol (archivo2 ...) (-opción1 opción2 ...)

donde archivol , archivo2, etc, representan los nombres de los archivos fuente que se desea ensamblar. Las opciones pueden ser una o más de las siguientes:

I Habilita un listado de salida no Deshabilita el listado de salida (automáticamente) cre Habilita la generación de una tabla de referencias cruzadas s Habilita la generación de una tabla de símbolos c Habilita un ciclo de cuenta noc Deshabilita el ciclo de cuenta

97

Page 105: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Debe haber un espacio en blanco antes del signo menos que precede a la primera opción, para separar estas Últimas del último nombre de archivo.

Se genera un archivo objeto que recibe el nombre .'archivo.S19, donde archivo es el nombre del mismo. Cualquier error es desplegado en la pantalla. Una lista o mensajes de error pueden ser guardados en un archivo para posterior examen o bien pueden ser impresos agregando un comando de redirección I/O a una línea de comando. En la P.C. la redirección I/O se indica con el símbolo 'mayor que' seguido por et nombre de cualquier archivo existente.

2.5.3 DIRECTIVAS DEL ENSAMBLADOR

Estas directivas son instrucciones propias para el ensamblador, más que instrucciones que se traducen en el código objeto. La notación usada es la siguiente:

0

XYZ

<>

Denotan un elemento opcional

El nombre de las directivas debe estar en mayúsculas

Contienen nombres de elementos y deben escribirse en minúsculas. Los elementos externos a los paréntesis angulares, deben escribirse tal cual.

Por ejemplo, el elemento sintáctico (<número>,) requiere la coma. Se usan los siguientes elementos en las subsecuentes descripciones:

98

Page 106: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

<comentario> <etiqueta> <expresión> <expr> <número> <cadena> <delimitador> <opción> <símbolo> <sim> <list reg> <exp reg>

Campo de comentarios Etiqueta Expresión de ensamblador Expresión de ensamblador Constante numérica Cadena de caracteres ASCII Delimitador de cadena Opción de ensamblador Símbolo de ensamblador Símbolo de ensamblador Lista de registros M6809 Expresión de registros M6809

2.5.4 LISTA DE DIRECTIVAS DEL ENSAMBLADOR

i.- BSZ (BLOCK STORAGE OF ZEROS)

(<etiqueta>) BSZ <expresión> (<comentario>)

BSZ ( y ZMB) almacenan un bloque de bytes, a cada byte se le asigna el valor de cero. El número de bytes localizados esta dado por el campo formado por la expresión.

Si la expresión contiene símbolos que aún no se han definido o que se definen en el archivo posteriormente o si la expresión contiene un valor de cero, se puede generar un error.

ii.- EQU (EQUATE SYMBOL TO A VALUE)

<etiqueta> EQU <expresión> (<comentario>)

Asigna el valor de la expresión a la etiqueta. La etiqueta no puede ser definida nuevamente en el programa. La expresión no puede contener referencias posteriores, en caso de que así se haga un error de defasamiento se genera.

99

Page 107: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

Ejemplo:

EEPSTR EQU $B600

En este caso EEPSTR contiene el valor de la dirección inicial de ta EEPROM.

iii.- FCB (FORMAT CONSTANT BYTE)

(<etiqueta>) FCB <expr> (<expr>,.. .;<expr>)(<comentario>)

Esta directiva puede tener uno o más operandos separados por comas. El valor de cada operando es truncado a ocho bits, y es almacenado en un byte del programa objeto. Operandos múltiples son almacenados en bytes sucesivos. El operando puede ser una constante numérica, un carácter constante, un símbolo o una expresión. Sí existen operandos múltiples uno o más pueden ser nulos, (esto es, dos comas adyacentes). Existe un error si los ocho bits superiores del operando evaluado no son todos ceros o unos.

iV.- FCC (FORMAT CONSTANT CHARACTER STRING)

(<etiqueta>) FCC <delimitador><cadena><delimitador> (<comentarios>)

Almacena cadenas en ASCII en bytes consecutivos de memoria. El byte almacenado comienza en donde apunta el contador de programa. La etiqueta es asignada al primer byte de la cadena. Cualquier carácter ASCII imprimible puede estar en la cadena, esta Última es especificada entre dos delimitadores idénticos que pueden ser cualquier carácter ASCII imprimible. El primer carácter que no sea un espacio en blanco después de la directiva FCC se usa como el delimitador.

V.- FDB (FORM DOUBLE BYTE CONSTANT)

(<etiqueta>) FDB <expr>(,<expr>, . . . ,<expr>)(<comentarios>)

Esta directiva puede tener uno o más operandos separados por comas. El valor de 16 bits correspondiente a cada operando es almacenado en dos bytes consecutivos del programa objeto. Los operandos deben ser una constante numérica, un carácter constante, un símbolo o una expresión. En cuanto a las consideraciones restantes se comporta igual que la directiva anterior.

100

Page 108: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

vi.- FILL (FILL MEMORY)

(<etiqueta>) FILL <expresión>,<expresión>

Esta directiva origina que un area de memoria sea inicializada con un valor constante. El primer operando representa el valor del byte que se localiza en la memoria y el segundo el total de bytes por inicializar. Donde la primera expresión debe encontrarse en el rango de 0-255. Las expresiones no pueden contener referencias posteriores o símbolos indefinidos.

Vi¡.- OPT (ASSAMBLER OUTPUT OPTIONS)

OPT <opción>( ,<opción>, . . . , <opción>) (<comentarios>)

Se utiliza para controlar el formato de salida del ensamblador. las opciones se especifican en el campo de operando, separadas por comas. Todas las opciones tienen una condición automática. Algunas opciones pueden ser especificadas desde la línea de comando que llama al ensamblador, sin embargo las opciones localizadas en el archivo fuente tienen precedencia sobre estas.

Todas las opciones deben introducirse con minúsculas.

C

ere

I

noc

no1

S

Habilita el ciclo de cuenta en el listado. La cuenta total aparece en el listado después de los bytes ensamblados y antes del código fuente.

Imprime una tabla de referencias cruzadas al final del listado. Sí es usada esta opción debe especificarse antes del primer símbolo del programa fuente.

imprime la lista desde este punto.

Esta condición esta puesta automáticamente en el listado. Deshabilita el ciclo de cuenta. Sí previamente se utilizo la opción IC', esta opción causará el cese del ciclo de cuenta hasta la siguiente aparición de 'OPT c'.

Esta condición esta puesta automáticamente en el listado. No imprime la lista desde este punto. Una opción 'OPT I' puede rehabilitar el listado hasta el Último punto del programa.

Imprime una tabla de símbolos al final del listado fuente.

101

Page 109: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

V i . - ORG (SET PROGRAM COUNTER TO ORIGIN)

ORG <expresión> (<comentarios>)

Asigna al contador de programa el valor especificado por la expresión en el campo de operando. Si no se encuentra esta directiva en un programa fuente, el contador de programa es inicializado a cero. La expresión no puede contener referencias posteriores o a símbolos indefinidos.

iX.- PAGE (TOP TO PAGE)

PAGE

Ai usar esta directiva el ensamblador hace que el papel avance a la parte superior de la siguiente página. Sí no se ha producido un listado fuente PAGE no surte efecto. Esta directiva no se imprime en el listado fuente.

x.- RMB (RESERVE MEMORY BYTES)

(<etiqueta>) RMB <expresión> (<comentarios>)

En este caso el contador de programa se incrementa en igual cantidad a la indicada por la expresión. RMB reserva un bloque de memoria cuya longitud en bytes es igual al valor de la expresión, y no es inicializado con algún valor específico. La expresión no debe hacer referencia a valores ulteriores o a símbolos indefinidos. Esta directiva se puede utilizar para reservar una área de scratchpad o para una tabla que se usará posteriormente.

Xi.- ZMB (ZERO MEMORY BYTES)

(<etiqueta>) ZMB <expresión> (<comentarios>)

Guarda un bloque de bytes inicializado a ceros, el número de bytes almacenado esta determinado por la expresión. Sí esta última, contiene símbolos indefinidos, ceros o hace referencia a valores posteriores, se genera un error.

102

Page 110: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5029.pdf · 1.7 SPI (INTERFASE PERIFERICO SERIAL) 1.7.1 Características Generales 1.7.2 Descripción Funcional 1.7.3 Registros

3. B I B L I O G R A F I A

a).- HC11, MC68HC11 REFERENCE MANUAL MOTOROLA/ 199 1

b) . - HCMOS SINGLE-CHIP MICROCONTROLER ADVANCE INFORMATION MOTOROLA/ 1988

C) . - M68HC 1 1 EVBU UNIVERSAL EVALUATION BOARD USER’S MANUAL MOTOROLA/ 1990

d).- MOTOROLA FREEWARE PC-COMPATIBLE %BIT CROSS ASSEMBLERS USER’S MANUAL MOTOROLA/ 1990