Page 24
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Image_108_0
Fig. 3-e – Compuerta de Transmisión CMOS.
Image_109_0
Fig. 3-f – Multiplexor de Datos.
Image_110_0
Tabla 3-d – Tabla de operación del Multiplexor.
Image_111_0
Fig. 3-g – Buffer Tree – State CMOS.
__rendered_path__13
24
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 25
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Image_116_0
Tabla 3-e – Tabla de operación Buffer Tree – State.
Image_115_0
Fig. 3-h – Flip – Flop Tipo “D”.
Como ve una Computadora a la memoria.
Una computadora de 8 bits con 10 líneas de dirección (podría ser el caso del MCU
MC68HC705J1A) ve a la memoria como una columna continua de 1024 (ó 2 a la 10)
valores de 8 bits. La dirección de la primer posición de memoria es 00 0000 0000 (2) y
la de la última es 11 1111 1111 (2). La dirección de diez bits se expresa normalmente
como dos números de 8 bits que se vuelcan en cuatro dígitos hexadecimales. En
notación hexadecimal, el rango de estas direcciones va desde $0000 a $03FF.
La computadora especifica que posición está siendo accedida (lectura desde o escritura
sobre) colocando una única combinación de unos y ceros sobre las líneas de dirección.
La intención de leer la posición o escribir en ella se señaliza colocando un uno (leer) o
un cero (escribir) sobre una línea denominada “leer / escribir” (R/W). La información de
o para la posición de memoria es transportada por las ocho líneas de datos.
Para una computadora cualquier posición puede ser leída o escrita. No todos los tipos de
memoria soportan la escritura, pero es tarea del programador saberlo, no de la
computadora. Si el programador por error instruye a la computadora a escribir en una
memoria de lectura solamente, esta tratará de hacerlo.
__rendered_path__13
25
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 26
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Kilobytes, Megabytes y Gigabytes.
La menor unidad de memoria de una computadora es un simple bit que puede
almacenar un valor de cero o uno. Estos bits agrupados en conjuntos de 8 bits forman un
Byte. En computadoras más grandes se adiciona un agrupamiento en conjuntos de 16 o
32 bits formando una unidad denominada “word” (palabra). El tamaño de un word
puede ser diferente para diferentes computadoras.
En el mundo decimal a veces expresamos valores muy pequeños o muy grandes
recurriendo a prefijos antecediendo a la unidad de medida, tales como “mili”, “kilo”,
etc.. En el mundo binario usaremos prefijos similares para describir grandes cantidades
de memoria. En el sistema decimal, el prefijo “kilo”significa 1000 (o 10 a la 3) veces un
valor. En el sistema binario, el entero potencia de 2 más próximo a 1000(10) es 2 a la 10
= 1024(10). Decimos “kilobytes”pero queremos decir “K bytes”que son 1024(10) bytes.
Aunque ésta sea una terminología poco científica, se ha convertido en un estándar por
su uso con el correr de los años.
Un megabyte es 2 a la 20 ó 1048576(10) bytes. Un gigabyte es 2 a la 30 ó
1073741824(10) bytes. Una PC con 32 líneas de dirección puede teóricamente
direccionar 4 Gigabytes (4294967296(10)) de memoria.
Los pequeños microcontroladores abordados en este texto poseen sólo entre 512 bytes
a 16 K bytes de memoria.
Tipos de Memoria
Las computadoras usan diversos tipos de información que requieren diferentes tipos de
memoria. Las instrucciones que controlan la operación del microcontrolador son
almacenadas en memoria no-volátil así el sistema no debe reprogramarse luego de
apagar la fuente de alimentación. Tanto las variables de trabajo como los resultados
intermedios necesitan ser almacenados en una memoria que permita una rápida y fácil
escritura durante la operación del sistema. Si no es importante retener la información al
apagar la alimentación podemos usar una memoria de tipo volátil. Este tipo de memoria
es cambiada (escrita) y leída sólo por la CPU en la computadora.
Como otra información de memoria, las entradas de datos son leídas y las salidas de
datos son escritas por la CPU. Las I/O y los registros de control son también formas de
memoria para la computadora, pero difieren de otros tipos de memoria, ya que la
información puede ser monitoreada y / o alterada por algún otro además de la CPU.
La RAM es una forma de almacenamiento volátil, que puede ser leída y escrita por la
CPU. Como su nombre lo indica, las posiciones de memoria de una RAM pueden ser
accedidas en cualquier orden. Este es el tipo más común de memoria en una PC. Una
RAM requiere un área de silicio del circuito integrado relativamente grande. Por la
importante área que necesitan (y por lo tanto su mayor costo), normalmente sólo
pequeñas cantidades de RAM son integradas en los chips de microcontroladores.
__rendered_path__13
26
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 27
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Memoria de Lectura solamente
La ROM recibe la información que almacenará durante el proceso de fabricación.
La información debe ser provista al fabricante antes que el circuito integrado que la
contendrá sea fabricado. Cuando finalmente se use el microcontrolador, esta
información podrá ser leída por la CPU pero cambiada. La ROM es considerada una
forma de almacenamiento no-volátil puesto que la información no cambia si su fuente
de alimentaciones apaga. La ROM es la más simple, más pequeña y más barata de las
memoria no-volátiles.
ROM Programable (PROM)
La PROM es similar a una ROM excepto que es posible programarla con posterioridad
a la fabricación del circuito integrado. Algunas de sus variantes son la PROM borrable
(EPROM), PROM programable una única vez (OTP), PROM borrable eléctricamente
(EEPROM), y, por último, la de más reciente aparición la memoria del tipo FLASH.
EPROM
La EPROM puede ser borrada exponiéndola a la luz ultravioleta. Los
microcontroladores de este tipo de memoria, poseen una ventana de cuarzo que permite
al exponerlo a la luz ultravioleta (de una longitud de onda determinada) su paso al
interior del circuito integrado. El número de veces que una EPROM puede borrarse y
reprogramarse está limitado a algunos cientos de ciclos dependiendo del dispositivo en
particular y de la duración de la exposición a la luz ultravioleta durante el borrado de la
misma.
Se usa un procedimiento especial para grabar información en una EPROM. La mayoría
de los microcontroladores con EPROM recurren a una fuente de alimentación adicional
tal como +12Vcc o tensiones similares durante la operación de programación de la
EPROM.
La CPU no puede escribir información en las posiciones de memoria EPROM tal como
lo hace sobre la memoria del tipo RAM.
Hay microcontroladores que contienen un circuito programador de EPROM, de modo
que la CPU podrá grabar información en posiciones de memoria EPROM. Tal es el caso
de los microcontroladores de Freescale MC68HC705C8A, MC68HC705P6A, etc.
Durante la grabación de una EPROM, el chip debe retirarse del circuito eléctrico del
que es parte, de modo que el programador maneje las direcciones y datos; y una vez
programada debe volver a colocarse. En la analogía de las casillas de correo, se deberían
retirar todas las casillas de correo del edificio para llenarlas con información y luego
restituirlas. Mientras se procede a llenar las casillas, los habitantes del edificio o los
usuarios de las casillas de correo no tienen acceso a ellas.
__rendered_path__13
27
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 28
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Algunos microcontroladores con EPROM (no el MC68HC705J1A) poseen un modo
especial de programación que los hace aparecer como una memoria EPROM estándar.
Estos dispositivos se graban recurriendo a programadores de EPROM comerciales de
propósitos generales.
OTP (One Time Programming)
Cuando un microcontrolador con EPROM es encapsulado en una cápsula plástica
opaca, se lo denomina microcontrolador programable una única vez u OTP. Ya que la
luz ultravioleta no puede pasar a través de la cápsula, la memoria no puede ser borrada.
El circuito integrado dentro del chip de un MCU OTP es idéntico al que viene
encapsulado con una ventana de cuarzo. El encapsulado de plástico es mucho más
barato que el cerámico con ventana de cuarzo. Los MCUs OPT son ideales para
prototipos, primeras producciones y aplicaciones de pequeño volumen. En la actualidad
este tipo de memoria es una de las más usadas tanto por el hobbista como por el
profesional de la industria.
EEPROM (Electrical Ereasable PROM)
La EEPROM puede borrarse eléctricamente por comandos en un microcontrolador. A
fin de grabar un nuevo valor en una posición de memoria, debemos primero borrar
dicha posición y luego realizar una serie de pasos de programación. Esto es algo más
complicado que alterar una posición de RAM que simplemente puede ser escrita con el
nuevo valor por la CPU. La ventaja de la EEPROM radica en el hecho de ser una
memoria no-volátil. Una EEPROM no pierde su contenido al apagar su fuente de
alimentación. A diferencia de la RAM, el número de veces que una posición de
memoria EEPROM puede ser borrada y reprogramada es limitado (típicamente 10000
ciclos), mientras que el número de lecturas es ilimitado. Esta facilidad de la no-
volatilidad de los datos almacenados en EEPROM, constituyen una ventaja muy
interesante a la hora de almacenar “tablas temporales”
cuyos datos Irán variando según una “personalización” para cada usuario en su
aplicación.
En Freescale, la línea HC05 dispone de algunos dispositivos con memoria EEPROM,
tal como el MC68HC805K3.
__rendered_path__13
28
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 29
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Memoria tipo “FLASH”.
La memoria de tecnología “FLASH”, es una memoria del tipo “no-volátil”, similar en
algunos aspectos a las de tecnología EEPROM, pero con muchas ventajas a estas
últimas, que la han hecho en la práctica una memoria muy utilizada en los modernos
microcontroladores de las grandes marcas. La tecnología FLASH, es del tipo borrable y
programable eléctricamente al igual que una EEPROM, pero a diferencia de esta se han
reducido a la mínima expresión los circuitos auxiliares de acceso orientados al “byte”,
esto significa que mientras en una memoria EEPROM es posible borrar un solo Byte en
una posición determinada a lo largo de toda la memoria (acceso orientado al byte), en
una memoria con tecnología FLASH no es posible acceder al borrado de un solo byte en
forma arbitraria, ya que no se cuenta con los mecanismos de acceso (circuitos de
direccionamiento) que permitan el borrado de un byte independientemente del resto.
En la práctica, este inconveniente en el borrado, se compensa con mayor esfuerzo en
“software” por parte del MCU (por lo general, muchos MCUs ya tienen incorporadas
rutinas internas que facilitan los procedimientos de borrado y programación de este tipo
de memorias), y una mayor velocidad en la programación de la misma.
El ahorro que se produce por no utilizar la circuitería adicional de acceso, se ve
reflejado en un menor costo de implementación final de este tipo de memorias en un
MCU, además de una mayor densidad de circuitos de memoria versus superficie
ocupada por los mismos.
Tal es así, que mientras los MCUs con memoria del tipo EEPROM eran considerados
una “rara avis” en la mayoría de las aplicaciones masivas de consumo, por su elevado
costo (2 ó 3 veces más caros que las versiones similares en OTP), en los MCUs
FLASH, van creciendo día a día las aplicaciones para ellos, ya que su costo no es
significativamente mayor a los difundidos OTP (entre un 20 a 30 % superior a estos).
Entre otras de las muchas ventajas que presentan los MCUs FLASH, es la de posibilitar
la programabilidad “En – Circuito”, esto significa que no es necesaria la remoción del
microcontrolador FLASH del circuito en donde esté formando parte, ya que estos
modernos MCUs poseen pines especiales para “comunicarlos” con el mundo exterior
(vía una PC) y permitir programarlos, borrarlos y actualizarlos de forma sencilla y
segura. Además, muchos de ellos poseen circuitería interna que elimina el uso de
tensiones elevadas especiales, como las utilizadas en las memorias del tipo EPROM,
EEPROM.
La durabilidad (número ciclos de borrado - programación) en las tecnologías FLASH de
muchos fabricantes es similar a la de las EEPROM. Por ejemplo, la familia HC908
FLASH de Freescale permite unos 10.000 ciclos de Borrado - Programación a una
temperatura de funcionamiento de - 40 ° C o 125 ° C (la peor condición) y de más de
100.000 ciclos a temperaturas de entre 20 ° C y 30 ° C.
En capítulos posteriores, veremos en detalle las ventajas de esta nueva tecnología de
memoria.
__rendered_path__13
29
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 30
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Dispositivos de I/O como un tipo de memoria.
La información del estado y control de I/O (Input / Output o Entrada / Salida) es un tipo
de posición memoria que permite al sistema de computadora intercambiar información
desde o hacia su mundo exterior. Este tipo de memoria es poco usual, ya que la
información puede ser "monitoreada" y / o alterada por algún otro además de la CPU.
Los tipos más simples de posiciones de memoria de I/O son un simple "port" (puerto)
de entrada y un simple port de salida. En un MCU de 8 bits, un simple port de entrada
(input) contiene 8 pines (por lo general un port típico tiene 8 pines, pero como veremos
más adelante, en algunos MCUs la cantidad puede ser inferior a 8 en algún port en
particular) que pueden ser monitoreados (leídos) por la CPU. Un simple port de salida
(output) contiene 8 pines (por lo general un port típico tiene 8 pines, pero como veremos
más adelante, en algunos MCUs la cantidad puede ser inferior a 8 en algún port en
particular) que pueden ser controlados (escritos) por la CPU.
En la práctica, la implementación de un port de salida es un óctuple "data latch" y las
realimentaciones que permitan a la CPU leerlo. La figura 3-1 muestra el circuito
equivalente para un bit de una RAM, un bit de un port de entrada y un bit de un típico
port de salida que puede ser leído.
En un MCU real, estos circuitos deberán repetirse ocho veces para armar una simple
posición de memoria RAM de 8 bits, port de entrada o port de salida (o menos según la
cantidad de pines del port). En la figura 3-1 los half flip - flops (HFF) son simples flip -
flops transparentes. Cuando la señal de reloj (C) está en alto, los datos pasan libremente
de la entrada "D" a las salidas Q y Q (Negado). Cuando la entrada de reloj es baja, el
dato es sostenido en las salidas Q y Q (Negado).
Image_132_0
Fig. 3-1 – Circuitos de Memoria e I/O.
__rendered_path__13
30
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 31
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Cuando la CPU almacena un valor en la dirección que corresponde al bit de RAM de la
figura 3-1 (a), se activa la señal WRITE para almacenar el dato proveniente de las líneas
del bus de datos en el flip-flop (1). Este almacenamiento es estático y retendrá el valor
escrito hasta que un nuevo valor sea escrito en esta posición (o se apague la fuente de
alimentación). Cuando la CPU lee en la dirección de este bit de RAM, se activa la señal
READ, que habilita al multiplexor (2). El multiplexor acopla el dato de la salida del
flip-flop con la línea del bus de datos. En una MCU real, los bits de RAM son mucho
más sencillos que los mostrados, pero su funcionamiento es equivalente al del circuito
visto.
Cuando la CPU lee un valor en la dirección que corresponde al bit del port de entrada de
la figura 3-1 (b), se activa la señal READ que habilita al multiplexor (3). El multiplexor
acopla el dato del buffer con la línea del bus de datos. Una escritura en esta dirección no
tiene efecto alguno.
Cuando la CPU almacena un valor en la dirección que corresponde al bit del port de
salida de la figura 3-1 (c), se activa la señal WRITE para almacenar el dato proveniente
de las líneas del bus de datos en el flip-flop (4). La salida del latch, llega a través de un
buffer (5) al pin de salida como una señal READ, que habilita al multiplexor (6). El
multiplexor acopla al dato desde la salida del flip-flop con la línea del bus de datos.
Registros Internos de Estado y de Control
Los registros internos de estado y de control son una versión especial de posiciones de
memoria de I/O. Con el objeto de monitorear y controlar pines externos, los registros de
estado y de control monitorean y controlan los niveles lógicos de las señales internas.
Mire en la figura 3-1 y compare un bit de RAM con uno de port de salida. La única
diferencia es que el port de salida posee un buffer que conecta al estado del flip-flop con
el pin exterior. En el caso de un bit interno de control el buffer de salida está conectado
a alguna línea de control al igual que el pin exterior.
Los microcontroladores M68HC05 incluyen pines de I/O de ports paralelos de propósito
general. El sentido de cada pin se puede programar por un bit de control accesible por
programa. La figura 3-2 presenta la lógica para un pin de I/O bidireccional incluyendo
un latch port de salida y un bit de control de dirección de dato (DDR bit).
Un pin de port se configura como salida si en su correspondiente DDR bit es escrito un
uno lógico. Un pin de port se configura como entrada si en su correspondiente DDR bit
es resetearse, todos los DDR bits son borrados, lo que configura a todos los pines como
entrada. Los DDRs pueden ser tanto escritos como leídos por el procesador.
__rendered_path__13
31
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar