Professional Documents
Culture Documents
UNIVERSIDAD DE ANTIOQUIA
FACULTAD DE INGENIERA.
Electrnica Digital III
Ingo. Eugenio Duque Prez
Octubre 2 del 2014
Bibliografa
Bibliografa
para la clase
Manual Tcnico de la familia HCS08:
A continuacin
Fabricantes de MCUs
CPU
P4
PWM
P5 SERIAL
INTs Ext. P2
Captura
Eventos
I2 C
P3
Memoria
Microcontrolador
Pn
Integrado
Se
Seasemeja
asemejaaaun
un
en su interior
computador,
pero
computador,
pero
CPU o Unidad Central de Proceso
con
conprestaciones
prestaciones
bastante
Memoria
bastantereducidas
reducidas
Dispositivos de E/S
Incluye
P1
CPU
P4
P2
MCU
MCU
P5
P3
MEMORIA
Pn
A continuacin
Fabricantes de MCUs
Fabricantes de MCUs
Actualmente
de datos y programa.
Perifricos de entrada y salida.
Programacin de alto y bajo nivel.
Fabricantes de MCUs
MICROCHIP:
ATMEL:
PICs.
AVR.
INTEL: 8051.
FREESCALE: HC(S)08, HC11, HC(S)12.
HITACHI: H8.
HOLTEK: HT8.
NATIONAL SEMICONDUCTOR: COP8.
TEXAS INSTRUMENTS: TMS370.
Fabricantes de MCUs
MICROCHIP:
PICs.
Alto
nivel de integracin
Caractersticas de altas prestaciones:
Filosofa
RISC.
Modalidad Pipeline.
Arquitectura Harvard: instrucciones y datos.
Relacin
de precio/prestaciones excelente.
Aplicaciones
Informtica,
Fabricantes de MCUs
ATMEL
AVR
Familia
de MCUs RISC.
Caractersticas de altas prestaciones.
Filosofa
RISC.
Arquitectura Harvard: instrucciones y datos.
32 registros de 8 bits.
Desarrollado
Fabricantes de MCUs
TEXAS
INSTRUMENTS
CPU RISC de 16 bits.
Diseado para alto desempeo y consumo de
energa muy bajo.
Caractersticas.
A/D de 10/12/14/16 bits.
PWM.
Comparadores.
USART.
Controlador de LCD.
Oscilador interno.
Fabricantes de MCUs
FREESCALE
Microcontroladores descendientes del procesador 6800 de
Motorola.
Familia de 8 Bits.
HC05 (Ya no se fabrica).
HC08, HCS08 y Flexis.
HC11 (Ya no se fabrica).
Familia de 16 Bits.
HC12 (Ya no se fabrica), HCS12, MC9S12.
Familias de 32 bits.
Flexis ColdFire V1.
A continuacin
Fabricantes de MCUs
Familia HCS08
deFreescale
Freescale
HC08 de
Microcontrolador HCS08
Los
Integracin
Integracin
CPU HCS08.
para
SCItransparente
IRQ
transparente
parael
el
usuario,
MEMORIA
usuario,cada
cada
Memoria
RAM.
perifrico
perifricose
semaneja
maneja
KBI
A/D
Memoria ROM/FLASH. como una memoria!!!
como una memoria!!!
MCUs HCS08 DE FREESCALE
Perifricos.
CPU HCS08
Todos
Internal
Bus
I 2C
Bus
Clock
Registros
internos
ALU
Interfaz a
memoria y
E/S
Bus
Microcontrolador HCS08.
Registros internos de la CPU
Registro Acumulador
CPU
HCS08,8bits
7
0
Total compatibilidad
Registro ndice
H:XHC05.
con
H
X
Apuntador
7 16 bits con0
15
de pila 8de
Stack Pointer
SP
instrucciones para
manipularlo.
Equivalencia
con A7
0
15
Contador de Programa PC
Registro ndice
de 16 bits (H:X)
15
Registro
0
H: 8 Bits. Parte Alta de H:X.
Registro Cdigos de Condicin CCR
Registro X: 8 Bits. Parte Baja de H:X.
7
Microcontrolador HCS08
12
Modos de direccionamiento.
Instrucciones para mover datos de
memoria a memoria sin usar el
acumulador A.
Instrucciones para la manipulacin de
datos BCD: Binary-Coded Decimal
Modos de bajo consumo: wait y stop.
Microcontroladores Flexis
Microcontroladores
de 8 y 32 Bits de alto
rendimiento, pertenecen a la familia S08
y ColdFire.
Microcontroladores Flexis
Compatibilidad
32 Bits.
Cuando
se requiere
Registro
Acumulador
A
mayor prestacin,
seD0-D7
Registros de Datos
puede cambiar el ncleo S08 ColdFire
7
0
1615
87
31
Registro
V1. ndice H:X
Registros de Direcciones A0-A6
15
8 7
Stack Pointer SP
15
Contador de Programa PC
15
0 31
1615
StackPointer SP (A7).
0 31
1615
Contador de Programa o PC
Solo en el 68000
2423
Registro de Estado
CCR
15
87
0
0 31
Microcontroladores
Los
Microcontroladores de la familia
HCS08
Protecciones.
WatchDOG.
Deteccin
Microcontroladores
Los
Microcontroladores de la familia
HCS08
Pin
de Reset y PowerOnReset.
Memoria FLASH: Hasta 60Kbytes.
Pin de Reset
activo en
bajo Hasta 4kbytes.
Memoria
RAM:
Memoria FLASH
Programa
Memoria RAM
RESET
MCU
Datos
Microcontrolador HCS08
Frecuencia mxima de bus: 24 MHz.
Mxima frecuencia de operacin de CPU : 48MHz.
Espacio de memoria de 64Kbytes.
$1800
$0000
$0000 - $FFFF.
High Page
Registers
96 Bytes
Registros
Pgina
Cero.E/S
$00AF
$00B0
RAM.
Flash.
RAM 4096 Bytes
Configuracin.
$10AF
$10B0
Perifricos.
Flash
$185F
$1860
$195F
$1960
1872 Bytes
$17FF
$FFFF
Microcontroladores
VREF_HIGH
Amplitud
0
1
1
0
1
CPU
Reloj Sistema
1
0 o MHz
Varios kHz
1
Seal Anloga
Eventos
Externos
0V
1a5V
0
VREF_LOW
Notificacin Peridica
1s
5ms
1011 0110
1ms
250ms
CAJA
NEGRA
CAJA
NEGRA
SCI,
SPI, I2C
A/D
100ms
TIMER
0.5s
Equipo
Cdigo
Digital
Externo
Seal PWM
Tiempo
Microcontroladores
DEF
GHI
JKL
MNO
PQR
5Puerto
6
YZ
Entrada
STU
VWX
MENU/ENTER
CANCEL
0
1
1
0
1
1
0
1
CPU KBI
Microcontroladores
A continuacin
Modelo de Programacin
Formato de Instruccin
Modelo de Programacin.
Registros
de la CPU.
Registro Acumulador A
7
0
Registro ndice H:X
X
8 7
15
Stack Pointer SP
0
15
Contador de Programa PC
15
Registro Cdigos de Condicin CCR
V 1 1 H I N Z C
7
Modelo de Programacin
Acumulador
de 8 Bits (A)
Registro
Microcontrolador HCS08
Frecuencia mxima de bus: 24 MHz.
Mxima frecuencia de operacin de CPU : 48MHz.
Espacio de memoria de 64Kbytes.
$1800
$0000
$0000 - $FFFF.
High Page
Registers
96 Bytes
Registros
Pgina
Cero.E/S
$00AF
$00B0
RAM.
Flash.
RAM 4096 Bytes
Configuracin.
$10AF
$10B0
Perifricos.
Flash
$185F
$1860
$195F
$1960
1872 Bytes
$17FF
$FFFF
Modelo de Programacin
Registro
Indexar
o direccionar 64 Kbytes.
Modos de direccionamiento indexados.
Registro H, Registro X: Parte alta y baja.
El registro H es llevado a cero cuando hay un
reset.
H (PARTE ALTA DE H:X)
Modelo de Programacin
RESET:
Modelo de Programacin
Registro
Apunta
el
$00F9
$00FA
reset,
SP es
SP $00FB
SP $00FC
SP $00FD
SP $00FE
SP $00FF
XX
XX
llevado
XX a
$45
XX
$30
XX
$80
XX
$40
XX
$00FF.
Modelo de Programacin
Ajustar
Partes de un Programa.
Directrices, Definiciones
Include derivative-specific definitions
INCLUDE 'derivative.inc'
; export symbols. Defines Program Start point
XDEF _Startup
ABSENTRY _Startup
; Definition of Labels for Constants
CINCO:
EQU 5
LIMITE:
EQU 100
;
;
; code section
Startup de un programa
ORG ROMStart
__Startup:
; Apagar WatchDOG
LDA #$20
STA SOPT1
; Llevar el SP a la ltima posicin de la RAM
LDHX #RAMEnd+1
TXS
; Clear some registers and memory positions
CLRA
CLRX
CLRH
CLR Contador1
CLR Contador2
CLR Contador3
MOV #$1e, Num_Students
MOV #$00,PTAD ; Initializing ports and directions
MOV #$FF,PTADD
MOV #$00,PTBD
MOV #$FF, PTBDD
; Cuerpo del programa
Inicio:
; program begins
;Program body
;
.
Here: BRA HERE
;**************************************************************
;*
Interrupt Vectors
*
;**************************************************************
ORG $FFFE
DC.W _Startup
; Reset
Modelo de Programacin
Registro
de cdigos de condicin
(CCR)
RESET:
Preguntas?
Valores
A
= $23F
H:X = $FFFE
SP = $50
PC = $8000
Por qu los registros PC, SP y H:X son de 16
bits?
Si en memoria se requiere almacenar una direccin
de memoria, cuntos Bytes se requieren?
A continuacin
Modelo de Programacin
Formato de Instruccin
Instruccin en ensamblador
La
Las
#$2F
$45,X
$10
$FF
Acumulador
Operacin de la Instruccin
En
Operadores en la Instruccin
()
&
|
:
+
Cdigos de Condicin
V
H
N
Z
C
0
1
Bit no modificado.
Bit forzado a cero.
Bit forzado a uno.
Bit llevado a uno o a cero dependiendo del resultado.
Bit resultado indefinido.
Otras anotaciones
A continuacin
Modelo de Programacin
Formato de Instruccin
H = $90
$8002
$8A
$8003
$81
Programa
Lectura
Lectura/ /
Decodificacin
Decodificacin
Instruccin PULH
SP (SP+ $0001) ; Pull(H)
SP
SP
XX
$90
Pila del MCU
Cdigo de Operacin.OpCode
Operacin a realizar.
Modo de Direccionamiento a emplear.
Tamao: 1 2 Bytes.
Modo de Direccionamiento Stack Pointer: 2 Bytes.
M.D.
Operacin
16 Bits
OpCode: El Resto de M. D.
M.D.
Operacin
8 Bits
de Instruccin:
Info. Adicional
la instruccin ADD.
M.de
D.Instruccin ADD
OpCode
Formato
$79F4,XAdicin
Cdigo de
Mquina
ADD $79F4,X
ADD $30,SP
StackPointer,
8 bits
9EEB
Formatooffset
de Instruccin
ADD
$50
ADD $A47B,SP
StackPointer, offset
16 bits $509EDB4b + 4b +2 8b = 2
9EDBA47B
$B $B
bytes
ADD #$45
ADD $50
ADD $FE00
ADD ,X
ADD $45,X
Inmediato
OpCode Adicional
9EEB30
Preguntas?
Cul
es el modo de direccionamiento
donde el OpCode es de 2 bytes?
El OpCode puede tener el mismo
tamao del Formato de Instruccin?
Por qu?
Un formato de instruccin de 3 bytes
requiere de cuntos accesos a memoria
para que la CPU la lea completamente?
Ejercicio
Instruccin
Modo Direccionamiento
ADD #$45
ADD ??????
BB
BB50
CB
Indexado sin offset
ADD $45,X
ADD ??????
Cdigo de
Mquina
AB
ADD $FE00
ADD ??????
OpCode
Bytes
adiciona
les
FB
EB
Indexado con offset de 16-bits
ADD $30,SP
9EEB
ADD $A47B,????
9EDB
DB79F4
Bibliografa
Bibliografa
para la clase
Manual de usuario de la familia HCS08:
HCS08
Puertos de E/S
Transferencia
de Datos
Datos.
Paralela:
0
1
1
0
1
1
0
1
1011 0110
CPU
Comunicacin
Serial
Puertos de E/S
Puertos de E/S
Cada
Puertos de E/S
Veamos
configura
configura
direccin
direccin
Escritura
Escritura
puerto
puerto
1
0
Configura
Configura
PullUp
PullUp
PTADD3
Pin
PinE/S
E/S
0
1
0
1
1
0
1
0
PTAD3
1
0
VDD
0
1
PTAPE3
1
PTA3 0
Lectura
Lectura
puerto
puerto
0
1
1
0
0
1
1
0
1
0
0
1
Antes de Comenzar
PTBD = $0002, PTBDD = $0003, PTBPE = $1844
1 X
0
1 X
1 X
0
1 X
0 X
1 X
1 X
0
A X
MCU JM60
#$00,PTBD
MOV #$0F,PTBDD
MOV #$F0,PTBPE
MOV #$F3,PTBD
BCLR 0,PTBD
BSET 2,PTBD
LDA PTBD
LDA PTBD
MOV #$FF,PTBD ;
PTBD7
PTBD6
PTBD5
PTBD4
PTBD3
PTBD2
PTBD1
PTBD0
5v
0v
5v
5v
0v
5v
GND
MOV
GND
A continuacin
Modo de Direccionamiento Stack Pointer
M. D. Stack Pointer
Para
qu$10
seemplea
la
pila?
(SP) + $4
$10 $30
(SP)
+ $4
(A)
Pasar argumentos
$30
a
subrutinas
$15
(SP)
+(A)
$5
$15
(SP)
+
$5
$48
(X)
$48 de
(X)
Objetivo
los
$00F8
Objetivo
de
los
Guardar el
valor
del
PC
Se
obtienen
desde
Se Stack
obtienen
desde
M.D.
Pointer
$00F9
M.D.
Stack
Pointer
los
Almacenar informacin
SP $00FA
losregistros
registros temporal
compatibilidad
con$10,
la
SePor
El
preparan
apuntador
los
valores
de pila
ha
Se
ejecuta
la
instruccin
Por
Finalmente
fuera
de
se
laelsalir
retorna
subrutina,
de se
la
Antes
de
de
la
Cmo
se
puede
acceder
a
familia
HC05,
SP
arranca
En
la
subrutina
se
ejecuta
$15,
vuelto
$48
a
y
la
$30
direccin
para
ser
donde
usados
BSR,
la
direccin
de
la
recupera
subrutina
la
reserva
usando
hecha
la Ely
subrutina
se$10,
debe
recuperar
los
valores
$15,
$30
el valor
SP
=(dos
$00FF.
las
instruccin
PSHH
encon
la
comenz
subrutina
como
X
era
se
pasan
siguiente
instruccin
a de
BSR
en
Stack
instruccin
usando
RTS
AIS
#$2
el
valor
de
H
con
PULH
$48.
valora se
puede
modificar con
la pila
esperarse!!!
esPSHA,
$8040 PSHX)
TXS.
A = $30
X = $48
SP = $00FB
$00FD
$00FC
$00FE
$00FA
$00FF
SP $00FB
SP $00FC
SP $00FD
SP $00FE
SP $00FF
XX
XX
XX
XX
H
$80
XX
$40
XX
$10
XX
$15
XX
Memoria 8 Bits
M. D. Stack Pointer
La
offset de 8 bits.
Con offset de 16 bits.
En
M. D. Stack Pointer
Stack
Direccin
Direccin
M. D. Stack Pointer
Offset
Offset 8 Bits
Offset
OpCode
Offset 16
Bits
16 Bits:
Instruccin
Off16,SP
M.D.
Stack
Pointer
M.D.(2
Stack
Pointer
4 Bytes: OpCode
(2
Bytes)
+
Info.
Adicional
Byte)
M.
D.
StackPointer
con
Offset
16
M. D. StackPointer
con Offset 16bits
bits
yyM.
D.
Relativo
M. D. Relativo
M. D. Stack Pointer
S.
P. (Off8)
ADC $20,SP , BIT $60,SP. A o M, tienen el(los) bits test.
$8502
$8501
$8500
PC = $8500
UNIDAD
UNIDADDE
DECONTROL
CONTROL
RI =RI$9E
= XX
- $E5
$8500
$8501
$8502
$8503
$9E
$E5
$60
$D3
$60
$E5
$9E
Instruccin
InstruccinBIT
BIT
SP
SP==$0100
$0100
Memoria 8 Bits
OpCode
A La
continuacin
Unidad
= 2Byte.
de se
Control
Formato
procede
toma
aInstruccin
decodificar
de memoria=lala
3Bytes.
instruccin.
siguiente
Info.
Pregunta:
instruccin
Adicional
Tamao
y= la
$60
carga
OpCode
Verificar
en ely Registro
Formato.
operando
deInfo.
Instruccin.
en $0160.
Adicional?
M. D. Stack Pointer
S.
P. (Off16)
ADC
PC = $9000
UNIDAD
UNIDADDE
DECONTROL
CONTROL
RI =RI$9E
= XX
- $D7
$9000
$9001
$9002
$9003
$9E
$D7
$02
$10
$D7
$10
$9E
$02
Instruccin
InstruccinSTA
STA
SP
SP==$0020
$0020
Memoria 8 Bits
OpCode
A La
continuacin
Unidad
= 2Byte.
de se
Control
Formato
procede
toma
aInstruccin
decodificar
de memoria=lala
4Bytes.
instruccin.
siguiente
Info.
Pregunta:
instruccin
Adicional
Tamao
y=la$0210
carga
OpCode
enAlmacenar
ely Registro
Formato.
(A)
deInfo.
en
Instruccin.
$0230.
Adicional?
A continuacin
Modo de Direccionamiento Stack Pointer
M. D. Relativo
Usado
M. D. Relativo
Relativo
BGT
$8501
$8500
PC = $8500
UNIDAD
UNIDADDE
DECONTROL
CONTROL
RI
RI==$AD
XX
$8500
$8501
$8502
$8503
$AD
$6A
$CC
$60
$AD
$6A
Instruccin
InstruccinBSR
BSR
Memoria 8 Bits
OpCode
A La
continuacin
Unidad
= 1Byte.
de se
Control
Formato
procede
toma
aInstruccin
decodificar
de memoria=lala
2Bytes.
instruccin.
siguiente
Info.
Pregunta:
instruccin
Adicional
Tamao
y=la$6A
carga
OpCode
Saltar
en ely Registro
Formato.
a la direccin
deInfo.
Instruccin.
$856C.
Adicional?
A continuacin
Modo de Direccionamiento Stack Pointer
Control de Programa
Existen
unas
instrucciones (Control
de Programa) en los
procesadores que
permiten cambiar el flujo
de ejecucin en el
programa: condicionales,
incondicionales y
subrutinas.
Programa
Esperando orden
Recibir datos
No
Validar
Datos
Si
Procesar
Control de Programa
Cada
Salto
Instruccin
Relativo:
La
Direccin
Desplazamiento
instruccin
no dice
Absoluta
a que
$5000
$10
direccin
de
memoria
hay
que
saltar,
Otra
Instruccin
del
HC08
Enlos
los
HC08: Bcc
o HC08
BSR
En
HC08:
JMP,
JSR
Otra
Instruccin
del
Salto
relativo
alalde
Salto
relativo
simplemente entrega un valor constante
Salto
absoluto
Salto
absoluto
PC
PC
8 bits que, sumado al PC, da la direccin
Instrucciones
de
de
salto
Instrucciones
de
Instruccin
desaltar.
salto
dondeInstruccin
hay
que
salto
condicional
incondicional.
Instruccin
Instruccinde
de
Instruccin
de
Instruccin
de
salto
salto
condicional
incondicional.
saltoaasubrutina
subrutina
salto
aasubrutina
Salto Absoluto:
La instruccin entrega
la
direccin absoluta adonde se
salto
subrutina
eeincondicional.
incondicional.
debe saltar.
Control de Programa
Control
de Programa
Control de Programa
Salto
Banderas
delsin
registro
Nmeros
signo.CCR.
BCC
y BCS:
si Cgrande.
= 0 C = 1.
BHI:
SaltoSalta
si Mas
BEQ y BNE: Salto si Z = 1 (Igual) Z = 0 (No igual).
Nmeros
Otras.
con signo.
BGE:
Salto
o igual
a.
BIH y BIL:
SaltasisiMayor
IRQ = que
1 IRQ
= 0.
BGT: ySalto
si Mayor
BRSET
BRCLR:
Salta sique.
el bit n de (M) = 1 0.
Formato
BLE:
Instruccin
Salto de
si Menor
quedeoestas
igualinstrucciones?
a.
BLT:
Control de Programa
Salto
BRA
: Salto relativo.
JMP: Salto absoluto.
BRA:
desp.
JMP: Carga en el PC la direccin
absoluta.
Control de Programa
Salto
BSR:
Almacena en la pila el valor del PC (Sgte. Inst.).
Carga en el PC el valor (PC) + desplazamiento.
Se retorna con la instruccin RTS.
JSR:
Almacena en la pila el valor del PC (Sgte. Inst.).
Carga en el PC la direccin absoluta.
Se retorna con la instruccin RTS.
A continuacin
Modo de Direccionamiento Stack Pointer
cero
M.D. Indexado a Directo, con posincremento.
MOV ,X+, $40 ; 2 bytes, 5 ciclos de reloj.
M.D. Directo a Indexado con pos-incremento
MOV $50, X+ ; 2 bytes, 5 ciclos de reloj.
A continuacin
Modo de Direccionamiento Stack Pointer
VREF_LOWEl
ERCLKEN
MCGERCLK
IRCLKEN
Clock
monitor
Internal
reference
clock
IREFS
MCGIRCLK
DCO: 1024
veces la
frecuencia
de
IREFSTEN
entrada
CLKS
BDIV
2n
n = 0-3
MCGOUT
PLLS
TRIM
2n
n = 0-7
Factor de
FLL
multiplicacin
configurable
Lock
detector
MCGFFCLK
2
RDIV
PLL
MCGLCLK
Bouncing time
10-50ms. It depends quality of the switch
Switch S1 is released
;
;
;