Instrucciones de uso del emulador de la placa de periféricos.

Manual de uso del dispositivo virtual para el Visual Simulator del IDE68K.
El archivo TM683&PlacaPerifericos.dll es un dispositivo virtual para el VisualSimulator del
entorno de desarrollo IDE68K para los microprocesadores MC68000 de Motorola.
El periférico virtual emula el comportamiento del microinstructor TM683 de Promax conectado
al conjunto de display’s de 7 segmentos y al teclado matricial de la placa desarrollada por el
DTE.
La conexión física con el microinstructor emulada es la siguiente:
Puerto A de la VIA1 conectado al teclado matricial de 16 teclas.
Puerto B de la VIA1 conectado a los leds del microinstructor TM683
Puerto A de la VIA2 conectado a los Datos del conjunto de 4 display's de 7 segmentos
Puerto B de la VIA2 conectado a las señales de control del conjunto de display's de 7 segmentos.
Esta descripción está detallada en la guía del trabajo de SD en:
http://www.dte.us.es/tec_ind/electron/sd/0708/0708SD.GuiaTrabajo.pdf
Instalación de la dll:
El emulador se instala en el simulador desde el menú Peripherals -> Configure Peripherals
Mediante el botón Browse del panel que se abre, se selecciona como custom device file la librería
TM683&PlacaPerifericosBeta2.dll
Una vez seleccionado, en el mismo menú Peripherals, marcar Custom device y aparecerá la
interfaz de la librería junto al Simulador Visual.
Parámetros configurables:
En la figura adjunta se observa el panel de configuración de la dll.
Display 7 segmentos: En este cuadro se puede configurar si el conjunto de 4 display’s de 7
segmentos emulará el comportamiento de un display físico de ánodo común (enciende barra con
un 0) o de cátodo común (enciende barra con un 1). Los display’s de la placa de periféricos son
de tipo ánodo común.
Código del dato: En este cuadro se puede configurar si el bit más significativo del dato
corresponde al punto decimal (dp) o a la barra superior (a) del dígito. La codificación de la placa
es tal que el msb del dato corresponde a la barra a.
Clk del sistema: Indica el reloj del microprocesador. En el caso del TM683, el reloj es de 8 Mhz.
Leyenda de teclas: La leyenda que aparecerá sobre las teclas del teclado se puede modificar
escribiendo en los cuadros correspondientes.
Aviso de errores activo: La dll detecta una serie de errores (como por ejemplo escribir en modo
palabra en la VIA) y detiene el funcionamiento del simulador haciendo aparecer una ventana de
mensaje comunicando el error. Si el desarrollador ya conoce el error pero quiere seguir probando
otros aspectos del programa antes de depurarlo, puede desmarcar la casilla y no se producirá el
aviso continuando la ejecución como si el error no hubiera sucedido.
Activar Persistencia de los Display’s: El refresco de los display’s del simulador no puede
hacerse a la misma velocidad que el sistema real debido a la presencia del sistema operativo
Windows que gestiona los mensajes de las aplicaciones. Por ello, los display’s se verán
encendidos de forma secuencial aparentando parpadeos que en la aplicación real no aparecerían.
Para emular la persistencia de la visión que se produce en el sistema real, cuando está mercada
la casilla, cada display permanece encendido cuando se activa y en las tres activaciones
sucesivas. El refresco del display debe estar hecho de tal forma que se active una de cada cuatro
veces que se cambie de display para que exista una rotación.
Aplicar corrección de los ciclos de Clk: La vigilancia de los temporizadores T1 y T2 de las
VIA’s se realiza periódicamente mediante un timer del sistema con periodicidad de 1 ms. No
obstante, en 1 ms el simulador ejecuta más ciclos de reloj de los necesarios para que el Tx
correspondiente de la VIA pase por 0 por lo que está generando interrupciones contínuamente.
Cuando lo que se pretende es comprobar el funcionamiento global del programa esto hace que
se vea un funcionamiento más cercano a la realidad pero cuando lo que se desea es depurar qué
ocurre entre una interrupción y la siguiente es necesario marcar la casilla para que entre una
interrupción y la siguiente siempre haya el mismo periodo (Run => casilla desmarcada; Step =>
casilla marcada).
Interrupción de Teclado: En la ventana principal de la dll hay una casilla que relacionada con
el jumper de la placa de periféricos encargado de generar un pulso cada vez que se pulsa una
tecla del teclado. En la placa, este pulso se conecta físicamente al pin CA1 mediante el jumper
anterior. La casilla actúa como el jumper emulando su presencia cuando está marcada.
Algunas capacidades de la dll:
Puertos A y B de las VIA`s del TM683:
Los puertos son configurables pin a pin de manera que una escritura en un pin configurado como
entrada no altera su valor anterior. Para que la escritura se produzca, el pin tiene que estar
configurado en el registro DDRx correspondiente.
El puerto A de la VIA1 puede generar una interrupción por flanco en el pin CA1 cuando se pulsa
cualquiera de las teclas del teclado. Para ello hay que programar los registros de la VIA
adecuadamente y marcar el checkbox del periférico virtual según se ve en la figura.
Temporizador T1 de cada VIA:
Pueden funcionar en modo aestable o monoestable.
La salida hardware no está simulada y no se detecta su configuración.
El simulador generará una interrupción si la VIA está configurada para ello. La interrupción no
se generará antes de los ciclos de reloj programados. No obstante, en el caso de que se esté
depurando con el simulador en modo run, la vigilancia del número de ciclos transcurrido no se
puede realizar con la necesaria velocidad y la interrupción será generada al transcurrir un número
de ciclos mucho mayor que los que corresponderían. La forma de actuación se puede modificar
en el panel de configuración de la aplicación según se ha detallado antes.
Temporizador T2 de cada VIA:
Sólo está implementada la función de temporizador. La configuración como contador no afecta
al funcionamiento de la dll.
Registro de desplazamiento de cada VIA:
El registro de desplazamiento no está emulado en esta versión.
Interrupciones:
Los registros IER e IFR emulan el funcionamiento de la VIA para lo referente a los
temporizadores T1 y T2 y a la interrupción debida a flanco positivo en CA1.
Nota: Para que las interrupciones funcionen adecuadamente, es necesario instalar el vector de
interrupción en el Autovector correspondiente, no basta con el Pseudovector. Esto es, para la
interrupción autovectorizada de nivel2, hay que instalar la rutina de atención en la dirección 26*4
(Autovector de Nivel2), y para la interrupción autovectorizada de Nivel3 en la dirección 27*4
(Autovector de Nivel3).