¿Cómo ejecuta 8032 el programa?

0

He estado estudiando el microcontrolador 8032 . Se menciona que 8032 no tiene ROM interna. Ahora hay algunas preguntas que tengo

  • ¿Necesitamos una ROM externa para ejecutar programas necesariamente? ¿No podemos utilizar la memoria RAM interna de 256 bytes?

  • Supongamos que estoy usando el microcontrolador 8032 con una ROM externa 2732 y también estoy usando un pestillo para almacenar la dirección (orden inferior) del puerto P0 (que puede transferir direcciones / datos). Ahora, después de habilitar EA y conectar el PSEN , ¿cómo ejecuta 8032 el programa? ¿Qué sucede si enciendo el sistema? (¿Cómo funciona el contador del programa del microcontrolador 8032? ¿Desde qué dirección de la memoria externa se debe leer el programa?

He leído estos manuales- , Atmel 80C32E .

    
pregunta coderredoc

3 respuestas

2

Si observa un circuito típico de 80 (C) 32 a continuación (de aquí ):

Puedeverqueel8032hablaconEPROM,RAMyEEPROMexternasatravésdeunbus:datosde8bitsydireccionesde16bits.Esteúltimoestáenganchadoy,porlotanto,demultiplexadoconelHCT573.Huboalgunoschipsconelpestilloincorporadodiseñadoparausarseconel8031/8032,perolaanteriorfuelaconfiguraciónmáscomún:elusodechipsdememoriaestándardebajocosto.Tambiénhayunpocodelógicade"pegamento" para decodificar las direcciones y generar las señales adecuadas para las memorias (el HCT138 y el NAND cuádruple).

Es vital que la lógica del pegamento esté diseñada de manera que la EPROM resida en la dirección 0 porque después de un restablecimiento, la ejecución siempre comienza cuando el 8032 busca el primer byte de la instrucción de esa dirección. Esta es una función del hardware en el 8032 y no se puede cambiar. Normalmente, la instrucción es una instrucción LJMP de 3 bytes que salta al principio del programa. A eso le llamamos el "RESET VECTOR". Otros vectores ocupan los bytes inmediatamente encima del vector de reinicio para la rutina de servicio de interrupción externa y la rutina de servicio de interrupción de temporizador.

En esos días, la EPROM sería programada (escrita a) por un programador independiente fuera del circuito y luego, típicamente, se enchufaría en un enchufe. No hay programación en circuito en esos días. La memoria RAM y la EEPROM podrían ser escritas por el micro, pero el programa tendría que cargarse en la memoria EPROM antes de que fuera posible.

    
respondido por el Spehro Pefhany
2

No, no puedes usar la memoria RAM interna para guardar el código. El 8051/8032 usa una arquitectura de Harvard, lo que significa que tiene espacios de memoria completamente separados para el código y los datos. Las instrucciones se obtienen del espacio de código, pero la RAM reside en el espacio de datos.

  

Ahora, después de habilitar EA y conectar el PSEN, ¿cómo ejecuta 8032 el programa?

El 8032 obtiene instrucciones del espacio de código. Dado que EA está activada, estas recuperaciones (lecturas de memoria) aparecen en el bus de memoria externa, con PSEN afirmado. Cuando PSEN NO se afirma en una operación de lectura de memoria externa, es una lectura de espacio de datos.

  

¿Qué sucede si enciendo el sistema?

El 8032 comienza a obtener instrucciones de espacio de código dirección 0.

  

¿Cómo ejecuta el programa el contador del microcontrolador 8032?

El contador del programa es simplemente responsable de mantener la dirección de la siguiente instrucción que se ejecutará. Otras partes de la CPU ejecutan las instrucciones.

  

¿Desde qué dirección de la memoria externa se debe leer el programa?

Dirección 0.

Si desea utilizar interrupciones en su programa, hay otras direcciones en la memoria de espacio de código bajo que están reservadas para ellos, por lo que el código que ejecute al reiniciar finalmente tendrá que "saltar" esas direcciones reservadas.

    
respondido por el Dave Tweed
2

El 8032, que es una variante del 8052, no tiene ROM interna para el almacenamiento de programas. En su lugar, se debe utilizar una ROM / EPROM / EEPROM externa para mantener el programa.

Se utilizan dos puertos para acceder a la memoria externa: el puerto 0 (líneas P0.0-P0.7) emite los 8 bits bajos de una dirección de 64K de 16 bits, y también sirve como datos de lectura / escritura de 8 bits bus después de que la dirección haya sido bloqueada por la memoria externa.

P2 (líneas P2.0-P2.7) se utilizan para emitir los 8 bits altos de la dirección de 64K de 16 bits.

Aunque el 8032 tiene 256 bytes de RAM interna, esto se puede extender agregando un chip de RAM también al bus de direcciones externo.

La línea de dirección externa \ $ \ mathsf {\ small \ overline {\ text {EA}}} \ $ se mantiene baja para indicar si se está haciendo un acceso a la memoria externa del programa, de lo contrario se asumirá una RAM externa.

Para ejecutar código fuera de la memoria externa, la dirección del contador del programa se emite en las líneas de datos del puerto 0 y del puerto 2; luego, durante el ciclo de lectura, el (los) byte (s) recuperado (s) de la ROM al ser leído en el Puerto 0 y ejecutado por el procesador.

Sólo se obtiene una instrucción a la vez.

\ $ \ mathsf {\ small \ overline {\ text {PSEN}}} \ $ es una luz estroboscópica utilizada durante el acceso a la memoria externa del programa.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas