Ecus
Ecus
Ecus
TLE8110EE, Smart Multichannel Low Side Switch with Parallel - Control and SPI Interface
coreFLEX Automotive Power
Este componente es un poderoso driver que puede comandar hasta 10 salidas , en las
cuales se puede sensar la temperatura y corriente , y si en estas salidas que son controles
negativos hacia bobinados principalmente, si se supera el límite máximo de corriente sobre
la bobina el mismo integrado está en la capacidad de cortar la activación del transistor ,
pero lo interesante de este trabajo es que es capaz de enviar la respuesta del sensado al
micro controlador , en este caso la señal feedback o diagnostico se realiza a través de
comunicación tipo BUS , lo que lo hace un elemento muy moderno y seguro , las
activaciones INPUT se pueden realizar con circuitos TTL o CMOS 3.3 O 5V , respecto al
bus de comunicación entre el SMART DRIVER y el microcontrolador , el sistema cuenta
con un mecanismo de comunicación a través de bus periférico interface o PCI BUS capaz
de soportar hasta 16 BIT de trabajo , dentro de las salidas existe la posibilidad de utilizar
algunas de ellas para control de modulación por ancho de pulso PWM , esto hace muy
ventajoso para el control de electroválvulas tipo EGR o EVAP.
Las siguientes son algunas de las características que hacen de este componente uno de
los más aplicados a las diferentes Unidades de control ECUS:
Protección contra sobre voltaje, principalmente aplicados a través de los picos inductivos
de los actuadores en este caso bobinas como los inyectores por ejemplo , también cuenta
con protección contra sobre temperatura en caso de corto circuito , o mala instalación del
componente , y por ultimo una protección contra descarga electrostática ESD la cual se
puede presentar por diversas circunstancias entre ellas a través del cableado cuando el
técnico manipule los ramales o arnés de cableado.
El poder contar con la posibilidad de conexión en paralelo le brinda l integrado una ventaja
en cuanto las aplicaciones, logrando utilizar el mismo HARDWARE en diferentes montajes
El sistema puede tener un control de diagnóstico a través del BUS serial que comparte con
el micro controlador relacionado, esto le permite un máximo de posibilidad al momento de
un diagnóstico, para esto el DRIVER utiliza los diferentes sensores al interior, que permiten
brindar la información necesaria al controlador
Este tipo de estructura permite poder controlar más fácil al microcontrolador con una muy
baja potencia de activación y gran respuesta para el diagnóstico lo que reduce el daño por
entrada.
Los nuevos controladores de 32 BIT son sistems que trabajan a 3.3 V este DRIVER esta
dispuesto para poder trabajar bajo estas condiciones , lo que brinda una ventaja importante
respecto a a aplicación en nuevas unidades de control , pero de lo contrario también eta en
posibilidad de trabajar con los tradicionales 5V.
La función clamp o pinzado permite suprimir los picos a través de las cargas inductivas,
este pico de tensión puede llegar hasta los 80 V en algunos actuadores como los VVT-I
INYECTORES Y RELEVADORES, con este clamp se reduce al mínimo la posibilidad de
esfuerzo adicional , y pone a trabajar al transistor en una condición más ventajosa.
A continuación se mostrara un ejemplo de la aplicación de este componente con un
esquema de los pines que se utilizan para el circuito descrito.
A continuación se realizara una descripción de los componentes internos que hacen parte
de este integrado brindando una descripción de cada uno de los términos, para poder tener
una herramienta adicional en lo correspondiente al diagnóstico, o más importante es tener
claro la función de cada terminal puesto que en el ensamble se hace necesario realizar
mediciones sobre el componente, en la mayoría de unidades de control se sigue contando
con una salida, por cada entrada, la diferencia con estos circuitos es que de no estar en
buen estado, se podría tener códigos de falla del componente aunque se instale un
transistor de reemplazo.
CONFORMACION INTERNA DEL INTEGRADO.
3: Registro de entrada
4: Registro de diagnóstico.
5: Control de registro.
8: Sensor de Temperatura.
Ahora a continuación se explicara q corresponde cada uno de los pines que conforman el
integrado, la idea es buscar el método para poder realizar las mediciones, cada uno de los
pines cuenta con una función importante , y la herramienta adecuada para poder realizar
las mediciones es el osciloscopio , el que se instala en cada uno de los pines
correspondientes.
IN 1, IN 2….: Son las entradas que provienen desde el micro controlador, estos son pulsos
generalmente a 5V, pueden ser PWM o VPW, y corresponden directamente al tiempo de
saturación en la salida de acuerdo a la numeración de la entrada, ej la IN 1, accionara la
salida 1 OUT 1.
OUT 1, OUT 2…: Estas siglas representan las salidas de Driver hacia las bobinas
correspondientes a la salida de unidad de control, cada una de estas salidas tiene un
máximo de corriente permisible, lógicamente superior a la corriente nominal del actuador,
pero cada una de estas salidas se encuentran protegidas y diagnosticadas, esto quiere
decir que si ocurre algo con esa salida el smart driver es capaz de indicarlo al micro
controlador.
VDD: esta es l tensión de alimentación de circuito, básicamente en este caso puede ser 5
o 3.3 V esto depende del regulador de tensión que le corresponde a este DRIVER, el
consumo de este elemento es muy bajo, por lo tanto no es muy importante la corriente
mínima de la fuente en el PCM.
EN: Este pin corresponde a la habilitación del trabajo a través de las entradas, este es un
pulso a positivo a través del micro o del circuito correspondiente, en algunos casos puede
ser desde el contacto, este valor en este pin es de 5V.
S_CS: este pin corresponde al comando selección del chip, este dato proviene desde el
controlador , y básicamente tiene que ver con el sistema periférico PCI , de acuerdo al
cuadro lógico del sistema PCI se puede configurar como maestro o esclavo.
S_CLK: Este pin corresponde a la señal de reloj digital proveniente del micro, básicamente
esta señal se utiliza para que el sistema de datos PCI pueda establecer una comunicación,
el ancho de cada pulso de la señal clock, permite establecer la duración de un BIT.
S_SI: Este pin está diseñado para los datos de entrada provenientes del micro dentro de
estos datos pueden estar las habilitaciones activaciones o simplemente la identificación y
solicitud de diagnóstico.
S_SO: Este pin corresponde a los pines de salida de información hacia el micro
correspondiente a los sistema de enlace PCI en este pin se presentan básicamente los
sistemas de diagnósticos del driver hacia micro controlador.
DESCRIPCION DE LA POTENCIA DE SALIDA.
Cada canal de salida esta manejado a través de un transistor mosfet canal N el cual
presenta condiciones óptimas de manejo de potencia, en este aspecto cada una de las
salidas se describe de acuerdo a la potencia del manual del fabricante para este elemento,
esta corriente debe ser usada como selección de diseño del elemento a usar en cada una
de las aplicaciones.
Todos los canales del 1 al 10 están protegidos contra cargas inductivas de hasta 55 V, esta
protección se presenta mediante diodo CLAMP.
La protección, para cargas inductivas se presenta por medio de diodos supresores que
logran eliminar este pico de tensión, dentro del diseño de este circuito existen unas
fórmulas para poder garantizar la estabilidad del circuito pero sirven de mucho al momento
de entender la característica de operación del mismo.
La máxima energía del pico inductivo se puede calcular con la siguiente formula.
SISTEMA DE PROCESAMIENTO DE DATOS – CONTROLADORES Y MEMORIAS
Memorias tipo Sop: Este encapsulado es uno de los más utilizados en la actualidad,
posee una capacidad de 2 hasta 32 megas en el uso automotriz, este encapsulado logro
en su costo, capacidad y espacio un compromiso adoptado por los fabricantes de
electrónica automotriz.
Memorias tipo Plcc: Este encapsulado fue el segundo utilizado por las terminales
automotrices, el misma cuenta con un tamaño reducido y la configuración de sus patas
envuelve los 4 lados a diferencia de su antecesor (dil) la cantidad de patas puede ser de
32, 44, 48 patas. Lo particular de esta configuración es que las patas o pines se
encuentran hacia adentro y su montaje es superficial a la placa madre. Esto simplifica el
tamaño que ocupa en la placa madre y también aporta mayor capacidad en su interior.
Este tipo de memorias se borran eléctricamente. Sobre un lateral posee una marca que
nos indica la posición pin 1. Pueden ser encontradas montadas directamente sobre la
placa como también sobre un zócalo.
DIL: Este encapsulado fue unos de los primeros usados para los autos equipados con
inyección electrónica desde el año 1990. Como se aprecia en la figura este posee 2 líneas
con patas o pines de acceso, estas pueden ser de 28 o 32 pines. Una marca o muesca se
puede observar en su encapsulado, el mismo muestra la orientación de su propia
numeración, y la ubicación del pin 1. También encontraremos una ventana en el medio del
componente el cual nos indica que podemos borrar los datos de la misma con rayos
ultravioletas.
CAPACIDADES DE LAS MEMORIAS
1. Interpretación de su nomenclatura
Amarillo (F): Seguido del tipo de familia se observa la letra ―C=5v‖ esto está referido a su
alimentación o letra ―F=flash‖ esto está referido a que su borrado puede realizarse
eléctricamente. Esto se realiza mediante un programador de eproms, su ventaja
Desarrollar las tensiones de las memorias y beneficios del flash, borrado de los dil y Flash
Equivalencias:
2. Tiempo de acceso
Verde (-70 sf): El tiempo de acceso es el tiempo que se necesita para localizar y leer una
información almacenada; el tiempo de acceso es una característica importante para
determinar la velocidad de resolución de un sistema, conociendo el tiempo de acceso se
puede predecir el tiempo necesario para procesar un trabajo, si algunas localidades de la
memoria se alcanzan más rápidamente que otras se suele tomar el valor promedio de
todas ellas, se habla entonces del tiempo de acceso promedio.
Cabe destacar que debido a los distintos fabricantes de componentes, existen diferentes
formas de colocar la información. Pero en su mayoría uno puede ver a que tipo de familia
pertenece, su capacidad y su velocidad de acceso. Algunos datos perteneces a datos
internos de cada fabricante, numero de fabricación, lote, etc.
4. Chek Sum:
Cuando una memoria es leída entrega un valor guardado por cada dirección de la misma.
De acuerdo a la capacidad que la memoria tiene, puede almacenar más datos porque tiene
más direcciones donde guardarlos.
Inicialmente cuando se coloca la ignición el procesador lee todos los valores almacenados
en cada dirección de la memoria y los suma matemáticamente.
Estos valores son números binarios que son sumados todos en su totalidad.
Esta suma genera un nuevo número llamado Check Sum y que no es más que la suma
matemática de todos los valores almacenados en una memoria.
Comprendamos que la memoria tiene lugares donde guardar esos valores o datos, esta
capacidad de guardar en mayor o menor medida depende de la misma capacidad en Mb
de la memoria.
El Check Sun da un número que el procesador conoce y debe coincidir. Si el Check Sun no
se corresponde, esto puede ser por un problema físico en una dirección o porque el dato
guardado se ha alterado.
MEMORIAS SERIALES.
Las memorias EEPROM que funcionan bajo el protocolo I2C han ganado poco a poco un
espacio en el hardware de los equipos electrónicos hasta transformarse en uno de los
medios de almacenamiento de información más populares por su practicidad y sencillez de
manejo. Tener la posibilidad de almacenar datos de diversa índole en una memoria no
volátil, es una característica importante de los equipos que les permite la desconexión
prolongada de cualquier suministro energético y conservar durante mucho tiempo
información valiosa que de otro modo, se perdería al desconectar un sistema. También
conocidas como memorias de protocolo ―serie‖ las 24CXX son infaltables en cualquier
equipo electrónico de consumo masivo y aquí te ayudaremos a comprender su
funcionamiento.
El Bus I2C (Inter - Integrated Circuit) es un sistema de comunicación de dos cables, con
propiedades de velocidad de transferencia de datos considerada de media a baja (400
Khz. a 100 Khz.) y que fue desarrollado por Philips Semiconductor, a comienzos de la
década del 80. Originalmente creado para reducir los costos de los equipos electrónicos,
tuvo sus primeras aplicaciones en controles de contraste, brillo y volumen en aparatos de
televisión pero actualmente encontramos conexiones por bus I2C en una gran variedad de
computadoras, equipos industriales, entretenimiento, medicina, sistemas militares y un
ilimitado abanico de aplicaciones e importantes usos potenciales.
Estos dos cables son llamados Clock (SCL) y Data (SDA) y son los encargados del
direccionamiento, selección, control y transferencia de datos, de a un BIT por vez.
Una memoria 24C04 utilizada en un TV
SDA está encargado del intercambio de datos, mientras que SCL se encarga de
sincronizar al transmisor y al receptor durante la transferencia de los datos mencionados
desde un IC al otro. Dentro del sistema de comunicación I2C, los dispositivos están
identificados como Maestro (Master) y Esclavo (Slave), por lo que al dispositivo que inicia
el contacto y ―abre‖ el bus se lo denomina Master, mientras que al que recepciona y
contesta el llamado se lo denomina Slave. Los dispositivos conectados al bus pueden ser
Master solamente, Slave solamente o intercalar las funciones de Master y Slave de
acuerdo como el sistema requiera, tal como es el caso que veremos de las memorias
EEPROM I2C.
Este sistema puede interconectar a muchos IC sobre el bus (hasta 255 dispositivos) y
todos conectados a los mismos dos cables SDA y SCL. Cada dispositivo esclavo posee
una única dirección y cuando el Master transmita el llamado todos los ICs conectados al
bus lo escucharán, pero solo le contestará aquel que posea la dirección que el transmisor
incluyó en su llamada y será con este único Slave, con quien iniciará la transferencia de
datos hasta que decida ―cerrarla‖. Comenzando a comunicar La condición de START o
Inicio ocurre únicamente en la transición de un estado ALTO a un estado BAJO en la línea
SDA mientras la línea SCL se encuentre en un nivel ALTO. En cambio, la transición de un
estado BAJO a un estado ALTO en la línea SDA, mientras la línea SCL se encuentre en
un nivel ALTO, indicará una condición de STOP o Parada. Las condiciones de START y
STOP son siempre generadas por el dispositivo que asuma la condición de Master dentro
del bus.
En Proton debemos indicarle al programa y/o al microcontrolador cuáles son los pines que
cumplirán las funciones de SDA y SCL, porque pueden existir desarrollos en que estemos
trabajando con un dispositivo que no posea un módulo SSP nativo (Synchronous Serial
Port). En este caso, no tendremos pines dedicados (por hardware) a tal fin en el
microcontrolador y debemos indicarle al sistema mediante instrucciones de programa, que
pines cumplirán la función de interconexión al Bus I2C. Esto se realiza al comienzo del
programa antes de la declaración de variables y se formaliza mediante un comando
llamado DECLARE, quedándonos la secuencia de la siguiente forma:
En el ejemplo propuesto, hemos ordenado que SDA sea el pin 0 del puerto B, mientras que
SCL sea el pin 1 del mismo puerto. Esta aplicación es válida para cualquier puerto del
microcontrolador mientras esté configurado en modo digital y se debe tener en cuenta que
si no se incluyen estas directivas al inicio del programa, por defecto se asignarán los pines
PORTA.0 para SDA y PORTA.1 para SCL.
Otra de las cosas que debemos indicarle a nuestro sistema durante el desarrollo es la
velocidad a la que intercambiará datos el bus ya que la mayoría de los dispositivos
actuales puede realizarlo a 400Khz o a 100Khz. Si bien ya existen circuitos integrados
capaces de trabajar a 1Mhz también nos encontramos en la actualidad con el contraste de
memorias EEPROM que no pueden intercambiar datos a más de 100Khz. Por lo tanto, si
optamos por utilizar la frecuencia mínima, incluiremos el siguiente comando: DECLARE
SLOW_BUS=ON
Luego de esto, ya estamos listos para ―abrir‖ el diálogo dentro del bus y lo haremos con el
sencillo comando: BSTART
De esta forma, el bus ya habrá sido abierto por nuestro microcontrolador asignándose éste
la función de Master y pasando a estar todo listo para la transferencia de datos hacia el
Slave que el microcontrolador decida, transmitiendo al bus la dirección pertinente. Para
leer datos, en nuestro caso alojados en una memoria, lo haremos de la siguiente forma:
BUSIN Control, Dirección, [Variable]
La sintaxis expresada nos indica que el Master (nuestro microcontrolador) recibirá (BUSIN)
un dato, el que colocará dentro de una Variable luego de haberlo sacado de uno de los
dispositivos ―colgados‖ del Bus I2C. El circuito a quién desea extraer el dato le transmite a
través de la palabra de Control que va a extraer datos de él, y que dicho dato se
encuentra en la Dirección apuntada. La palabra Control posee dos informaciones
importantes a destacar que son el nombre que posee nuestro dispositivo remoto dentro del
Bus y la instrucción acerca de que vamos a leer en él. Si por el contrario lo que desea
hacer el sistema es escribir un dato en el dispositivo Slave seleccionado, lo hará mediante
la siguiente forma: BUSOUT Control, Dirección, [Variable].
Con una sintaxis muy similar al caso anterior, el Master transmitirá (BUSOUT) un dato, el
que tomará de una Variable, y lo grabará en uno de los dispositivos conectados al bus y
seleccionado con la palabra de Control. En esta palabra se indicará a cuál de todos los
dispositivos le hablará, indicándole que grabará en él y que a este proceso lo hará en una
Dirección definida dentro del programa principal. Cabe agregar en este punto que Proton y
la mayoría de los fabricantes de memorias recomiendan efectuar una rutina de demora o
espera luego de haber grabado un dato a través de BUSOUT, para asegurar la grabación
del dato, la que se efectiviza mediante la expresión: DELAYMS 10 , indicándonos con esto
que efectuará un retardo o demora (Delay) de 10 milisegundos. Luego, sólo nos queda
―cerrar‖ el bus y lo haremos con la instrucción: BUSTOP Eso es todo. Ya tenemos la
forma de abrir el bus, de leer o de grabar en un dispositivo Slave y de cerrar nuevamente
el bus. Es momento de saber cómo manejar la palabra de Control y la Dirección de
lectura/escritura.
No todas las memorias EEPROM I2C se direccionan y controlan de la misma forma. Por lo
tanto, haremos un breve resumen de los datos más relevantes a tener en cuenta al
momento de emplear la palabra Control dentro de los comandos BUSIN y BUSOUT.
La palabra o Byte de Control, nos indicará la dirección que posee la memoria dentro del
bus y si vamos a leer o a escribir en ella.
24C00 = 1|0|1|0|X|X|X|R/W
R/W significa Read o Write, que en español equivale a Leer o Escribir respectivamente
según lo que decidamos hacer con la memoria. Si vamos a leer la memoria (Read) este bit
adoptará el valor 1. En cambio, al grabar un dato en la misma (Write), el valor será 0. Por
su parte X, significa que el valor que adopte en estas posiciones no tiene relevancia, por lo
que podemos adoptar para este lugar, un cero o un uno que el resultado será el mismo.
Como dato adicional podemos mencionar que la memoria 24C00 posee una capacidad de
128 bits, organizada en una sola página con 16 Bytes de 8 bits
24C01/24C02/24C04 = 1|0|1|0|A2|A1|A0|R/W
Para este grupo de memorias tenemos la misma dirección en los cuatro bits iniciales
(1010) que en el caso anterior, lo mismo para el bit final de R/W, pero encontramos un
significativo cambio en las posiciones A0, A1 y A2 que coinciden con los pines uno, dos y
tres respectivamente, según las hojas de datos de las memorias.
Los pines A2, A1 y A0 se utilizan para seleccionar el chip al que direccionaremos la
transferencia de datos
Con estos tres bits, podemos direccionar hasta ocho memorias conectadas al mismo bus,
trabajo que puede realizar cómodamente el microcontrolador. La única que se diferencia
de este grupo es la 24C04 que debe tener siempre conectado A0 a GND o a VCC,
pudiendo por lo tanto, direccionarse sólo cuatro unidades de la misma a través de A1 y A2.
A0, en este caso, servirá para direccionar el ―puntero‖ de escritura o lectura, hacia la primer
página de 256 Bytes o hacia la segunda. Aquí empezaremos a ver ya, cómo la estructura
interna de estas memorias está organizada en ―páginas‖. Por último, destacamos que en
este grupo de memorias encontramos la siguiente característica: sumarse a otras iguales
para incrementar la capacidad de almacenamiento.
Por su parte la memoria 24C02 posee una página de 256 Bytes y la 24C04 ya posee dos
páginas de 256 Bytes cada una, sumando así 512 Bytes de capacidad. Vemos entonces,
que las 24C01 y 24C02 poseen una sola página, por lo que la palabra de control para ellas
será igual a 1010000X, siendo X el bit que defina la lectura o escritura en la memoria,
mientras que la 24C04 tendrá dos palabras de control, según la página donde decidamos
trabajar. Esto es, 1010000X para la primer página y 1010001X para la segunda.
24C08/24C16 = 1|01|0|B2|B1|B0|R/W
En el caso de estos modelos, repetimos los primeros cuatro bits iníciales que identifican a
las memorias EEPROM seriales (1010) y el último bit R/W, mientras que nos encontramos
con la terminología B2, B1 y B0 dentro de la palabra de control en estos modelos.
Tabla que nos muestra cómo seleccionar las páginas en memorias 24C08 y 24C16
24C08 y 24C16 son tamaños de memoria altamente utilizadas en los equipos de TV y DVD
para almacenar información
La palabra Dirección
Habiendo llegado hasta aquí, nos queda resolver solamente la forma en que estará
compuesta esta palabra, la que será usada para decidir el casillero que ocuparemos con
información dentro de la página que habremos seleccionado con anterioridad. En el caso
de la 24C00 teníamos una página de tan sólo 16 Bytes, por lo que tendremos apenas 16
―filas‖ para ubicar Bytes de información. Protón Lite acepta cualquiera de las tres
notaciones para las palabras de Control y de Dirección, es decir: Binaria, Decimal o
Hexadecimal, por lo que podemos escribir para facilitar el trabajo, un comando de la
siguiente forma:
Luego viene el valor 8, que sería 00000100 en binario, lo que nos indica que se leerá la
octava de todas las filas de Bytes que tenga esta página. Mientras que por último, el dato
extraído será volcado en una variable de tamaño BYTE a la que hemos denominado ―Dato‖
El último bit de la palabra de control a pasado a ser cero (antes teníamos 161 y ahora
tenemos 160), y el valor a grabar será el que exista en ese momento dentro de la variable
―Otro_Dato‖, también de tamaño BYTE y declarada al inicio del listado del programa.
De esta forma se pueden guardar una multitud de datos en una memoria EEPROM I2C y
tenerlos siempre listos para su utilización durante el desarrollo del programa. Además,
funciones extras dentro del programa del microcontrolador nos pueden permitir detectar el
corte de la tensión de alimentación y, mediante el uso de una batería de respaldo o Back-
Up, grabar inmediatamente todas las variables dentro de la memoria para luego proceder a
apagar el sistema de forma automática hasta que se reponga la energía. Un ejemplo de
esta aplicación son los contadores de fichas de los videojuegos de salón, los flippers y
la mayoría de las máquinas recreativas que trabajan con fichas o monedas. Mientras la
máquina funciona normalmente, la batería de respaldo se mantiene cargada y al momento
de un apagón o de la desconexión para su traslado, la información se guarda de manera
automática para su posterior control.
Incluye una línea de reloj, dato entrante, dato saliente y un pin de chip select, que conecta
o desconecta la operación del dispositivo con el que uno desea comunicarse. De esta
forma, este estándar permite multiplexar las líneas de reloj.
SPI bus: un maestro y tres esclavos.
Muchos sistemas digitales tienen periféricos que necesitan existir pero no ser rápidos. La
ventajas de un bus serie es que minimiza el número de conductores, pines y el tamaño del
circuito integrado. Esto reduce el coste de fabricar montar y probar la electrónica. Un bus
de periféricos serie es la opción más flexible cuando muchos tipos diferentes de periféricos
serie están presentes. El hardware consiste en señales de reloj, data in, data out y chip
select para cada circuito integrado que tiene que ser controlado. Casi cualquier dispositivo
digital puede ser controlado con esta combinación de señales. Los dispositivos se
diferencian en un número predecible de formas. Unos leen el dato cuando el reloj sube
otros cuando el reloj baja. Algunos lo leen en el flanco de subida del reloj y otros en el
flanco de bajada. Escribir es casi siempre en la dirección opuesta de la dirección de
movimiento del reloj. Algunos dispositivos tienen dos relojes. Uno para capturar o mostrar
los datos y el otro para el dispositivo interno.
MICROCONTROLADORES.
Los dispositivos de entrada proporcionan información del mundo exterior al sistema con
microprocesador. En un ordenador personal, el dispositivo de entrada más común es el
teclado, igual que una máquina de escribir. Los sistemas con microprocesadores
normalmente usan dispositivos de entrada mucho más simples como interruptores o
pequeños teclados, aunque los dispositivos de entrada más exóticos se encuentran en los
sistemas basados en microprocesador. Un ejemplo de un dispositivo de entrada exótico
para un microprocesador es el sensor de oxígeno en un automóvil que mide la eficacia de
la combustión tomando muestras en el tubo de escape.
Por supuesto, el mundo real está lleno de señales analógicas o señales que son de otros
niveles de voltaje. Algunos dispositivos de entrada traducen los voltajes de señal de algún
otro nivel a los niveles VDD y VSS, necesarios para el microprocesador. Otros dispositivos
de entrada convierten las señales analógicas en señales digitales (a valores binarios ‗1‘ y
‗0‘) para que el microprocesador los pueda entender y manipular.
Se usan dispositivos de salida para comunicar la información o acciones del sistema con
microprocesador al mundo exterior. En un ordenador personal, el dispositivo de salida más
común es la pantalla CRT(tubo de rayos catódicos). Los sistemas con microprocesador
usan a menudo dispositivos de salida mucho más simples como los LEDs, lámparas, o
zumbadores. Circuitos convertidores (a veces construidos en el mismo circuito integrado
microprocesador) pueden convertir señales digitales a niveles de voltaje analógicos. Del
―controlador‖ en microcontrolador viene del hecho de que estos pequeños sistemas con
microprocesador normalmente controlan algo en comparación con un ordenador personal
que normalmente procesa información. En el caso del ordenador personal, la mayoría de
las salidas es de información (cualquier información en una pantalla CRT o en el papel de
la impresora). Por otro lado, en un sistema con microprocesador, la mayoría de las salidas
son señales de nivel lógico digital, que se usan para manejar LEDs o dispositivos eléctricos
como relés o actuadores Ej Inyectores.
Unidad Central de Proceso (CPU)
Reloj (Clock)
Salvo excepciones, los microprocesadores usan un pequeño oscilador del reloj (clock)
para activar la CPU, para mover de un paso a la secuencia siguiente. En el capítulo de
arquitectura de un microprocesador, se puede ver que incluso las instrucciones simples de
un microcontrolador están compuestas de una serie de pasos aún más básicos. Cada uno
de estos pasos diminutos en el funcionamiento del microprocesador toma un ciclo del reloj
de la CPU.
Se usan varios tipos de memoria para los diferentes propósitos en un sistema con
microprocesador. Los tipos principales de memoria encontrados en un microcontrolador
son:
ROM (Read Only Memory): memoria sólo de lectura, este tipo de memoria se programa en
fábrica y se llama Máscara.
OTP (One Time Programmable): memoria sólo de lectura, programable eléctricamente una
sola vez.
FLASH: memoria programable y borrable eléctricamente, por bloques. Estos tipos se usan
principalmente para almacenar los programas y los datos permanentes que deben
permanecer inalterados incluso cuando no hay ninguna alimentación aplicada al
microcontrolador.
La unidad más pequeña de una memoria, es de un solo bit, que puede guardar uno valor
lógico ‗0‘ o ‗1‘.
Estos bits se agrupan en conjuntos de ocho bits para hacer uno byte. Los
microprocesadores más grandes utilizan grupos de 16 o 32 bits, llamados ‗palabras‘ o
word. El tamaño de una ‗palabra‘ (word) puede ser diferente para cada microprocesador,
pero un byte siempre es de ocho bits. Los ordenadores personales trabajan con programas
muy grandes y con grandes cantidades de datos, para ello usan formas especiales de
dispositivos de almacenamiento, llamados almacenamiento en masa, como los discos
blandos, los discos duros, y los discos compactos. No es raro encontrar varios millones de
bytes de memoria RAM en un ordenador personal, con discos duros con varios gigabytes o
discos compactos muy similares a los usados para las grabaciones de música con una
capacidad de 640 millones de bytes de memoria de sólo lectura. En comparación, los
sistemas con microcontrolador típico tienen una memoria total entre 1,000 y 64,000 bytes.
Programa de un Microprocesador
La Figura inferior muestra el programa como una nube, porque se origina en la imaginación
del ingeniero o programador del microprocesador. Esto es comparable a un ingeniero
eléctrico que piensa en un nuevo circuito o un ingeniero mecánico que deduce un nuevo
ensamblaje. Los componentes de un programa son las instrucciones del juego de
instrucciones de la CPU. Así como el diseñador del circuito puede construir un circuito
sumador con simple puertas AND, OR y NOT, un programador puede escribir un programa
para sumar números con simples instrucciones.
El Microcontrolador
Hasta ahora se han visto varias partes de un sistema con microprocesador y ya se está
preparado para hablar sobre los microcontroladores. En la mitad superior de la figura
inferior se muestra un sistema con microprocesador genérico, con una parte adjunta de
contorno punteado. Esta parte, es un microcontrolador y la mitad inferior de la figura es un
diagrama de bloques que muestra su estructura interior con más detalle. El cristal no se
contiene dentro del microcontrolador, pero es una parte necesaria del circuito oscilador. En
algunos casos, se puede sustituir el cristal por un resonador cerámico que es más
económico o un aún menos caro con un conjunto RC (resistencia-condensador).
2. Memoria.
3. Cristal.
Códigos ASCII
El código ASCII establece una correlación ampliamente aceptada entre los caracteres
alfanuméricos y los valores binarios específicos. Usando el código ASCII $41, corresponde
a la letra mayúscula A, $20 corresponde a un carácter de espacio, etc. El código ASCII
traduce caracteres a códigos binarios de 7-bits, pero en la práctica la información de los
caracteres se lleva normalmente con 8-bits, poniendo el bits más significativo igual a 0 (el
de más a la izquierda).
Este código ASCII permite, que equipos fabricados por varios fabricantes, puedan
comunicarse porque todos usan este mismo código. La Tabla 2 muestra la relación entre
los caracteres ASCII y el valor hexadecimal.
Tabla 2. Conversión de Hexadecimal a ASCII
Los microprocesadores utilizan otro código para dar las instrucciones a la CPU, llamado
código de trabajo o ‗opcode‘. Cada ‗opcode‘ instruye a la CPU para ejecutar una sucesión
muy específica de pasos, que juntos logran un funcionamiento pretendido. Los
microprocesadores de diferentes fabricantes usan diferentes juegos de ‗opcodes‘ porque
estos ‗opcodes‘ son internamente alambrados en la lógica de la CPU. El juego de
instrucciones para una CPU específica, es el conjunto de todos los funcionamientos que
la CPU sabe realizar.
Los ‗opcodes‘ son una representación del conjunto de instrucciones y los código
mnemotécnicos son otros. Aunque los ‗opcodes‘ difieren de un microprocesador a otro,
todos los microprocesadores realizan los mismos tipos de tareas básicas de maneras
similares. Por ejemplo, la CPU MC68HC05 puede entender 62 instrucciones básicas.
Algunas de estas instrucciones básicas tienen algunas ligeras variaciones, cada una
requiere un ‗opcode‘ por separado. El juego de instrucciones del MC68HC05 está
representado a través de 210 únicas instrucciones ‗opcodes‘. En otro capítulo se muestra
cómo la CPU ejecuta realmente las instrucciones, pero primero se necesitan entender unos
conceptos más básicos.
Un ‗opcode‘ como $4C es entendido por la CPU, pero no significa mucho a un humano.
Para resolver este problema, se usa un sistema de código mnemotécnico equivalente a la
instrucción. El ‗opcode‘ $4C corresponde al código mnemotécnico INCA que significa
―incrementar el acumulador.‖ Aunque en este libro se muestra la información que
correlaciona las instrucciones mnemotécnicas y los ‗opcodes‘ que ellos representan, esta
información raramente la usa un programador, porque el proceso de traducción se maneja
automáticamente por un programa para el microprocesador llamado ensamblador
(assembler). Un ensamblador es un programa que convierte un programa escrito en
código mnemotécnico, en una lista de código máquina (‗opcodes‘ y otra información) que
puede ser usado por una CPU.
CPU lo pueda entender. En otros capítulos se verán las instrucciones, como escribir un
programa y el programa ensamblador. Sin embargo, ahora solo hay que entender que las
personas preparan instrucciones para una microprocesador en una forma de código
mnemotécnico, pero que el microprocesador entiende sólo ‗opcodes‘; así que, se requiere
un paso, la traducción de cambiar los mnemónicos a ‗opcodes‘, que es la función del
ensamblador.
Números Octales
Antes de dejar los sistemas de números y códigos, se ven los dos códigos adicionales de
los que se puede haber oído hablar. El sistema Octal (base 8) se usó para algún trabajo
del microprocesador, pero raramente se usa hoy en día. La anotación Octal usa los
números del 0 al 7, representados en tres dígitos binarios, lo mismo que en hexadecimal
se representan en cuatro dígitos binarios. El sistema octal tiene la ventaja de usar los
mismos símbolos de los números decimales, a diferencia de los símbolos hexadecimales,
que añaden de la A a la F.
Los dos motivos que causaron el abandono del sistema octal en favor del hexadecimal
fueron: En primer lugar, la mayoría de microprocesadores usan palabras de 4, 8, 16, o 32
bits; estas palabras no se pueden agrupar en grupos de tres bits. Algunos de los primeros
microprocesadores usaron palabras de 12-bits agrupados en tres bits cada uno. En
segundo lugar el sistema octal no es tan compacto como el hexadecimal; por ejemplo, el
valor en ASCII para la letra mayúscula A es 10000012 (en binario), 4116 (en hexadecimal)
y 1018 (en octal).
Cuando un programador está hablando sobre el valor ASCII de la letra A, es más fácil decir
―cuatro y uno‖ que decir ―uno cero uno‖.
Al traducir mentalmente los valores de octal a binario, el valor octal se representa con tres
dígitos. Con cada dígito octal representado con grupos de tres bits binarios, hay un bit de
más, (3 dígitos x 3 bits = 9 bits).
Entonces es fácil olvidarse de quitar el bit de más y terminar con un bit extra (el bit
noveno). Al traducir de hexadecimal a binario, es más fácil porque cada dígito hexadecimal
equivale exactamente a cuatro bits binarios.
Binario codificado en decimal (BCD) es una anotación híbrida usada para expresar valores
decimales en forma binaria, Tabla 4. BCD usa cuatro bits binarios para representar cada
dígito decimal. Cuatro dígitos binarios pueden expresar 16 diferentes cantidades físicas,
pero en este caso habrá seis combinaciones con valor de bit que son considerados
inválidos (específicamente, los valores hexadecimales valor A hasta la F). Los valores BCD
se muestran también con el signo $ porque realmente son números hexadecimales que
representan cantidades decimales.
Cuando el microprocesador hace que una operación sume en BCD, realiza una suma
binaria y entonces ajusta el resultado en la forma BCD. Por ejemplo, la suma BCD
siguiente:
El microprocesador suma
Primero, no todos los microcontroladores son capaces de hacer cálculos en BCD, porque
necesitan un indicador de acarreo dígito a dígito que no está presente en todos los
microprocesadores (aunque las MCU de Motorola tienen este indicador). Segundo, obliga
al microprocesador emular la conducta humana que es menos eficaz que permitir al
microprocesador trabajar en su sistema binario nativo.
Transistores CMOS
La Figura 3 muestra los símbolos para un transistor CMOS tipo N y P. Las características
exactas de estos transistores se pueden determinar por su esquema físico, tamaño y
forma. El propósito de este libro, es tratarlos como dispositivos conmutadores simples.
El transistor tipo N en la Figura 3 tiene su terminal ‗fuente‘ [3] conectado a tierra. Para que
un transistor tipo N conduzca, el voltaje de la ‗puerta‘ [2] debe ser más alto que el voltaje
de la ‗fuente‘ [3], por una cantidad conocida como ‗umbral‘. Se dice que este transistor tipo
N conduce (entre los terminales [1] y [3]), cuando hay un voltaje lógico 1 en su ‗puerta‘ [2].
Cuando la ‗puerta‘ está en lógica 0, se dice que este transistor tipo N no conduce y actúa
como un interruptor abierto entre los terminales [1] y [3].
El transistor tipo P en la Figura 3 tiene su terminal ‗fuente‘ [4] conectado a VDD. Para que
un transistor tipo P conduzca, su voltaje de ‗puerta‘ [5] debe ser más bajo que el voltaje de
la ‗fuente‘ [4], por una cantidad conocida como ‗umbral‘. El transistor tipo P se diferencia
del tipo N con un pequeño círculo en la ‗puerta‘ [5].
Cuando hay un voltaje lógico 0 en la ‗puerta‘ [5] este transistor tipo P se dice que conduce
y actúa como un interruptor cerrado entre los terminales [4] y [6]. Cuando la ‗puerta‘ está
en voltaje lógico 1, este transistor tipo P no conduce y actúa como un interruptor abierto
entre los terminales [4] y [6].
Inversor
Puerta NAND
Aunque ésta es una simple función lógica, muestra cómo los transistores CMOS pueden
interconectarse para realizar la lógica Booleana con simples señales de nivel lógico. La
lógica de Boole (llamada así, por el matemático irlandés que la formuló) tiene 2 valores (0 y
1) basados en el sistema algebraico con formas matemáticas y relaciones.
Puerta NOR
Los microcontroladores incluyen los tipos más complejos de puertas lógicas y los
elementos funcionales mostrados en la sección anterior. En esta sección, se estudian
algunas de estas estructuras más complejas, las dos estructuras primeras —la puerta de
transmisión y el Buffer de tres estados— introduciendo la idea de señales de alta
impedancia controladas lógicamente, la tercera — Medio Flip-Flop — introduce una
estructura, que puede mantener una señal en la salida, aún después de que la señal de
entrada haya cambiado.
Los Flip-Flops son vitales para los microcontroladores, para realizar contadores y tareas
secuenciales.
Puerta de transmisión
Cuando la entrada de control [3] está a un nivel lógico 1, se dice que la puerta de
transmisión conduce y entonces tiene una conexión directa de la entrada [1] a la salida [2].
Si las dos entradas de control [3] y [1] están a un nivel lógico 1, el transistor tipo P [5]
conducirá y conectará la entrada [1] y salida [2]. Aunque la puerta detransistor tipo N [6]
esté en nivel lógico 1, la ‗fuente‘ [1] también está al mismo voltaje, entonces el transistor [6]
no conducirá. Si la entrada de control [3] está a un nivel lógico 1 y la entrada [1] está a un
nivel lógico 0, el transistor tipo N [6] conducirá y conectará la entrada [1] y la salida [2].
Aunque la puerta del transistor tipo P [5] esté a un nivel lógico 0, la ‗fuente‘ [1] también
estará al mismo voltaje, entonces el transistor [5] no conducirá.
Cuando la señal seleccionada [3] está a un nivel lógico 1, la puerta de transmisión [6]
conducirá y la puerta de transmisión [7] (debido al inversor [5]) no conducirá. Así que la
salida [4] no tendrá el mismo nivel lógico que la entrada [1] y las señales 1 de la entrada [2]
no afectarán a la salida [4]. Cuando la señal seleccionada [3] está a un nivel lógico 0, la
puerta de transmisión [7] conducirá y la puerta de transmisión [6] no conducirá. Así que la
salida [4] no tendrá el mismo nivel lógico que la entrada [2] y las señales 1 en la entrada [1]
no afectarán a la salida.
Buffer de tres estados. Cuando la entrada de control [3] está a un nivel lógico 0, se dice
que el Buffer no conduce y la salida [2] está en alta impedancia que aísla el nodo. Cuando
la entrada de control [3] está a un nivel lógico 1, se dice que el Buffer conduce y cualquier
nivel lógico que esté presente en la entrada [1] también estará en la salida [2].
Viendo el circuito CMOS equivalente a la derecha de la Figura 9 y la Tabla 9, se puede
explicar lo siguiente: Cuando la entrada de control [3] está a un nivel lógico 0, la puerta del
transistor tipo N [6] estará a un nivel lógico 0 y la puerta del transistor tipo P [5] a través del
inversor [9] estará a un nivel lógico 1 (VDD), entonces ambos transistores [5] y [6] no
conducirán. El nodo de salida [2] quedará aislado del todo, se dice que está en alta
impedancia.
Cuando la entrada de control [3] está a un nivel lógico 1, la puerta del transistor tipo N [6]
estará a un nivel lógico 1 y la puerta del transistor tipo P [5] estará a un nivel lógico 0. Si la
entrada del Buffer [1] está a un nivel lógico 0, la salida del inversor [4] estará a un nivel
lógico 1 y hará conducir el transistor tipo N [8] y dejará de conducir el transistor tipo P [7].
Con la entrada de control [3] a un nivel lógico 1 y la entrada [1] a un nivel lógico 0, la salida
del Buffer [2] estará conectada a tierra a través de los transistores tipo N [6] y [8] qué
estarán en conducción.
Cuando la entrada de control [3] está a un nivel lógico 1, la puerta del transistor tipo N [6]
estará a un nivel lógico 1 y la puerta del transistor tipo P [5] estará a un nivel lógico 0. Si la
entrada del Buffer [1] está a un nivel lógico 1, la salida del inversor [4] estará a un nivel
lógico 0, haciendo conducir el transistor tipo P [7] y dejará de conducir el transistor tipo N
[8]. Con la entrada de control [3] y la entrada [1], ambas a un nivel lógico 1, la salida del
Buffer [2] se conectará a VDD a través de los transistores tipo P [7] y [5], que estarán en
conducción.
Medio Flip Flop (HFF)
Cuando la entrada de reloj [2] está a un nivel lógico 1, la puerta de transmisión [9] conduce
y la puerta de transmisión [8] no conduce. Se dice que el medio Flip-Flop es transparente,
porque la señal de entrada [1] pasa directamente a las salidas Q [3] y Q negada [4].
Cuando el reloj [2] está a un nivel lógico 0, la puerta de transmisión [8] conduce y la puerta
de transmisión [9] no conduce. En este estado, el medio Flip-Flop se dice que está
enclavado (latched). La puerta de transmisión [8], el inversor [6] y el inversor [7] forman un
―anillo‖ estable y las salidas Q [3] y Q negada [4] permanecen al mismo nivel lógico que
cuando el reloj cambió de 1 a 0.
Tipos de Memoria
Para trabajar con las variables y los resultados intermedios, es necesario guardarse en una
memoria que pueda escribirse rápidamente y fácilmente durante el funcionamiento del
sistema. No es importante conservar este tipo de información cuando no hay alimentación,
por lo que puede usarse una memoria volátil. Estos tipos de memorias se les puede
modificar su contenido escribiendo y sólo se pueden leer por la CPU del microcontrolador.
Otra información sobre las memorias, los datos de entrada son leídos por la CPU y los
datos de salida son escritos por la CPU. Las entradas/salidas E/S (I/O input/output) y los
registros de control son también una forma de memoria del microcontrolador, pero son
diferentes a los otros tipos de memoria, porque la información puede ser detectada y/o
cambiada por otra cosa diferente de la CPU.
Memorias Volátiles
La RAM es una forma de memoria volátil que puede ser leída o escrita por la CPU. Como
su nombre implica, se puede acceder a las posiciones de la RAM en cualquier orden. Esta
es el tipo de memoria más común en un microcontrolador. La RAM requiere una cantidad
relativamente grande de área de silicio del circuito integrado y debido a esto el costo es
alto, por esto, normalmente las cantidades de RAM incluidas en los microcontroladores
suelen ser pequeñas.
Memorias No-Volátiles
La PROM es similar a la ROM, sólo que puede ser programada después de fabricar el
circuito integrado.
La EPROM puede ser borrada exponiéndola a una fuente de luz ultravioleta. Los
microcontroladores con EPROM tienen una pequeña ventana de cuarzo que permite al
circuito integrado ser expuesto a la luz ultravioleta para borrarse. El número de veces que
puede borrarse y reprogramarse una EPROM se limita a unos cientos ciclos y depende del
dispositivo en particular. Para programar la información en una memoria EPROM se usa un
procedimiento especial. La mayoría de microcontroladores con EPROM usan un voltaje
adicional típico de +12 Vdc, durante la programación de la EPROM. La CPU no puede
escribir información en una posición de la EPROM tal como se hace para escribir en una
posición de la RAM.
De manera análoga a las casillas, esto sería quitar el mueble entero de soporte de los
buzones y tomándolo como un almacén donde las cajas se llenarían con información.
Mientras los buzones están programándose, no se puede acceder a los buzones del
edificio. Algunos microcontroladores con EPROM (no el MC68HC705J1A) tienen un modo
especial de funcionamiento que los hace parecer una memoria EPROM normal de la
industria.
Los tipos más simples de posiciones de memoria son los puertos de entrada y salida. En
una MCU de 8- bits, un simple puerto de entrada consiste en ocho pins que pueden ser
leídos por la CPU. Un simple puerto de salida consiste en ocho pins que la CPU puede
controlar (escribir a). En la práctica, una posición de un simple puerto de salida
normalmente se lleva a cabo con ocho básculas y ocho caminos de realimentación, que
permiten a la CPU leer lo que se escribió previamente en la dirección de dicho puerto de
salida.
Los estados internos y los registros de control son simplemente posiciones de memoria. En
lugar de detectar y controlar los pines externos, el estado y los registros de control
detectan los niveles de señal lógicos internos (indicadores).
Mirando la Figura 11 y comparando el bit de una RAM con el puerto de salida. La única
diferencia es que el bit de salida tiene un buffer para conectar el medio flip-flop a un pin
externo. En el caso de un bit de control interno, la salida del buffer se conecta a alguna
señal de control interno en lugar de a un pin externo. Un bit de estado interno está como un
bit de puerto de entrada excepto que la señal que es detectada durante una lectura, es una
señal interna en lugar de un pin externo.
Un pin del puerto se configura como una salida si su correspondiente bit DDR (registro de
dirección de datos) se pone a 1. Un pin se configura como una entrada si su
correspondiente bit DDR se pone a 0. Un ‗reset‘ o ‗power on‘, ponen a 0 todos los bits DDR
y configura todos los pines del puerto como entradas. Los bits DDR son capaces de ser
escritos o leídos por el procesador.
Mapa de memoria
Puesto que hay más de mil posiciones de memoria en un sistema MCU, es importante
saber de alguna manera por donde se ha pasado. Un mapa de memoria es una
representación gráfica del espacio total de la memoria de la MCU. La Figura 14 es un
mapa de memoria típico que muestra los recursos de la memoria del MC68HC705J1A.
Cada rectángulo puede interpretarse como una fila de 2048 casillas (posiciones de
memoria) y cada una de estas contiene ocho bits de datos como lo muestra la Figura 13.
Algunas áreas, como los registros de E/S, necesitan ser mostradas en más detalle porque
es importante saber los nombres de cada posición individual.
En el modo de direccionamiento directo, la CPU asume que los dos dígitos hexadecimales
superiores de la dirección son 0; así, en la instrucción sólo se necesita dar explícitamente
los dos dígitos de la parte baja de la dirección. Los registros internos de E/S y los 64 bytes
de RAM se localizan en el área de memoria $0000–$00FF.
Por ejemplo, los valores de los 2- dígitos hexadecimales $00 aparecen a la derecha del
registro de datos del puerto A, qué realmente se localiza en la dirección $0000 del mapa de
memoria.
Figura 14. Mapa de Memoria Típico
La Memoria como un Periférico
Las memorias pueden tener una forma de periférico. Los usos de los diferentes tipos de
memoria fueron discutidos anteriormente, pero no fue considerada la circuitería lógica que
se requiere para soportar éstas memorias. Las memorias ROM y RAM son circuitos
directos, no requieren ningún soporte lógico que la de selección de dirección, para
distinguir una posición de otra. Esta circuitería lógica de selección está contenida en el
mismo circuito de la propia memoria.
Todo lo que hace la CPU se basa en la secuencia de pasos simple. Por ejemplo, un
oscilador genera un reloj que es usado para hace funcionar la CPU a través de estas
secuencias. El reloj de la CPU es muy rápido, hablando en términos humanos parece que
las cosas están pasando casi instantáneamente. Pasando por estas secuencias paso a
paso, se entenderá el funcionamiento de cómo un microcontrolador ejecuta los programas.
Toda la información (otra cosa que los registros de la CPU) accesible a la CPU está
prevista (por la CPU) estar en una sola fila de mil o más casillas. Esta organización a veces
se la llama sistema de mapa de memoria de E/S porque la CPU trata todas las posiciones
de memoria igual como si ellas contienen instrucciones de programa, variables de datos, o
controles de entrada-salida (E/S). Hay otras arquitecturas de microcontrolador, pero en
este libro no está pensado explicar estas variaciones.
Registros de la CPU
Las diferentes MCU tienen diferentes juegos de registros de la CPU. Las diferencias son
principalmente en el número y el tamaño de los registros. La Figura 15 muestra los
registros de la CPU de la familia MC68HC05. Aunque la CPU tiene un juego de registros
relativamente simples, son representativos de todos los tipos de registros de CPU y
pueden ser usados para explicar todos los conceptos fundamentales. Este capítulo
proporciona una descripción breve de los registros del MC68HC05, como una introducción
a la arquitectura de las CPU en general. En el Juego de Instrucciones del MC68HC05 se
incluye información más detallada sobre los registros del MC68HC05.
El registro (A) es un registro ‗scratch pad‘ de 8-bits, también llamado acumulador porque
a menudo se usa para almacenar uno de los operandos o el resultado de una operación
aritmética.
El registro (X) es un registro de índice de 8-bits, que también puede servir como un simple
‗scratch pad‘. El propósito principal del registro de índice es apuntar a una área de
memoria donde la CPU carga (lee) o guarda (escribe) la información. A veces un registro
de índice se le llama registro puntero. Se aprenderá más sobre los registros de índice
cuando se describa el modo de direccionamiento indexado.
El registro contador de programa (PC) es usado por la CPU para guardar la pista de la
dirección de la siguiente instrucción a ser ejecutada. Cuando se alimenta la CPU o
después de un ‗reset‘, el registro PC se carga desde un par de posiciones específicas de
memoria llamadas vector de reset. Las posiciones del vector de reset contienen la
dirección de la primera instrucción que será ejecutada por la CPU. Así que las
instrucciones se ejecutan, la lógica de la CPU incrementa el registro PC, tal que siempre
apunta al próximo fragmento de información que la CPU necesitará. El mismo número de
bits que adapta el registro PC, será exactamente igual al número de líneas del bus de
direcciones. Esto determina el espacio total de memoria potencialmente disponible que
puede acceder la CPU. En el caso del MC68HC705J1A, el registro PC es de 11 bits; por
consiguiente, su CPU puede acceder a 2 Kbytes (2048 bytes) de memoria. Los valores
para este registro se expresan con cuatro dígitos hexadecimales, donde los cinco bit de la
parte superior de los 16 bits correspondientes a la dirección binaria, siempre estarán a 0.
‗stack’ puede pensarse que es como un montón de tarjetas, cada una de ellas guarda un
solo byte de información.
En cualquier momento dado, la CPU puede poner una tarjeta encima de la pila o puede
tomar una tarjeta de la pila. Las tarjetas dentro de la pila no pueden recogerse a menos
que todas las tarjetas amontonadas encima se hayan quitado primero. La CPU logra este
efecto de la pila por medio del registro SP. El registro SP apunta a una posición de
memoria (casilla), igual que si se piensa en la siguiente tarjeta disponible. Cuando la CPU
envía un fragmento de dato hacia la pila, el valor del dato se escribe en la casilla apuntada
por el registro SP, entonces el SP se decrementa para apuntar a la siguiente posición de
memoria (casilla) anterior. Cuando la CPU extrae un dato de la pila, el registro SP se
incrementa para apuntar a la casilla recientemente usada y el valor del dato se leerá de
esa casilla. Cuando la CPU se pone en marcha o después de una instrucción ‗reset del
indicador de pila‘ (RSP), el SP apunta a una posición de memoria específica de la RAM
(una cierta casilla).
Tiempos