inicio micros 8bits
Post on 14-Oct-2015
253 Views
Preview:
TRANSCRIPT
-
5/24/2018 Inicio Micros 8bits
1/195
Iniciacin a los Microcontroladoresde las familias de 8 bits
Jordi MaynIngeniero de Aplicaciones
Rev. 2
-
5/24/2018 Inicio Micros 8bits
2/195
1
ndice
Qu es un Microcontrolador? ______________________________________________________________ 8
ndice ________________________________________________________________________________ 8
Introduccin___________________________________________________________________________ 8Vista global de un Sistema con Microprocesador_____________________________________________ 8
Entradas de un Sistema con Microprocesador _______________________________________________ 9
Salidas de un Sistema con Microprocesador_________________________________________________ 9
Unidad Central de Proceso (CPU) _________________________________________________________ 9
Reloj (Clock) _________________________________________________________________________ 10
Memoria del Microprocesador___________________________________________________________ 10
Programa de un Microprocesador________________________________________________________ 10
El Microcontrolador ___________________________________________________________________ 11
Resumen _____________________________________________________________________________ 12Partes de cualquier microprocesador______________________________________________________ 12Tipos de Microprocesadores ____________________________________________________________ 12
Nmeros y Cdigos de un microprocesador ___________________________________________________ 13
ndice _______________________________________________________________________________ 13
Introduccin__________________________________________________________________________ 13
Nmeros Binarios y Hexadecimales_______________________________________________________ 13
Cdigos ASCII________________________________________________________________________ 14
Cdigo de trabajo del microprocesador ___________________________________________________ 15
Cdigos Mnemotcnicos de las Instrucciones y Ensambladores ________________________________ 15Nmeros Octales ______________________________________________________________________ 16
BCD (Binario Codificado en Decimal)_____________________________________________________ 17
Resumen _____________________________________________________________________________ 18
Elementos bsicos de la Lgica _____________________________________________________________ 19
ndice _______________________________________________________________________________ 19
Introduccin__________________________________________________________________________ 19
Niveles lgicos ________________________________________________________________________ 19
Transistores CMOS____________________________________________________________________ 19Puertas Simples _______________________________________________________________________ 20
Inversor ____________________________________________________________________________ 20Puerta NAND _______________________________________________________________________ 21Entrada ____________________________________________________________________________ 21Puerta NOR _________________________________________________________________________ 21Entrada ____________________________________________________________________________ 22
Puertas de Transmisin, Buffers y Flip-Flops_______________________________________________ 22Puerta de transmisin _________________________________________________________________ 22Buffer de tres estados _________________________________________________________________ 23Medio Flip Flop (HFF) ________________________________________________________________ 24
Resumen _____________________________________________________________________________ 25
Memoria y Entradas/Salidas Paralelas _______________________________________________________ 26
ndice _______________________________________________________________________________ 26
-
5/24/2018 Inicio Micros 8bits
3/195
2
Introduccin__________________________________________________________________________ 26
Analoga de una Memoria con unas Casillas________________________________________________ 26
Cmo ve la Memoria el Microprocesador__________________________________________________ 27
Kilobytes, Megabytes y Gigabytes ________________________________________________________ 27
Tipos de Memoria _____________________________________________________________________ 27Memorias Voltiles ____________________________________________________________________ 27
RAM: Memoria de Acceso Aleatorio (Random Access Memory) _______________________________ 27
Memorias No-Voltiles _________________________________________________________________ 28ROM: Memoria de slo Lectura (Read-Only Memory) _______________________________________ 28PROM: Memoria Programable de slo lectura (Programmable ROM) ___________________________ 28EPROM: Memoria Elctricamente Programable (borrable por UV)______________________________ 28OTP: Memoria EPROM programable uno sola vez __________________________________________ 28EEPROM: Memoria Programable y Borrable elctricamente___________________________________ 28FLASH: Memoria Programable y Borrable elctricamente ____________________________________ 28
E/S como un tipo de Memoria ___________________________________________________________ 28
Estados internos y Registros de control____________________________________________________ 29Mapa de memoria _____________________________________________________________________ 30
La Memoria como un Perifrico _________________________________________________________ 31
Resumen _____________________________________________________________________________ 32Tipos de Memoria ____________________________________________________________________ 32
Arquitectura del Microcontrolador __________________________________________________________ 33
ndice _______________________________________________________________________________ 33
Introduccin__________________________________________________________________________ 33
Arquitectura del Microcontrolador_______________________________________________________ 33
Registros de la CPU____________________________________________________________________ 34Tiempos _____________________________________________________________________________ 35
Vista de un Programa __________________________________________________________________ 35Listado 1. Programa Ejemplo ___________________________________________________________ 36
Funcionamiento de la CPU______________________________________________________________ 38Funcionamiento Detallado de las Instrucciones en la CPU_____________________________________ 38Guardar en el Acumulador (Modo de Direccionamiento Directo) _______________________________ 38Cargar el Acumulador (Modo de Direccionamiento Inmediato)_________________________________ 39Bifurcacin Condicional _______________________________________________________________ 39Llamada a una subrutina y Retorno de una subrutina _________________________________________ 39Listado 2. Ejemplo de Llamada a Subrutina ________________________________________________ 40
Ver Funcionando un Microcontrolador ___________________________________________________ 41Reset ______________________________________________________________________________ 44Pin de RESET _____________________________________________________________________ 44Power-On Reset______________________________________________________________________ 44Reset por Watchdog Timer_____________________________________________________________ 44Reset por una Direccin ilegal___________________________________________________________ 44
Interrupciones ________________________________________________________________________ 45Direccin del Vector __________________________________________________________________ 45Interrupciones externas ________________________________________________________________ 46
Interrupciones de Perifricos internos_____________________________________________________ 47Interrupcin por Software (SWI)_________________________________________________________ 47
Latencia de Interrupcin _______________________________________________________________ 47Interrupciones anidadas________________________________________________________________ 47
Resumen _____________________________________________________________________________ 48
-
5/24/2018 Inicio Micros 8bits
4/195
3
Juego de Intrucciones del MC68HC05 _______________________________________________________ 49
ndice _______________________________________________________________________________ 49
Introduccin__________________________________________________________________________ 49Unidad Central de Proceso (CPU)________________________________________________________ 49
Unidad Aritmtica/Lgica (ALU) ________________________________________________________ 50
Control de la CPU _____________________________________________________________________ 50
Registros de la CPU____________________________________________________________________ 50
(A) Acumulador_______________________________________________________________________ 50
(X) Registro de ndice __________________________________________________________________ 50
(CCR) Registro de Cdigo Condicin _____________________________________________________ 51
(H) Bit Medio acarreo __________________________________________________________________ 51
(I) Bit Mscara de interrupcin __________________________________________________________ 51(N) Bit negativo______________________________________________________________________ 51(Z) Bit Cero_________________________________________________________________________ 51(C) Bit Carry/Borrow _________________________________________________________________ 52
Contador de Programa _________________________________________________________________ 52
Modos de Direccionamiento _____________________________________________________________ 53
Modo de Direccionamiento Inherente _____________________________________________________ 54
Modo de Direccionamiento Inmediato_____________________________________________________ 55
Modo de Direccionamiento Extendido_____________________________________________________ 55Cdigo mnemotcnico_________________________________________________________________ 56
Modo de Direccionamiento Directo _______________________________________________________ 56Cdigo mnemotcnico_________________________________________________________________ 57
Modos de direccionamiento Indexado _____________________________________________________ 57Modo Indexado sin Ningn Desplazamiento _______________________________________________ 58
Cdigo mnemotcnico_________________________________________________________________ 58
Indexado con 8-bits de Desplazamiento____________________________________________________ 58
Indexado con 16-Bits de Desplazamiento __________________________________________________ 59Cdigo mnemotcnico_________________________________________________________________ 60
Modo de Direccionamiento Relativo ______________________________________________________ 60Instrucciones Prueba de bit (Bit Test) y Bifurcacin (Branch) __________________________________ 61
Organizacin de las instrucciones por Tipo ________________________________________________ 61
Resumen del Juego de Instrucciones ______________________________________________________ 65Smbolos de Cdigo de condicin________________________________________________________ 65Operadores Booleanas_________________________________________________________________ 65Registros de la CPU___________________________________________________________________ 65
Modos de Direccionamiento Abreviacin Operandos _______________________________ 65
Resumen _____________________________________________________________________________ 66
Registros de la CPU____________________________________________________________________ 66
Modos de Direccionamiento _____________________________________________________________ 66
Ejecucin de Instrucciones ______________________________________________________________ 66
Programacin ___________________________________________________________________________ 67
ndice _______________________________________________________________________________ 67Introduccin__________________________________________________________________________ 67
Escribiendo un simple programa _________________________________________________________ 67
-
5/24/2018 Inicio Micros 8bits
5/195
4
Diagrama de flujo _____________________________________________________________________ 68
Cdigo Fuente Mnemnico______________________________________________________________ 69
Programa de Retardo __________________________________________________________________ 70
Listado Ensamblador __________________________________________________________________ 71Listado 3. Listado Ensamblador _________________________________________________________ 71Archivo de Cdigo Objeto______________________________________________________________ 73Directivas del Ensamblador_____________________________________________________________ 74Origen (ORG) _______________________________________________________________________ 74Igual (EQU)_________________________________________________________________________ 74Byte de Forma Constante (FCB) _________________________________________________________ 74Byte de Forma Doble (FDB)____________________________________________________________ 75Byte de Reserva de Memoria (RMB) _____________________________________________________ 75Pone el Nmero Base por defecto a Decimal _______________________________________________ 75
Familiarizacin con el Juego de Instrucciones ______________________________________________ 76
Desarrollo de la Aplicacin______________________________________________________________ 76
Resumen _____________________________________________________________________________ 78
Estructura del Programa Base______________________________________________________________ 79
ndice _______________________________________________________________________________ 79
Introduccin__________________________________________________________________________ 79
EQUATES del Sistema _________________________________________________________________ 79
Registros EQU para el MC68HC705J1A __________________________________________________ 79
Aplicacin de los EQU del Sistema _______________________________________________________ 80
Preparacin de los Vectores _____________________________________________________________ 80
Vector de Reset _______________________________________________________________________ 80
Interrupciones sin usar _________________________________________________________________ 81Variables de la RAM___________________________________________________________________ 82
Bucle Base ___________________________________________________________________________ 82
Bucle Secuenciador ____________________________________________________________________ 83
Bucle del Reloj del Sistema______________________________________________________________ 83
Sus Programas ________________________________________________________________________ 84
Consideraciones de tiempo ______________________________________________________________ 84
Consideraciones de la Pila (Stack) ________________________________________________________ 84
Estructura de una Aplicacin Preparada __________________________________________________ 85Listado 4. Estructura del Programa Base (pg 1 de 5) ________________________________________ 86
Resumen _____________________________________________________________________________ 91
Perifricos Internos ______________________________________________________________________ 92
ndice _______________________________________________________________________________ 92
Introduccin__________________________________________________________________________ 92
Tipos de Perifricos____________________________________________________________________ 92
Temporizadores_______________________________________________________________________ 93
Puertos Serie _________________________________________________________________________ 93
Convertidor Analgico a Digital _________________________________________________________ 93
Convertidor Digital a Analgico _________________________________________________________ 93
EEPROM ____________________________________________________________________________ 94
-
5/24/2018 Inicio Micros 8bits
6/195
5
Control de Perifricos __________________________________________________________________ 94
Temporizador del MC68HC705J1A ______________________________________________________ 94Ejemplo del Temporizador _____________________________________________________________ 96
Usando el Software PWM______________________________________________________________ 100Listado 5. Listado del Programa PWM (pgina 1 de 2) ______________________________________ 101
Ejemplo Prctico de un Control de Motor ________________________________________________ 103Teora ______________________________________________________________________________ 103
Circuito de Control de un motor ________________________________________________________ 104
Software del Control de Motor__________________________________________________________ 106Listado 6. Listado del Programa de Control de Velocidad (pgina 1 de 4)________________________ 108
Resumen ____________________________________________________________________________ 112Otros Tipos de Perifricos_____________________________________________________________ 112
Juego de Instrucciones___________________________________________________________________ 113
ndice ______________________________________________________________________________ 113
Introduccin_________________________________________________________________________ 114Juego de Instrucciones del MC68HC05___________________________________________________ 115
ADC Suma con Acarreo ADC ____________________________________________________ 116
ADD Suma sin Acarreo ADD___________________________________________________ 117
AND AND Lgico AND_______________________________________________________ 118
ASL Desplazamiento Aritmtico a la Izquierda ASL____________________________________ 119
ASR Desplazamiento Aritmtico a la Derecha ASR __________________________________ 120
BCC Bifurcacin si se pone a 0 el Acarreo BCC _______________________________________ 121
BCLR n Pone a 0 un Bit en la Memoria BCLR n ______________________________________ 122
BCS Bifurcacin si el Acarreo es 1 BCS________________________________________ 123
BEQ Bifurcacin si es Igual BEQ_______________________________________________ 124
BHCC Bifurcacin si Medio Acarreo es 0 BHCC______________________________________ 125
BHCS Bifurcacin si Medio Acarreo es 1 BHCS ____________________________________ 126
BHI Bifurcacin si ms es Mayor BHI________________________________________________ 127
BHS Bifurcacin si es Mayor o Igual BHS_______________________________________ 128
BIH Bifurcacin si el Pin de Interrupcin est en nivel Alto BIH _______________________________ 129
BIL Bifurcacin si el Pin de Interrupcin est en nivel Bajo BIL________________________________ 130
BIT Bit de Prueba de la Memoria con el Acumulador BIT __________________________________ 131BLO Bifurcacin si es ms Menor BLO ___________________________________________ 132
BLS Bifurcacin si es Menor o Igual BLS ____________________________________________ 133
BMC Bifurcacin si la Mscara de Interrupcin es 0 BMC___________________________________ 134
BMI Bifurcacin si es Menor BMI ____________________________________________ 135
BMS Bifurcacin si la Mscara de Interrupcin es 1 BMS ________________________________ 136
BNE Bifurcacin si no es Igual BNE ___________________________________________ 137
BPL Bifurcacin si es Positivo BPL_______________________________________________ 138
BRA Bifurcacin Incondicional BRA _________________________________________ 139BRCLR n Bifurcacin si el Bit n es Cero BRCLR n ____________________________________ 140
BRN Nunca Bifurcacin BRN ____________________________________________________ 141
-
5/24/2018 Inicio Micros 8bits
7/195
6
BRSET n Bifurcacin si el Bit n es 1 BRSET_______________________________________ 142
BSET n Pone a 1 el Bit en la Memoria BSET n ________________________________________ 143
BSR Bifurcacin a Subrutina BSR ________________________________________________ 144
CLC Pone a Cero el Bit de Acarreo CLC _______________________________________ 145
CLI Pone a Cero el Bit de Mscara de Interrupcin CLI_________________________________ 146CLR Pone a Cero CLR ________________________________________________________ 147
CMP Compara el Acumulador con la Memoria CMP _____________________________________ 148
COM Complemento COM ______________________________________________________ 149
CPX Compara el Registro de ndice con la Memoria CPX ________________________________ 150
DEC Decremento DEC ______________________________________________________ 151
EOR OR-Exclusiva de la Memoria con el Acumulador EOR________________________________ 152
INC Incrementa INC_______________________________________________________________ 153
JMP Salto JMP________________________________________________________________ 154
JSR Salto a Subrutina JSR ________________________________________________________ 155
LDA Carga el Acumulador desde la Memoria LDA ____________________________________ 156
LDX Carga el Registro de ndice desde la Memoria LDX __________________________________ 157
LSL Desplazamiento Lgico a la Izquierda LSL ________________________________________ 158
LSR Desplazamiento Lgico a la Derecha LSR______________________________________ 159
MUL Multiplicacin Sin Signo MUL ______________________________________________ 160
NEG Negado NEG __________________________________________________________ 161
NOP No Operacin NOP________________________________________________________ 162
ORA OR-Inclusiva ORA________________________________________________________ 163ROL Rotacin a la Izquierda por Acarreo ROL ________________________________________ 164
ROR Rotacin a la Derecha por Acarreo ROR _______________________________________ 165
RSP Reset del Puntero de Pila RSP ______________________________________________ 166
RTI Retorno de la Interrupcin RTI __________________________________________________ 167
RTS Retorno de Subrutina RTS ___________________________________________________ 168
SBC Subtraccin con Acarreo SBC _____________________________________________ 169
SEC Pone a 1 el bit de Acarreo SEC _____________________________________________ 170
SEI Pone a 1 el Bit de Mscara de Interrupcin SEI ___________________________________ 171
STA Guarda el Acumulador en la Memoria STA _________________________________ 172
STOP Habilita la IRQy Para el Oscilador STOP_________________________________ 173
STX Guarda el Registro de ndice X en la Memoria STX_________________________________ 174
SUB Substraccin SUB_____________________________________________________ 175
SWI Interrupcin por Software SWI___________________________________________ 176
TAX Transfiere el Acumulador al Registro de ndice TAX________________________________ 177
TST Prueba para Negativo o Cero TST ___________________________________________ 178
TXA Transfiere el Registro de ndice al Acumulador TXA _________________________________ 179
WAIT Habilita la Interrupcin, Para el Procesador WAIT________________________________ 180
Tablas de Referencia ____________________________________________________________________ 181
-
5/24/2018 Inicio Micros 8bits
8/195
7
ndice ______________________________________________________________________________ 181
Conversin de Hexadecimal a ASCII ____________________________________________________ 181
Conversin de Hexadecimal a Decimal ___________________________________________________ 182
Conversin de Decimal a Hexadecimal ___________________________________________________ 182
Valores Hexadecimales vs. Instrucciones MC68HC05_______________________________________ 183Glosario ____________________________________________________________________________ 185
-
5/24/2018 Inicio Micros 8bits
9/195
8
Qu es un Microcontrolador?
ndiceIntroduccinVista global de un Sistema con microprocesador
Entradas de un Sistema con microprocesadorSalidas de un Sistema con microprocesadorUnidad Central de Proceso (CPU)RelojMemoria del microprocesadorPrograma del microprocesadorEl MicrocontroladorResumen
Partes de Cualquier MicroprocesadorTipos de Microprocesadores
Introduccin
Este captulo pone el fundamento para una exploracin detallada del funcionamiento interno de unpequeo microcontrolador. Se podr ver que el microcontrolador es una de las formas ms bsicas de un sistemacon microprocesador. Aunque son mucho ms pequeos que los microprocesadores personales y los grandesordenadores, se construyen microcontroladores con los mismos elementos bsicos. En el sentido ms simple, losmicroprocesadores producen un modelo especfico basado en unas entradas y unas salidas, con las instruccionesen un programa con microprocesador.
Como la mayora de microprocesadores, los microcontroladores son simplemente ejecutores deinstrucciones de propsito general. La estrella real de un sistema con microprocesador, es un programa deinstrucciones que son proporcionadas por un programador. Este programa le dice al microprocesador que realicelargas secuencias de acciones muy simples para lograr tareas tiles como las pensadas por el programador.
Vista global de un Sistema con MicroprocesadorLa Figura 1proporciona una vista global de un sistema con microprocesador. Simplemente cambiando
los tipos de dispositivos de entrada y de salida, ste diagrama de bloques podra ser el de un microprocesadorpersonal, un ordenador o un simple un microcontrolador (MCU). Los dispositivos de entrada y de salida(E/S) mostrados en la figura son lo tpicos encontrados en un sistema con microprocesador.
Figura 1. Sistema tpico con Microprocesador
-
5/24/2018 Inicio Micros 8bits
10/195
9
Entradas de un Sistema con MicroprocesadorLos dispositivos de entrada proporcionan informacin del mundo exterior al sistema con
microprocesador. En un ordenador personal, el dispositivo de entrada ms comn es el teclado, igual que unamquina de escribir. Los sistemas con microprocesadores normalmente usan dispositivos de entrada mucho mssimples como interruptores o pequeos teclados, aunque los dispositivos de entrada ms exticos se encuentranen los sistemas basados en microprocesador. Un ejemplo de un dispositivo de entrada extico para unmicroprocesador es el sensor de oxgeno en un automvil que mide la eficacia de la combustin tomandomuestras en el tubo de escape.
La mayora de entradas del microprocesador pueden procesar slo seales de entrada digital,al mismonivel de voltaje que el de la fuente de alimentacin. El nivel 0 V o tierra se le llama VSSy el nivel positivo de lafuente de alimentacin se le llama VDD y es tpicamente de 5 Vdc. Un nivel aproximado de 0 voltios indica unaseal lgica 0y un voltaje aproximadamente igual al nivel positivo de la fuente de alimentacin indica unaseal lgica 1.
Por supuesto, el mundo real est lleno de seales analgicas o seales que son de otros niveles de
voltaje. Algunos dispositivos de entrada traducen los voltajes de seal de algn otro nivel a los niveles VDDyVSS, necesarios para el microprocesador. Otros dispositivos de entrada convierten las seales analgicas enseales digitales (a valores binarios 1 y 0) para que el microprocesador los pueda entender y manipular.Algunos microprocesadores incluyen circuitos convertidores analgicos/digitales en el mismo circuito integrado.
Los transductoresse pueden usar para traducir otras seales del mundo real a niveles de seal lgicaque un microprocesador puede entender y manipular. Algunos ejemplos que incluyen transductores, como lossensores de temperatura, sensores de presin, detectores de nivel de luz y otros. Con estos transductores, casicualquier propiedad fsica se puede usar como entrada a un sistema con microprocesador.
Salidas de un Sistema con Microprocesador
Se usan dispositivos de salida para comunicar la informacin o acciones del sistema conmicroprocesador al mundo exterior. En un ordenador personal, el dispositivo de salida ms comn es la pantallaCRT(tubo de rayos catdicos). Los sistemas con microprocesador usan a menudo dispositivos de salida muchoms simples como los LEDs, lmparas, o zumbadores. Circuitos convertidores (a veces construidos en el mismocircuito integrado microprocesador) pueden convertir seales digitales a niveles de voltaje analgicos.
Del controlador en microcontrolador viene del hecho de que estos pequeos sistemas conmicroprocesador normalmente controlan algo en comparacin con un ordenador personal que normalmente
procesa informacin. En el caso del ordenador personal, la mayora de las salidas es de informacin (cualquierinformacin en una pantalla CRT o en el papel de la impresora). Por otro lado, en un sistema conmicroprocesador, la mayora de las salidas son seales de nivel lgico digital, que se usan para manejar LEDs odispositivos elctricos como rels o motores.
Unidad Central de Proceso (CPU)La CPU (Central Processor Unit) es el centro de cada sistema microprocesador. El trabajo de la CPU es
ejecutar obedientemente las instrucciones de un programa que le fue proporcionado por un programador. Unprogramacon microprocesador le dice a la CPU que lea (read) la informacin de las entradas y que la escriba(write) a la memoria de trabajo o que lea la informacin de la memoria de trabajo y la escriba a las salidas.Algunas instrucciones del programa involucran decisiones simples que causan al programa continuar con lasiguiente instruccin o saltar a un nuevo lugar del programa. En un captulo posterior, se vern de cerca el juegode instrucciones disponibles para un microcontrolador en particular.
En un ordenador personal, hay varios niveles de programas, empezando con el programa interno, que esel control ms bsico del funcionamiento del microprocesador. Otro nivel incluye programas de usuario que secargan en la memoria del sistema cuando estn a punto de ser usados. Esta estructura es muy compleja y no seraun buen ejemplo para mostrar a un principiante cmo trabaja el microprocesador.
-
5/24/2018 Inicio Micros 8bits
11/195
10
En un microcontrolador normalmente, solamente un programa en particular est trabajando para elcontrol de una aplicacin. Por ejemplo, la CPU MC68HC05 slo reconoce 60 instrucciones diferentes, perostas son representativas del juego de instrucciones de cualquier sistema con microprocesador. Este tipo desistema con microprocesador es un buen modelo para aprender el fundamento de funcionamiento de unmicroprocesador, porque es posible saber lo que est pasando exactamente en cada paso de la ejecucin de un
programa en la CPU.
Reloj (Clock)Salvo excepciones, los microprocesadores usan un pequeo osciladordel reloj (clock) para activar la
CPU, para mover de un paso a la secuencia siguiente. En el captulo de arquitectura de un microprocesador, sepuede ver que incluso las instrucciones simples de un microcontrolador estn compuestas de una serie de pasosan ms bsicos. Cada uno de estos pasos diminutos en el funcionamiento del microprocesador toma un ciclo delreloj de la CPU.
Memoria del MicroprocesadorSe usan varios tipos de memoria para los diferentes propsitos en un sistema con microprocesador. Los
tipos principales de memoria encontrados en un microcontrolador son:
Memorias para almacenar el Programa: ROM (Read Only Memory): memoria slo de lectura, este tipo de memoria se programa en fabrica y se
llama Mscara. EPROM (Erasable Programmable Read Only Memory): memoria slo de lectura, programable
elctricamente y se borra por luz ultravioleta a travs de una ventana en la parte superior del dispositivo. OTP(One Time Programmable): memoria slo de lectura, programable elctricamente una sola vez. FLASH:memoria programable y borrable elctricamente, por bloques.
Estos tipos se usan principalmente para almacenar los programas y los datos permanentes que deben permanecerinalterados incluso cuando no hay ninguna alimentacin aplicada al microcontrolador.
Memoria para almacenar Datos: RAM(Random Access read/write Memory): memoria de acceso a lectura o escritura aleatorio, se usa para
el almacenamiento temporal de datos y el clculo intermedio de los resultados durante las operaciones. Estetipo de memoria pierde los datos cuando se queda sin alimentacin.
EEPROM (Electrically Erasable Programmable Read Only Memory): memoria slo de lectura,programable y borrable elctricamente.
La unidad ms pequea de una memoria, es de un solo bit,que puede guardar uno valor lgico 0 o 1.Estos bits se agrupan en conjuntos de ocho bits para hacer uno byte. Los microprocesadores ms grandes utilizangrupos de 16 o 32 bits, llamados palabras o word. El tamao de una palabra (word) puede ser diferente paracada 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 dememoria RAM en un ordenador personal, con discos duros con varios gigabytes o discos compactos muysimilares a los usados para las grabaciones de msica con una capacidad de 640 millones de bytes de memoria deslo lectura. En comparacin, los sistemas con microcontrolador tpico tienen una memoria total entre 1,000 y64,000 bytes.
Programa de un MicroprocesadorLa Figura 1muestra el programa como una nube, porque se origina en la imaginacin del ingeniero o
programador del microprocesador. Esto es comparable a un ingeniero elctrico que piensa en un nuevo circuito oun ingeniero mecnico que deduce un nuevo ensamblaje. Los componentes de un programa son las instruccionesdel juego de instrucciones de la CPU. As como el diseador del circuito puede construir un circuito sumador
con simple puertas AND, OR y NOT, un programador puede escribir un programa para sumar nmeros consimples instrucciones.
-
5/24/2018 Inicio Micros 8bits
12/195
11
Los programas se guardan en la memoria de un microprocesador donde pueden ser ejecutados de modosecuencial por la CPU. En el captulo de programacin, se aprender a escribir programas y prepararlos para sercargados en la memoria de un microprocesador.
El MicrocontroladorHasta 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 2 se muestra un sistema conmicroprocesador genrico, con una parte adjunta de contorno punteado. Esta parte, es un microcontrolador y lamitad inferior de la figura es un diagrama de bloques que muestra su estructura interior con ms detalle. Elcristal no se contiene dentro del microcontrolador, pero es una parte necesaria del circuito oscilador. En algunoscasos, se puede substituir el cristal por un resonador cermico que es ms econmico o un an menos caro conun conjunto RC (resistencia-condensador).
Un microcontrolador puede definirse como un sistema microprocesador completo, que incluye laCPU, la memoria, un oscilador del reloj, las E/S y otros perifricos en un solo circuito integrado. Cuandoalgunos de estos elementos como las E/S o la memoria no estn incluidos, al circuito integrado se le llamamicroprocesador. La CPU de un ordenador personal es un microprocesador.
Figura 2. Vista extendida de un Microcontrolador
-
5/24/2018 Inicio Micros 8bits
13/195
12
ResumenUn microcontrolador es un sistema microprocesador completo, incluyendo la CPU, la memoria, el
oscilador del reloj y las E/S en un solo circuito integrado.
Partes de cualquier microprocesador Una unidad central de proceso o CPU Un Relojde secuencia de la CPU Memoriaspara las instrucciones y los datos Entradaspara poner la informacin al sistema Salidaspara sacar la informacin del sistema Programapara hacer algo til con el microprocesador
Tipos de MicroprocesadoresAunque todos los microprocesadores comparten los mismos elementos bsicos e ideas, hay diferentes tipos
de microprocesadores para diferentes propsitos. Para los grandes ordenadores se usan microprocesadores muy grandes, que se usan para procesar grandes
informaciones. Para los ordenadores personales se usan microprocesadores cada vez ms grandes, para hacer desde las
tareas ms pequeas como el procesador de texto, hasta el diseo asistido. Para el control de muchos aparatos se usan los microcontroladores de un slo circuito, que pueden ser desde
muy pequeos en prestaciones (por ejemplo, el ratn de un ordenador personal) hasta controles industrialesbastante complejos, debido a la alta integracin de los mismos.
-
5/24/2018 Inicio Micros 8bits
14/195
13
Nmeros y Cdigos de un microprocesador
ndiceIntroduccin
Nmeros Binarios y HexadecimalesCdigos ASCIICdigos de trabajo del microprocesadorCdigos Mnemotcnicos de las instrucciones y Ensambladores
Nmeros OctalesBinario Codificado en DecimalResumen
IntroduccinEste captulo discute los nmeros binarios, hexadecimales, octales y BCD que normalmente son usados
por los microprocesadores.
Los microprocesadores trabajan mejor con la informacin en una forma diferente que lo usan laspersonas, para resolver problemas. Los humanos tpicamente trabajamos con el sistema de numeracin en base10 (decimal), probablemente porque tenemos 10 dedos. Los microprocesadores trabajan con el sistema denumeracin en base 2 (binario), porque esto permite representar toda la informacin por dos dgitos, que slo
pueden ser 0 o 1. A su vez, un 1o un 0puede ser representado por la presencia o la ausencia de voltaje lgicoen una lnea de seal o en los estados cerrado (on) o abierto (off) de un simple interruptor.
Los microprocesadores tambin usan cdigos especiales para representar la informacin alfabtica y lasinstrucciones del microprocesador. Entendiendo estos cdigos ayudar a entender cmo los ordenadores puedenhacer tantas cosas, con las cadenas de dgitos que slo pueden ser 1 o 0.
Nmeros Binarios y HexadecimalesLos nmeros decimales (base 10), el peso de cada dgito es 10 veces ms grande que el dgitoinmediato, el de su derecha. El dgito de ms a la derecha de un nmero entero decimal es el de la unidad, eldgito de la izquierda es el dgito de las decenas, y as sucesivamente.
Los nmeros binarios(base 2), el peso de cada dgito es 2 veces ms grande que el dgito inmediato desu derecha. El dgito de ms a la derecha de un nmero entero binario es el de la unidad, el siguiente dgito a laizquierda es el dgito cuatro, el siguiente dgito es el ocho y as sucesivamente.
Aunque los microprocesadores funcionan bastante cmodos con los nmeros binarios de 8, 16, oincluso 32 dgitos binarios, los humanos lo encuentran inoportuno trabajar con tantos dgitos en cada momento.El sistema de numeracin en base 16(hexadecimal) ofrece un compromiso prctico. Un dgito hexadecimal se
puede representar exactamente con cuatro dgitos binarios, as que un nmero binario de 8 bits puede ser
expresado por dos dgitos en hexadecimal.
La correspondencia entre un dgito hexadecimal y los cuatro dgitos binarios que representan, sonbastante simples para los humanos. Los que trabajan con microprocesadores aprenden a traducir mentalmenteentre los dos sistemas muy fcilmente. Los nmeros en hexadecimal (base 16), el peso de cada dgito es 16 vecesms grande que el dgito inmediato de su derecha. El dgito de ms a la derecha de un nmero enterohexadecimal es el de la unidad, el siguiente dgito a la izquierda es el dgito 16, y as sucesivamente.
La Tabla 1muestra la relacin entre los valores representados en decimal, binario y hexadecimal. Estostres diferentes sistemas de numeracin son simplemente maneras diferentes de representar las mismas cantidadesfsicas. Las letras desde la A hasta la F se usan para representar los valores hexadecimales correspondientes del10 hasta el 15, porque cada uno de los dgitos hexadecimales puede representar 16 cantidades diferentes;considerando que, los nmeros de normalmente utilizados slo incluyen 10 nicos smbolos (del 0 al 9), se
tuvieron que utilizar otros smbolos de un solo dgito para representar los valores hexadecimales, del 10 hasta 15,con las letras (A - F).
-
5/24/2018 Inicio Micros 8bits
15/195
14
Decimal(base 10)
Binario(base 2)
Hexadecimal(base 16)
0123
0000000100100011
0123
4567
0100010101100111
4567
89
1011
1000100110101011
89AB
12131415
1100110111101111
CDEF
1617
..
0001 00000001 0001
..
1011
..100101
..255
0110 01000110 0101
..1111 1111
6465
..FF
10241025
..65.535
0100 0000 00000100 0000 0001
..1111 1111 1111 1111
400401
..FFFF
Tabla 1. Equivalencias entre Decimal, Binario y Hexadecimal
Para evitar cualquier confusin sobre si un nmero es hexadecimal o decimal, se pone el smbolo $antes del nmero hexadecimal. Por ejemplo, 64 en decimal significa sesenta y cuatro y $64 en hexadecimalsignifica seis-cuatro, qu es equivalente a 100 en decimal. Algunos fabricantes de microprocesadores siguen alos valores hexadecimales con una H (tal como 64H).
El sistema de numeracin Hexadecimal es una buena manera para expresar y discutir el proceso de lainformacin numrica para los microprocesadores, porque mentalmente es fcil para las personas convertir entrelos dgitos hexadecimales y los 4-bits binarios equivalentes. La anotacin hexadecimal es mucho ms compactaque en binario.
Cdigos ASCIILos microprocesadores deben manejar muchos tipos de informacin diferente de los nmeros. El texto
(los caracteres alfanumricos) y las instrucciones se deben poner en un cdigo, de semejante manera, para que elmicroprocesador pueda entender esta informacin. El cdigo ms comn para la informacin de tipo texto, es elcdigo estndar para el intercambio de informacin americano (o ASCII).
El cdigo ASCII establece una correlacin ampliamente aceptada entre los caracteres alfanumricos ylos valores binarios especficos. Usando el cdigo ASCII $41, corresponde a la letra mayscula A, $20corresponde a un carcter de espacio, etc. El cdigo ASCII traduce caracteres a cdigos binarios de 7-bits, peroen la prctica la informacin de los caracteres se lleva normalmente con 8-bits, poniendo el bits ms significativoigual a 0 (el de ms a la izquierda).
Este cdigo ASCII permite, que equipos fabricados por varios fabricantes, puedan comunicarse porquetodos usan este mismo cdigo. La Tabla 2muestra la relacin entre los caracteres ASCII y el valor hexadecimal.
-
5/24/2018 Inicio Micros 8bits
16/195
15
Hex ASCII Hex ASCII Hex ASCII Hex ASCII Hex ASCII Hex ASCII$00 NUL $16 SYN $2C , (coma) $42 B $58 X $6E N$01 SOH $17 ETB $2D - (dash) $43 C $59 Y $6F o$02 STX $18 CAN $2E . (period) $44 D $5A Z $70 p$03 ETX $19 EM $2F / $45 E $5B [ $71 q$04 EOT $1A SUB $30 0 $46 F $5C \ $72 r
$05 ENQ $1B ESC(escape)
$31 1 $47 G $5D ] $73 s
$06 ACK $1C FS $32 2 $48 H $5E ^ $74 t$07 BEL
(beep)$1D GS $33 3 $49 I $5F _
(under)$75 u
$08 BS(back sp)
$1E RS $34 4 $4A J $60 ` $76 v
$09 HT (tab) $1F US $35 5 $4B K $61 a $77 w$0A LF
(linefeed)$20 SP
(space)$36 6 $4C L $62 b $78 x
$0B VT $21 ! $37 7 $4D M $63 c $79 y$0C FF $22 $38 8 $4E N $64 d $7A z
$0D CR(return) $23 # $39 9 $4F O $65 e $7B {
$0E SO $24 $ $3 : $50 P $66 f $7C $0F SI $25 % $3B ; $51 Q $67 g $7D }$10 DEL $26 & $3C < $52 R $68 h $7E $11 DC1 $27 (apost.) $3D = $53 S $69 i $7F DEL
(delete)$12 DC2 $28 ( $3E > $54 T $6A j$13 DC3 $29 ) $3F ? $55 U $6B k$14 DC4 $2A * $40 @ $56 V $6C l$15 NAK $2B + $41 A $57 W $6D m
Tabla 2. Conversin de Hexadecimal a ASCII
Cdigo de trabajo del microprocesadorLos microprocesadores utilizan otro cdigo para dar las instrucciones a la CPU, llamado cdigo de
trabajo o opcode. Cada opcode instruye a la CPU para ejecutar una sucesin muy especfica de pasos, quejuntos logran un funcionamiento pretendido. Los microprocesadores de diferentes fabricantes usan diferentesjuegos de opcodes porque estos opcodes son internamente alambrados en la lgica de la CPU. El juego deinstruccionespara una CPU especfica, es el conjunto de todos los funcionamientos que la CPU sabe realizar.Los opcodes son una representacin del conjunto de instrucciones y los cdigo mnemotcnicos son otros.Aunque los opcodes difieren de un microprocesador a otro, todos los microprocesadores realizan los mismostipos de tareas bsicas de maneras similares. Por ejemplo, la CPU MC68HC05 puede entender 62 instrucciones
bsicas. Algunas de estas instrucciones bsicas tienen algunas ligeras variaciones, cada una requiere un opcodepor separado. El juego de instrucciones del MC68HC05 est representado a travs de 210 nicas instruccionesopcodes. En otro captulo se muestra cmo la CPU ejecuta realmente las instrucciones, pero primero senecesitan entender unos conceptos ms bsicos.
Cdigos Mnemotcnicos de las Instrucciones y EnsambladoresUn opcode como $4C es entendido por la CPU, pero no significa mucho a un humano. Para resolver
este problema, se usa un sistema de cdigo mnemotcnico equivalente a la instruccin. El opcode $4Ccorresponde al cdigo mnemotcnico INCA que significa incrementar el acumulador. Aunque en este libro semuestra la informacin que correlaciona las instrucciones mnemotcnicas y los opcodes que ellos representan,esta informacin raramente la usa un programador, porque el proceso de traduccin se maneja automticamente
por un programa para el microprocesador llamado ensamblador(assembler). Un ensamblador es un programa
que convierte un programa escrito en cdigo mnemotcnico, en una lista de cdigo mquina(opcodes y otrainformacin) que puede ser usado por una CPU.
-
5/24/2018 Inicio Micros 8bits
17/195
16
Un ingeniero primero desarrolla un conjunto de instrucciones para el microprocesador en forma decdigo mnemotcnico, despus usa un ensamblador para traducir estas instrucciones en opcodes para que laCPU lo pueda entender. En otros captulos se vern las instrucciones, como escribir un programa y el programaensamblador. Sin embargo, ahora solo hay que entender que las personas preparan instrucciones para unamicroprocesador en una forma de cdigo mnemotcnico, pero que el microprocesador entiende slo opcodes;as que, se requiere un paso, la traduccin de cambiar los mnemnicos a opcodes, que es la funcin del
ensamblador.
Nmeros OctalesAntes de dejar los sistemas de nmeros y cdigos, se ven los dos cdigos adicionales de los que se
puede haber odo hablar. El sistema Octal (base 8) se us para algn trabajo del microprocesador, peroraramente se usa hoy en da. La anotacin Octal usa los nmeros del 0 al 7, representados en tres dgitos
binarios, lo mismo que en hexadecimal se representan en cuatro dgitos binarios. El sistema octal tiene la ventajade usar los mismos smbolos de los nmeros decimales, a diferencia de los smbolos hexadecimales, que aadende la A a la F.
Los dos motivos que causaron el abandono del sistema octal en favor del hexadecimal fueron: Enprimer lugar, la mayora de microprocesadores usan palabras de 4, 8, 16, o 32 bits; estas palabras no se puedenagrupar en grupos de tres bits. Algunos de los primeros microprocesadores usaron palabras de 12-bits agrupadosen tres bits cada uno. En segundo lugar el sistema octal no es tan compacto como el hexadecimal; por ejemplo, elvalor en ASCII para la letra mayscula 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 ms fcil decir cuatro y uno quedecir uno cero uno.
La Tabla 3muestra la equivalencia entre el sistema octal y el binario. La columna binario directomuestra la equivalencia dgito por dgito, con los dgitos de la columna octal en grupos de tres bits binarios. El
bit de ms a la izquierda (el noveno) se muestra escrito en negrita. Este bit se desecha para hacer los deseados 8-bits. La columna binario 8-bits tiene la misma informacin binaria que la columna binario directo,exceptuando que los bits se reagrupan en cuatro bits. Cada grupo de cuatro bits equivale a un dgito hexadecimal.
Octal Binario directo Binario 8 bits Hexadecimal000
001002003004005006007
000 000 000
000 000 001000 000 010000 000 011000 000 100000 000 101000 000 110000 000 111
0000 0000
0000 00010000 00100000 00110000 01000000 01010000 01100000 0111
$00
$01$02$03$04$05$06$07
010011012013014
015016017
000 001 000000 001 001000 001 010000 001 011000 001 100
000 001 101000 001 110000 001 111
0000 10000000 10010000 10100000 10110000 1100
0000 11010000 11100000 1111
$08$09$0A$0B$0C
$0D$0E$0F
101 001 000 001 0100 0001 $41125 001 010 101 0101 0101 $55252 010 101 010 1010 1010 $AA377 011 111 111 1111 1111 $FF
Tabla 3. Equivalencias entre Octal, Binario, y Hexadecimal
Al traducir mentalmente los valores de octal a binario, el valor octal se representa con tres dgitos. Concada dgito octal representado con grupos de tres bits binarios, hay un bit de ms, (3 dgitos x 3 bits = 9 bits).
Entonces es fcil olvidarse de quitar el bit de ms y terminar con un bit extra (el bit noveno). Al traducir dehexadecimal a binario, es ms fcil porque cada dgito hexadecimal equivale exactamente a cuatro bits binarios.Dos dgitos hexadecimales exactamente iguales de ocho bits binarios en un byte.
-
5/24/2018 Inicio Micros 8bits
18/195
17
BCD (Binario Codificado en Decimal)Binario codificado en decimal (BCD) es una anotacin hbrida usada para expresar valores decimales
en forma binaria, Tabla 4. BCD usa cuatro bits binarios para representar cada dgito decimal. Cuatro dgitosbinarios pueden expresar 16 diferentes cantidades fsicas, pero en este caso habr seis combinaciones con valorde bit que son considerados invlidos (especficamente, los valores hexadecimales valor A hasta la F). Losvalores BCD se muestran tambin con el signo $ porque realmente son nmeros hexadecimales que representan
cantidades decimales.
Cuando el microprocesador hace que una operacin sume en BCD, realiza una suma binaria y entoncesajusta el resultado en la forma BCD. Por ejemplo, la suma BCD siguiente:
910+ 110= 1010
El microprocesador suma
0000 10012+ 0000 00012= 0000 10102
Pero 10102 es equivalente a A16que no es un valor BCD vlido. Cuando el microprocesador termina el clculo,
se realiza un chequeo para ver si el resultado todava es un valor BCD vlido. Si hubiera cualquier acarreo de undgito BCD a otro o si hubiera cualquier cdigo invlido, se realizara una sucesin de pasos para corregir elresultado a la forma BCD apropiada. El binario 0000 10102 se corrige a 0001 00002 (10 en BCD) en esteejemplo.
Decimal BCD Binario Hexadecimal0123456
789
$0$1$2$3$4$5$6
$7$8$9
0000000100100011010001010110
011110001001
$0$1$2$3$4$5$6
$7$8$9
CombinacionesBCD
invlidas
10101011110011101111
$A$B$C$E$F
10 $10 0001 0000 $1099 $99 1001 1001 $99
Tabla 4. Equivalencia entre Decimal, BCD, Binario y hexadecimal
En la mayora de casos, no es ineficaz el uso de la anotacin BCD en clculos con microprocesador. Esmejor cambiar de decimal a binario como informacin entera, el microprocesador hace todos los clculos en
binario y cambia el resultado binario a BCD o a decimal, como se necesite para mostrarlo. Esto es cierto porque:Primero, no todos los microcontroladores son capaces de hacer clculos en BCD, porque necesitan un indicadorde acarreo dgito a dgito que no est presente en todos los microprocesadores (aunque las MCU de Motorolatienen este indicador). Segundo, obliga al microprocesador emular la conducta humana que es menos eficaz que
permitir al microprocesador trabajar en su sistema binario nativo.
-
5/24/2018 Inicio Micros 8bits
19/195
18
ResumenLos microprocesadores tienen dos niveles lgicos (0 y 1) para trabajar con el sistema de numeracin
binario. Probablemente porque las humanos tienen 10 dedos, se trabaja con el sistema decimal (base 10).
Los nmeros hexadecimales usan 16 smbolos del 0 al 9 y de la A a la F. Cada dgito hexadecimalrepresenta un grupo de cuatro dgitos binarios. El smbolo $ primero se usa como un valor hexadecimal y elsmbolo H tambin como valor hexadecimal para distinguirlo de los nmeros decimales.
ASCII es un cdigo ampliamente aceptado que permite representar la informacin alfanumrica envalores binarios.
Cada instruccin o variacin de una instruccin tiene un nico opcode (valor binario) que la CPUreconoce como una peticin para realizar una instruccin especfica. Las CPUs de diferentes fabricantes tienen
juegos diferentes de opcodes.
Los programadores especifican las instrucciones con un cdigo mnemotcnico, como INCA. Unprograma llamado ensamblador, traduce el cdigo de instrucciones mnemotcnicas en opcodes para que laCPU las pueda entender.
-
5/24/2018 Inicio Micros 8bits
20/195
19
Elementos bsicos de los circuitos Lgicos
ndice
IntroduccinNiveles lgicosTransistores CMOSPuertas simples
InversorNANDNOR
Puertas de Transmisin, Buffers y Flip FlopsPuertas de TransmisinBuffer de tres estadosHalf Flip Flop (HFF)
Resumen
IntroduccinLos microprocesadores se componen de elementos digitales lgicos relativamente simples llamados
Puertas, que son pequeos circuitos que pueden conectarse de varias maneras para manejar seales de niveleslgicos. Aunque esto libro no piensa proporcionar informacin detallada sobre el diseo con lgica, un poco deconocimiento de los elementos lgicos ms bsicos ayudarn a entender el funcionamiento interno de losmicrocontroladores.
En este captulo se empieza con una vista sobre los requisitos de los niveles lgicos de voltaje. Tambinse muestran los transistores y las interconexiones de un microcontrolador CMOS tpico. Se explica un simpleinversor, una puerta NAND y NOR. Finalmente, se describe una transmisin en una puerta, un buffer de tresestados y un Flip Flop. Virtualmente cualquier parte de un microcontrolador se puede explicar con estos pocoselementos de lgica simple.
Niveles lgicosAnteriormente, en la discusin de lo que es un microcontrolador, se explic que un nivel aproximado de
0 voltios indica que es una seal lgica 0 y que un voltaje positivo aproximadamente igual a la fuente dealimentacin indica que es una seal lgica 1. Para ser ms preciso, hay un nivel de voltaje por debajo del cual elfabricante del microcontrolador garantiza que una seal se reconocer como vlido, lgica 0. Igualmente, hay unnivel de voltaje por encima del cual el fabricante del microcontrolador garantiza que una seal se reconocercomo vlido, lgica 1. Al disear un sistema con microcontrolador, se asegurar que todas las seales estnconforme a estos lmites especificados, incluso bajo las peores condiciones.
La mayora de microcontroladores modernos usan una tecnologa llamada CMOS (Semiconductor delMetal-xido Complementario). Esto significa que los circuitos incluyen los dos tipos de transistores el N y el P.Los transistores se explicarn en mayor detalle despus de este captulo.
En un circuito tpico CMOS, una entrada lgica 0 puede especificarse entre 0.0 voltios y 0.3 veces VDD.Si VDDes 5.0 voltios, esto traslada el rango de 0.0 a 1.5 voltios. Una entrada lgica 1 puede especificarse entre0.7 veces la VDDhasta VDD. Si VDDes 5.0 voltios, esto traslada el rango de 3.5 a 5.0 voltios.
Transistores CMOSLa Figura 3muestra los smbolos para un transistor CMOS tipo N y P. Las caractersticas exactas de
estos transistores se puede determinar por su esquema fsico, tamao y forma. El propsito de este libro, es
tratarlos como dispositivos conmutadores simples.
El transistor tipo N en la Figura 3tiene su terminal fuente [3] conectado a tierra. Para que un transistortipo N conduzca, el voltaje de la puerta [2] debe ser ms alto que el voltaje de la fuente [3], por una cantidad
-
5/24/2018 Inicio Micros 8bits
21/195
20
conocida como umbral. Se dice que este transistor tipo N conduce (entre los terminales [1] y [3]), cuando hayun voltaje lgico 1 en su puerta [2]. Cuando la puerta est en lgica 0, se dice que este transistor tipo N noconduce y acta como un interruptor abierto entre los terminales [1] y [3].
Figura 3. Transistores CMOS N y P
El transistor tipo P en la Figura 3tiene su terminal fuente [4] conectado a VDD. Para que un transistortipo P conduzca, su voltaje de puerta [5] debe ser ms bajo que el voltaje de la fuente [4], por una cantidadconocida como umbral. El transistor tipo P se diferencia del tipo N con un pequeo circulo en la puerta [5].Cuando hay un voltaje lgico 0 en la puerta [5] este transistor tipo P se dice que conduce y acta como uninterruptor cerrado entre los terminales [4] y [6]. Cuando la puerta est en voltaje lgico 1, este transistor tipo Pno conduce y acta como un interruptor abierto entre los terminales [4] y [6].
Es relativamente fcil integrar miles transistores del tipo P y N en un microcontrolador y conectarlos devarias maneras para realizar operaciones lgicas complejas. En los siguiente prrafos, se ven algunos de loscircuitos lgicos ms bsicos que se encuentran en un microcontrolador.
Puertas SimplesLos tres tipos de puertas lgicas bsicas encontradas en un microcontrolador son el Inversor, la puerta
NAND y la puerta NOR. Un diseador de lgica usa varias combinaciones de estas puertas bsicas para formarcircuitos lgicos ms complejos, como los que suman dos nmeros binarios. Aunque que no se piensa en el libroensear tcnicas de diseo con lgica, se describen estos circuitos para dar un mejor entendimiento de cmotrabaja un microcontrolador con informacin digital.
InversorLa Figura 4 muestra el smbolo lgico de un Inversor, su Tabla de verdad y un circuito CMOS
equivalente. Cuando un nivel de seal lgico (0 o 1) se presenta a la entrada [1] de un inversor, el nivel lgicoopuesto aparece en su salida [2].
Entrada[1]
Salida[2]
0 11 0
Figura 4. Inversor CMOS
Viendo el circuito CMOS equivalente a la derecha de la Figura 4 y la Tabla 5, se puede explicar losiguiente: Cuando la entrada [1] est a un nivel lgico 0, el transistor tipo N [4] no conduce y el transistor tipo P[3] conduce, la salida [2] que los une, est a VDD (lgica 1). Cuando la entrada [1] est en nivel lgico 1, eltransistor tipo P [3] no conduce y el transistor tipo N [4] conduce, conectando la salida [2] a tierra (lgica 0).
TransistorEntrada[1] [3] [4]
Salida[2]
0 On Off Conectado a VDD(1)
1 Off On Conectado a tierra (0)
Tabla 5. Funcionamiento de una puerta Inversora
-
5/24/2018 Inicio Micros 8bits
22/195
21
Puerta NANDLa Figura 5muestra el smbolo de una puerta lgica NAND, su Tabla de verdad y un circuito CMOS
equivalente. Cuando ambas entradas [1] y [2] de la puerta NAND estn en niveles lgicos 1, la salida [3] estar algica 0. Si cualquiera de las entradas de la puerta NAND est en lgica 0, la salida estar a 1.
Entrada
[1] [2]
Salida
[3]0 0 10 1 11 0 11 1 0
Figura 5. Puerta NAND CMOS
Viendo el circuito CMOS equivalente a la derecha de la Figura 5 y la Tabla 6, se puede explicar losiguiente: Cuando ambas entradas [1] y [2] estn en lgica 1, ninguno de los dos de los transistores tipo P [6] y[4] no conducen y los transistores tipo N [5] y [7] conducen, para que la salida [3] est conectada a tierra (lgica0). Cuando la entrada [1] est a lgica 0, el transistor tipo N [5] no conduce y desconecta la salida [3] de tierra,sin tener en cuenta la condicin del transistor tipo N [7]. Tambin, cuando la entrada [1] est a un nivel lgico 0,el transistor tipo P [4] conduce, conectando la salida [3] a V DD(lgica 1). Igualmente, cuando la entrada [2] esten nivel lgico 0, el transistor tipo N [7] no conduce, desconectando la salida [3] de tierra, sin tener en cuenta lacondicin del transistor tipo N [5]. Tambin, cuando la entrada [2] est a un nivel lgico 0, el transistor tipo P [6]conduce, conectando la salida [3] a VDD(lgica 1).
Entrada Transistor[1] [2] [6] [4] [5] [7]
Salida[3]
0 0 On On Off Off VDD(1)
0 1 Off On Off On VDD(1)
1 0 On Off On Off VDD(1)
1 1 Off Off On On GND(0)
Tabla 6. Funcionamiento de la puerta NAND
Aunque sta es una simple funcin lgica, muestra cmo los transistores CMOS pueden interconectarsepara realizar la lgica Booleana con simples seales de nivel lgico. La lgica de Boole (llamada as, por elmatemtico irlands que la formul) tiene 2 valores (0 y 1) basados en el sistema algebraico con formasmatemticas y relaciones.
Puerta NORLa Figura 6muestra el smbolo lgico, la Tabla de verdad y un circuito CMOS equivalente. Cuando
ninguna entrada [1] y [2] de una puerta NOR est a un nivel lgico 1, la salida [3] estar a un nivel lgico 1. Si
cualquier entrada de la puerta NOR est a un nivel lgico 1, la salida estar a lgica 0.
Entrada[1] [2]
Salida[3]
0 0 10 1 01 0 01 1 0
Figura 6. Puerta NOR CMOS
Viendo el circuito CMOS equivalente a la derecha de la Figura 6 y la Tabla 7, se puede explicar losiguiente: Cuando ambas entradas [1] y [2] estn a un nivel lgico 0, los transistores tipo N [5] y [7] noconducen y los transistores tipo P [4] y [6] conducen y la salida [3] queda conectada a VDD(lgica 1). Cuando la
-
5/24/2018 Inicio Micros 8bits
23/195
22
entrada [1] est a un nivel lgico 1, el transistor tipo P [4] no conduce, desconectando la salida [3] de VDDsintener en cuenta la condicin del transistor tipo P [6]. Tambin, cuando la entrada [1] est a un nivel lgico 1, eltransistor tipo N [5] conduce, conectando la salida [3] a tierra (lgica 0). Igualmente, cuando la entrada [2] est aun nivel lgico 1, el transistor tipo P [6] no conduce, desconectando la salida [3] de V DDsin tener en cuenta lacondicin del transistor tipo P [4]. Tambin, cuando la entrada [2] est a lgico 1, el transistor tipo N [7]conduce, conectando la salida [3] a tierra (lgica 0).
Entrada Transistor[1] [2] [4] [5] [6] [7]
Salida[3]
0 0 On Off On Off VDD(1)
0 1 On Off Off On GND (0)1 0 Off On On Off GND (0)1 1 Off On Off On GND (0)
Tabla 7. Tabla de Verdad de la puerta NOR
Puertas de Transmisin, Buffers y Flip-Flops
Los microcontroladores incluyen los tipos ms complejos de puertas lgicas y los elementosfuncionales mostrados en la seccin anterior. En esta seccin, se estudian algunas de estas estructuras mscomplejas, las dos estructuras primeras la puerta de transmisin y el Buffer de tres estados introduciendo laidea de seales de alta impedancia controladas lgicamente, la tercera Medio Flip-Flop introduce unaestructura, que puede mantener una seal en la salida, an despus de que la seal de entrada haya cambiado.Los Flip-Flops son vitales para los microcontroladores, para realizar contadores y tareas secuenciales.
Puerta de transmisinLa Figura 7muestra el smbolo lgico, la Tabla de verdad y un circuito CMOS equivalente. Cuando la
entrada de control [3] est a un nivel lgico 1, se dice que la puerta de transmisin conduce y cualquier nivellgico presente en la entrada [1] tambin estar en la salida [2]. Cuando la entrada de control [3] est a un nivellgico 0, se dice que la puerta de transmisin no conduce y el nodo de salida [2] estar desconectado de todo(alta impedancia o Hi-Z).
Control[3]
Entrada[1]
Salida[2]
0 0 Hi-Z0 1 Hi-Z1 0 01 1 1
Figura 7. Puerta de Transmisin CMOS
Viendo el circuito CMOS equivalente a la derecha de la Figura 6 y la Tabla 7, se puede explicar losiguiente: Cuando la entrada de control [3] est a un nivel lgico 0, la puerta del transistor tipo N [6] estar a
lgico 0 y la puerta del transistor tipo P [5] estar a un nivel lgico 1 (V DD). No hay voltaje entre tierra y VDD,que haran conducir el transistor tipo P [5] o el transistor tipo N [6], as que no hay ninguna conduccin entre laentrada [1] y la salida [2]. Desde el nodo de salida [2] est eficazmente aislado de todo, entonces se dice que esten alta impedancia (Hi-Z).
Cuando la entrada de control [3] est a un nivel lgico 1, se dice que la puerta de transmisin conduce yentonces tiene una conexin directa de la entrada [1] a la salida [2]. Si las dos entradas de control [3] y [1] estna un nivel lgico 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 lgico 1, la fuente [1] tambin est al mismo voltaje, entonces el transistor [6]no conducir. Si la entrada de control [3] est a un nivel lgico 1 y la entrada [1] est a un nivel lgico 0, eltransistor 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 lgico 0, la fuente [1] tambin estar al mismo voltaje, entonces el transistor [5] no conducir.
La puerta de transmisin mostrada en la Figura 7a veces se llama interruptor analgico porque es capazde dejar pasar seales intermedias entre los niveles lgicos legales.
-
5/24/2018 Inicio Micros 8bits
24/195
23
Las puertas de transmisin pueden formar multiplexores de datos, como el mostrado en la Figura 8.Cuando la seal seleccionada [3] est a un nivel lgico 1, la puerta de transmisin [6] conducir y la puerta detransmisin [7] (debido al inversor [5]) no conducir. As que la salida [4] no tendr el mismo nivel lgico que laentrada [1] y las seales 1 de la entrada [2] no afectarn a la salida [4]. Cuando la seal seleccionada [3] est aun nivel lgico 0, la puerta de transmisin [7] conducir y la puerta de transmisin [6] no conducir. As que lasalida [4] no tendr el mismo nivel lgico que la entrada [2] y las seales 1 en la entrada [1] no afectarn a la
salida.
EntradaSeleccin[3]
[1] [2]
Salida[4]
0 0 0 00 0 1 10 1 0 00 1 1 1
1 0 0 01 0 1 01 1 0 1
1 1 1 1
Figura 8. Multiplexor de Datos 2:1
Seleccin 1 2 6 7 40 0 0 Off On 00 0 1 Off On 10 1 0 Off On 00 1 1 Off On 11 0 0 On Off 01 0 1 On Off 01 1 0 On Off 1
1 1 1 On Off 1
Tabla 8. Funcionamiento del Multiplexor de Datos
Buffer de tres estadosLa Figura 9muestra el smbolo lgico, un circuito CMOS equivalente y la Tabla de verdad para un
Buffer de tres estados. Cuando la entrada de control [3] est a un nivel lgico 0, se dice que el Buffer no conducey la salida [2] est en alta impedancia que asla el nodo. Cuando la entrada de control [3] est a un nivel lgico 1,se dice que el Buffer conduce y cualquier nivel lgico que est presente en la entrada [1] tambin estar en lasalida [2].
Control[3]
Entrada[1]
Salida[2]
0 0 Hi-Z0 1 Hi-Z1 0 01 1 1
Figura 9. Buffer de Tres-estados
Viendo el circuito CMOS equivalente a la derecha de la Figura 9 y la Tabla 9, se puede explicar losiguiente: Cuando la entrada de control [3] est a un nivel lgico 0, la puerta del transistor tipo N [6] estar a unnivel lgico 0 y la puerta del transistor tipo P [5] a travs del inversor [9] estar a un nivel lgico 1 (V DD),entonces ambos transistores [5] y [6] no conducirn. 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 lgico 1, la puerta del transistor tipo N [6] estar a unnivel lgico 1 y la puerta del transistor tipo P [5] estar a un nivel lgico 0. Si la entrada del Buffer [1] est a un
-
5/24/2018 Inicio Micros 8bits
25/195
24
nivel lgico 0, la salida del inversor [4] estar a un nivel lgico 1 y har conducir el transistor tipo N [8] y dejarde conducir el transistor tipo P [7]. Con la entrada de control [3] a un nivel lgico 1 y la entrada [1] a un nivellgico 0, la salida del Buffer [2] estar conectada a tierra a travs de los transistores tipo N [6] y [8] qu estarnen conduccin.
Cuando la entrada de control [3] est a un nivel lgico 1, la puerta del transistor tipo N [6] estar a un
nivel lgico 1 y la puerta del transistor tipo P [5] estar a un nivel lgico 0. Si la entrada del Buffer [1] est a unnivel lgico 1, la salida del inversor [4] estar a un nivel lgico 0, haciendo conducir el transistor tipo P [7] ydejar de conducir el transistor tipo N [8]. Con la entrada de control [3] y la entrada [1], ambas a un nivel lgico1, la salida del Buffer [2] se conectar a VDD a travs de los transistores tipo P [7] y [5], que estarn enconduccin.
Nodo TransistorControl[3]
Entrada[1] [4] [9] [5] [6] [7] [8]
Salida[2]
0 0 1 1 Off Off Off On Hi-Z0 1 0 1 Off Off On Off Hi-Z1 0 1 0 On On Off On GND
(0)1 1 0 0 On On On Off V
DD(1)
Tabla 9. Funcionamiento del Buffer
Medio Flip Flop (HFF)La Figura 10muestra el smbolo lgico y un circuito CMOS equivalente de un medio Flip-Flop (HFF).
Cuando la entrada de reloj [2] est a un nivel lgico 1, la puerta de transmisin [9] conduce y la puerta detransmisin [8] no conduce. Se dice que el medio Flip-Flop es transparente, porque la seal de entrada [1] pasadirectamente a las salidas Q [3] y Q negada [4]. Cuando el reloj [2] est a un nivel lgico 0, la puerta detransmisin [8] conduce y la puerta de transmisin [9] no conduce. En este estado, el medio Flip-Flop se diceque est enclavado (latched). La puerta de transmisin [8], el inversor [6] y el inversor [7] forman un anilloestable y las salidas Q [3] y Q negada [4] permanecen al mismo nivel lgico que cuando el reloj cambi de 1 a 0.
Figura 10. Medio Flip Flop
-
5/24/2018 Inicio Micros 8bits
26/195
25
ResumenAunque se piensa a menudo que los niveles lgicos son 0 voltios o 5 voltios, estos son realmente rangos
de voltaje garantizados por el fabricante de la MCU. Para una MCU especfica que trabaja con V DD= 5.0 V, unnivel lgico 0 puede ser de 0.0 a 1.5 V y un nivel lgico 1 puede ser de 3.5 a 5.0 V. Siempre hay que referirse alas hojas de datos para cada MCU para obtener los voltajes lgicos 0 y 1.
Las MCU CMOS se componen de miles de transistores tipo N y P. Un transistor tipo N conduce(conduce de la fuente hasta el drenador) cuando su puerta est a un nivel lgico 1 y su fuente est a unnivel lgico 0. Un transistor P conduce cuando su fuente est a un nivel lgico 1 y su puerta est a un nivellgico 0.
Los transistores N y P pueden conectarse de varias maneras para realizar un trabajo lgico. Hay trestipos de puertas simples: los Inversores, las puertas NAND y las puertas NOR. La salida de un inversor siempretiene un nivel lgico opuesto a su nivel de entrada. La salida de una puerta NAND est en nivel lgico 0 cuandotodas sus entradas estn en nivel lgico 1. La salida de una puerta NOR est a un nivel lgico 0 cuandocualquiera o todas sus entradas estn a un nivel lgico 1.
La salida de una puerta de transmisin o un Buffer de tres estados puede tener nivel lgico 0, lgico 1 oalta impedancia. Un salida tiene alta impedancia cuando parece no estar conectada a nada (un circuito abierto).
Un medio Flip-Flop (HFF) tiene una condicin transparente y una condicin de enclavamiento(latched). En la condicin de transparente (con la entrada de reloj igual a un nivel lgico 1), la salida Q essiempre igual al nivel de la lgica presentada a la entrada. En la condicin de enclavamiento (la entrada de relojigual a un nivel lgico 0), la salida mantiene el nivel lgico que fue presente cuando el Flip-Flop estaba en sultimo lugar en la condicin de transparente. Los cambios en el nivel lgico de entrada, mientras el Flip-Flopest enclavado, no afectan al nivel lgico de salida.
-
5/24/2018 Inicio Micros 8bits
27/195
26
Memoria y Entradas/Salidas Paralelas
ndice
IntroduccinAnaloga de una Memoria con unas CasillasCmo ve la Memoria el MicroprocesadorKilobytes, Megabytes y GigabytesTipos de MemoriaMemorias Voltiles
RAMMemorias No-Voltiles
ROM, EPROM, EEPROM, OTP, FLASHEntradas/Salidas como un tipo de MemoriaEstados internos y Registros de controlMapa de memoriaLa Memoria como un Perifrico
Resumen
IntroduccinAntes de ver el funcionamiento de la CPU se puede discutir en detalle algunos conocimientos
conceptuales que requiere la memoria del microcontrolador. En muchas clases de inicio a la programacin, lamemoria se presenta como algo similar a unas casillas donde se pueden almacenar mensajes y otrasinformaciones. Las casillas en que aqu se van a referir son como los buzones de un gran edificio. Es una buenaanaloga, pero necesita un poco ms de detalle para explicar los funcionamientos internos de una CPU.
Analoga de una Memoria con unas Casillas
La idea de que cualquier tipo de memoria sirve para guardar informacin, es cierta, pero no hay ningnpunto que diga como se guarda dicha informacin y no se tiene de una manera fiable como se puede recuperardicha informacin cuando se necesita. La serie de buzones de un edificio puede usarse como un tipo dealmacenamiento de memoria. Se puede poner informacin en un buzn numerado y cuando se quiere recuperardicha informacin, se puede ir al buzn con esa direccin y recuperarla.
A continuacin, se puede llevar de manera anloga para explicar simplemente cmo ve la memoria unmicrocontrolador de 8-bits para que se pueda ser ms especfico. En una CPU de 8-bits, cada casilla (o buzn)
puede ser un contenedor de un conjunto de ocho interruptores (on/off). En una casilla real, no se le puede ponerms informacin escribiendo ms pequeo, ni tampoco hay ninguna casilla vaca (son ocho interruptores y sonOn o Off). Los contenidos de una posicin de memoria pueden ser desconocidos o indefinidos a un momentodado, as mismo, los interruptores en las casillas pueden estar en un estado desconocido hasta que sean definidos
por primera vez. Los ocho interruptores estarn en una fila, donde cada interruptor representa un solo dgito
binario (bit). Un 1 binario corresponde a un interruptor cerrado (On) y un 0 binario corresponde a un interruptorque est abierto (Off). Cada casilla (posicin de memoria) tiene una nica direccin para que la informacin
pueda guardarse y recuperarse fiablemente.
En un edificio, las direcciones de los buzones pueden ser del 100 al 175 para el primer piso, del 200 al275 para el segundo piso, etc. stos son nmeros decimales que tienen significando para las personas.Anteriormente se dijo que las microcontroladores trabajan con el sistema numrico binario y unmicrocontrolador con cuatro lneas de direccin puede identificar 16 direcciones. Este microcontroladoridentifica las direcciones de las 16 posiciones de memoria (buzones) con el valor hexadecimal de $0 a $F.
Los microcontroladores MC68HC05 ms pequeos, tienen 10 lneas de direccin que permitendireccionar 1024 nicas posiciones de memoria. En comparacin, el microcontrolador MC68HC11 de 8-bitstiene 16 lneas de direccin que pueden direccionar 65,536 nicas posiciones de memoria.
-
5/24/2018 Inicio Micros 8bits
28/195
27
Cmo ve la Memoria el MicroprocesadorUna CPU de 8-bits con 10 lneas de direccin ve la memoria como una fila continua de 1024 valores de
8-bits. La primera posicin de memoria tiene la direccin 00 0000 00002y la ltima posicin tiene la direccin11 1111 11112. Estos 10-bits de direcciones normalmente se expresan como dos nmeros de 8-bits, esto seexpresa a su vez por cuatro dgitos hexadecimales. En la anotacin hexadecimal, estas direcciones van de $0000
a $03FF.El microcontrolador especifica qu posicin de memoria se est accediendo (leer desde o escribir a)
ponindose una nica combinacin de 1 y 0 en las 10 lneas de direccin. La intencin para leer la posicin oescribir en la posicin se hace poniendo un 1 (lectura) o un 0 (escritura) en una lnea llamada read/write (R/W).La informacin 'de' o 'para' la posicin de memoria se lleva con ocho lneas de datos. En cualquier posicin dememoria de un microcontrolador se puede 'escribir a' o se puede 'leer de'. No todos los tipos de memoria se
pueden escribir, pero es trabajo del programador saber esto, no el microcontrolador. Si un programador ordenaerrneamente al microcontrolador escribir en una memoria de slo lectura, el microcontrolador lo intentar.
Kilobytes, Megabytes y GigabytesLa unidad ms pequea de memoria de un microcontrolador es de un solo bitque puede guardar un
valor 0 o 1. Estos bits se agrupan en conjuntos de ocho bits, para hacer un byte. Los microcontroladores msgrandes se agrupan en grupos ms extensos de 16 o 32 bits, para hacer una unidad llamada palabrao word. Eltamao de una palabra puede ser diferente para diferentes microcontroladores.
En el mundo decimal, se expresan a veces nmeros muy pequeos o muy grandes, incluyendo unprefijo como mili, kilo, etc., antes de la unidad de medida. En el mundo binario, se acostumbra a utilizar prefijossimilares para describir grandes cantidades de memoria. En el sistema decimal, el prefijo kilo significa 1000 (o
103). En el sistema binario, la potencia del nmero 2 que ms se acerca a 1000 10 es 210= 102410. Cuando se
dice kilobytes (Kbytes) son mltiplos de 102410 bytes y aunque esta terminologa cientfica no es del todoexacta, a travs de los aos de uso se ha quedado como normal.
Un megabyte es 220 o 1,048,57610 bytes. Un gigabyte es 230 o 1,073,741,82410 bytes. Un
microcontrolador personal con 32 lneas de direccin, tericamente puede direccionar 4 gigabytes(4,294,967,29610) de memoria. Los microcontroladores pequeos discutidos en este libro tienen desde 512 byteshasta 16 kilobytes de memoria.
Tipos de MemoriaLos microcontroladores utilizan varios tipos de informacin que requiere almacenarla en diferentes
tipos de memoria. Las instrucciones que controlan el funcionamiento de los microcontroladores se guardan enuna memoria no-voltilpara que el sistema no tenga que ser reprogramado despus de que se deje de alimentar.Para trabajar con las variables y los resultados intermedios, es necesario guardarse en una memoria que puedaescribirse rpidamente y fcilmente durante el funcionamiento del sistema. No es importante conservar este tipode informacin cuando no hay alimentacin, por lo que puede usarse una memoria voltil. Estos tipos de
memorias se les puede modificar su contenido escribiendo y slo se pueden leer por la CPU delmicrocontrolador.
Otra informacin sobre las memorias, los datos de entrada son ledos por la CPU y los datos de salidason escritos por la CPU. Las entradas/salidas E/S (I/O input/output) y los registros de control son tambin unaforma de memoria del microcontrolador, pero son diferentes a los otros tipos de memoria, porque la informacin
puede ser detectada y/o cambiada por otra cosa diferente de la CPU.
Memorias VoltilesRAM: Memoria de Acceso Aleatorio (Random Access Memory)
La RAM es una forma de memoria voltil que puede ser leda 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 ms comnen un microcontrolador. La RAM requiere una cantidad relativamente grande de rea de silicio del circuitointegrado y debido a esto el costo es alto, por esto, normalmente las cantidades de RAM incluidas en losmicrocontroladores suelen ser pequeas.
-
5/24/2018 Inicio Micros 8bits
29/195
28
Memorias No-VoltilesROM: Memoria de slo Lectura (Read-Only Memory)
La ROM consigue su informacin durante el proceso industrial del circuito integrado. La informacindebe ser proporcionada por el cliente antes de integrar el circuito, que una vez fabricado contendr estainformacin. Cuando se ha terminado el microcontrolador, esta informacin puede ser leda por la CPU pero no
puede cambiarse. La ROM est considerada como una memoria no-voltil porque la informacin no cambia si se
deja de alimentarla. La ROM es el tipo ms simple, ms pequea y ms barata de memoria no-voltil.
PROM: Memoria Programable de slo lectura (Programmable ROM)La PROM es similar a la ROM, slo que puede se programa despus de fabricar el circuito integrado.
EPROM: Memoria Elctricamente Programable (borrable por UV)La EPROM puede ser borrada exponindola a una fuente de luz ultravioleta. Los microcontroladores
con EPROM tienen una pequea ventana de cuarzo que permite al circuito integrado ser expuesto a la luzultravioleta para borrarse. El nmero de veces que puede borrarse y reprogramarse una EPROM se limita a unoscientos ciclos y depende del dispositivo en particular. Para programar la informacin en una memoria EPROMse usa un procedimiento especial. La mayora de microcontroladores con EPROM usan un voltaje adicionaltpico de +12 Vdc, durante la programacin de la EPROM. La CPU no puede escribir informacin en una
posicin de la EPROM tal como se hace para escribir en una posicin de la RAM.
Algunos microcontroladores tienen internamente un circuito de programacin de la EPROM, para quela CPU del microcontrolador pueda programar las posiciones de memoria de la EPROM. Cuando la EPROM seest programando, no se conectan los buses de direcciones y de datos tal como se hara en una memoria normal.De manera anloga a las casillas, esto sera quitar el mueble entero de soporte de los buzones y tomndolo comoun almacn donde las cajas se llenaran con informacin. Mientras los buzones estn programndose, 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.Estos dispositivos pueden programarse con un programador de propsito general de EPROM.
OTP: Memoria EPROM programable uno sola vezCuando un microcontrolador con EPROM se encapsula con plstico opaco, se le llama un
microcontrolador de programable una sola vez o OTP. Como que la luz ultravioleta no puede atravesar elencapsulado, la memoria no puede borrarse. El silicio dentro de una OTP es idntico a uno encapsulado con unaventana de cuarzo. El encapsulado en plstico es mucho ms barato que el encapsulado en cermico con unaventana de cuarzo. Las MCU con OTP son ideales para aplicaciones de alto volumen.
EEPROM: Memoria Programable y Borrable elctricamenteLas EEPROM se pueden borrar elctricamente por los comandos de un microcontrolador. Para
programar un nuevo valor en una posicin, se debe borrar primero dicha posicin y entonces realizar una serie depasos de programacin. Esto es algo ms complicado que cambiar una posicin de la RAM a la que simplementepuede escribirse un nuevo valor por la CPU. La ventaja de la EEPROM es que es una memoria no-voltil. LaEEPROM no pierde sus contenidos cuando se deja de alimentarla. La diferencia con la Memoria RAM es elnmero de veces que se puede borrar y reprogramar una posicin de EEPROM que est limitada, tpicamente a10,000 ciclos. El nmero de veces que se puede leer una posicin de EEPROM es ilimitado.
FLASH: Memoria Programable y Borrable elctricamenteLas memorias Flash se pueden borrar y programar elctricamente (tpicamente a 10.000 ciclos de
programacin/borrado). Ocupan menor rea de silicio dentro de un circuito integrado.
E/S como un tipo de MemoriaEl estado y el control de las Entradas/Salidas, es un tipo de posicin de memoria que permite al sistema
microcontrolador conseguir la informacin a o del mundo exterior. Este tipo de posicin de memoria esinusual porque la informacin puede detectarse y/o puede cambiarse por otra cosa diferente a la CPU.
Los tipos ms 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 ledos por la CPU. Un simple puerto desalida consiste en ocho pins que la CPU puede controlar (escribir a). En la prctica, una posicin de un simplepuerto de salida normalmente se lleva a cabo con ocho bsculas y ocho caminos de realimentacin, que permitena la CPU leer lo que se escribi previamente en la direccin de dicho puerto de salida.
-
5/24/2018 Inicio Micros 8bits
30/195
29
La Figura 11muestra los circuitos equivalentes de un bit de RAM, un bit de un puerto de entrada y un
bit de un puerto de salida tpico que tienen la capacidad de almacenar la lectura anterior. En una MCU real, estoscircuitos se repiten ocho veces para hacer una sola posicin de 8-bits de RAM, puerto de entrada o puerto desalida. El medio flip-flop (HFF), Figura 11, es transparente a la entrada. Cuando la seal de reloj est en estadoalto, los datos pasan libremente de la entrada D a la salida Q y 1. Cuando la entrada de reloj est en estado bajo,
los datos se almacenan en las salidas Q y 1.
Figura 11. Memoria y Circuitera de E/S
Cuando la CPU guarda un valor en la direccin que corresponde el puerto de salida en la Figura 11(c),se activa la seal WRITE para almacenar el dato de la lnea del bus de datos en el medio flip-flop [4]. La salidade esta bascula, la cual tiene un buffer [5], aparece como un nivel digital en el terminal de salida. Cuando la CPUlee la direccin de este puerto de salida, se activa la seal READ para habilitar el multiplexor [6]. Estemultiplexor acopla los datos de salida del medio flip-flop hacia la lnea bus de datos.
Estados internos y Registros de controlLos 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 seal lgicosinternos (indicadores).
Mirando la Figura 11y 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 decontrol interno, la salida del buffer se conecta a alguna seal de control interno en lugar de a un pin externo. Unbit de estado interno est como un bit de puerto de entrada excepto que la seal que es detectada durante unalectura, es un seal interna en lugar de un pin externo.
-
5/24/2018 Inicio Micros 8bits
31/195
30
La familia de microcontroladores MC68HC05 incluyen pines de E/S paralelos. La direccin de cada
terminal es programable por un software accesible por un bit de control. La Figura 12muestra la lgica para unpin de E/S bidireccional que incluye un latch en el puerto de salida y un bit de control de direccin de datos.
Un pin del puerto se configura como una salida si su correspondiente bit DDR (registro de direccin de
datos) se pone a 1. Un pin se configura como una entrada si su correspondiente bit DDR se pone a 0. Un reset opower on, ponen a 0 todos los bits DDR y configura todos los pines del puerto como entradas. Los bits DDRson capaces de ser escritos o ledos por el procesador.
Figura 12. Puerto de E/S con Control de Direccin de Datos
Mapa de memoriaPuesto que hay ms de mil posiciones de memoria en un sistema MCU, es importante saber de algunamanera por donde se ha pasado. Un mapa de memoria es una representacin grfica del espacio total de lamemoria de la MCU. La
top related