Post on 29-Jun-2015
Electrónica & Computadoras • N° 63 17
Motorola. MC68HC908JK3/JK1
En el pasado, las tecnologías exis-tentes en el mercado obligaban a peque-ños o medianos industriales a invertirmucho dinero en equipos adicionales almicrocontrolador, como son los borra-dores ultravioleta, programadores, y enalgunos casos, en un buen software queles permitiera editar, ensamblar, simu-lar, realizar conecciones y programarlo.
Los nuevos microcontroladores ylas herramientas de desarrollo disponi-bles para los usuarios de 8 bits de MO-TOROLA , permiten todas estas facili-dades mediante un programa interno de
fábrica, que permite iniciar proyectosde forma muy sencilla y rápida y sinningún costo adicional.
Breve descripción del micro-controladorEl MC68HC908JK3 es uno de losmiembros de la familia 08 de Motoro-la, caracterizados por su bajo costo yalto desempeño. Todos los miembrosde esta familia utilizan la unidad de pro-cesamiento denominada CPU08 y es-tán disponibles en una gran variedad depresentaciones (20, 28 y 40 pines) y endiversos tamaños de memoria de pro-
grama (1.5K, 4K y 32K). Dentro de lasprincipales características de estos mi-crocontroladores es que son de memo-ria Flash (borrable y programable eléc-tricamente) además de contar con 10canales de conversión de analógico adigital (ADC). En la tabla 1 se puedenobservar las características más impor-tantes de la CPU08 y en la tabla 2 lascaracterísticas del microcontroladorMC68HC908JK3, (por sencillez JK3).
Descripción de pines del JK3En la figura 1 se puede observar la dis-tribución de pines del microcontrolador
Sin invertir grandescantidades de tiempo ydinero en borradores,programadores o software,las tecnologías actuales demicrocontroladores de 8 y16 bits de MOTOROLA ,permiten que los usuariostengan rápidamente unlaboratorio donde puedandesarrollar sus aplicacionesen un menor tiempo y conuna mayor confiabilidad.
Sistema de desarrollopara
microcontroladormicrocontrolador
MC68HC908JK3/JK1MC68HC908JK3/JK1GUSTAVO A. GALEANO
info@propuestadinamica.com
JUAN ANDRÉS CASTAÑO WELGOS
welgos@telesat.com.co
Motorola. MC68HC908JK3/JK1
MotorolaMotorola
Electrónica & Computadoras • N°6318
PROYECTO
Mapa de memoriaEn la figura 4 se muestra el mapa dememoria completo del JK3. Allí se en-cuentran las direcciones de los regis-tros internos, la posición que ocupa laRAM y la parte asignada al programadel usuario. De igual manera, se ob-serva la zona en la cual se encuentraalmacenado el programa de fábrica(ROM MONITOR) que nos permiterealizar simulación, debug y programa-ción del microcontrolador. En la zonaalta de memoria se encuentran los vec-tores de interrupción y en ellos se en-cuentra la dirección (2 bytes) con lacual se carga el contador de programa(PC) cuando se presenta alguna de lasinterrupciones.
Sistema de desarrolloEl proyecto que realizaremos consiste enun sistema de desarrollo que soporta losmicrocontroladores JK3 y elMC68HC908JK1 (JK1) de la familia08 de MOTOROLA . Este proyecto sepuede adquirir bajo la referencia K-218de CEKIT . En la figura 5 se observa laconexión básica con la computadora.
El sistema consta de un software yde una tarjeta en la cual se inserta elmicrocontrolador con los elementosbásicos para su funcionamiento; la guíade montaje de esta tarjeta se puede apre-ciar en la figura 6. Posee entrada paraalimentación de DC, conversores denivel TTL a RS-232 que permiten co-nexión serial a una computadora parasimulación y programación, circuito os-cilador basado en cristal y LED rojoindicador de alimentación.
El jumper J1 selecciona el modo defuncionamiento. En la posición «PROG»el sistema arranca en modo SIMULA-CION-PROGRAMACION, permitien-do mediante el software instalado, reali-zar simulación y posterior programacióndel chip. J1 en la posición «APP» per-mite que el sistema arranque en modoaplicación; es decir, ejecuta el programagrabado por el usuario.
SW1 es un suiche de dos polos y dosposiciones, que permite remover la ali-mentación completa del sistema cuandoel software del PC así lo solicite paravalidar el código de seguridad interno del
RST
PTD4
PTD5
PTD2
PTD3
PTB0
PTB1
PTB2
PTB3
PTB4
IRQ1
VSS
OSC1
OSC2 / PTA6
VDD
PTB7
PTB6
PTB5
PTD7
PTD6
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
Características de la CPU08
Un modelo de programación muy completo, con registro de 16 bits.
Set de instrucciones muy amplio y varios modos de direccionamiento.
Registro de 16 bits y stack pointer manipulable por el usuario.
Instrucciones de transferencia de Memoria a Memoria
Instrucciones de Multiplicación rápida de 8x8
Instrucciones de División rápida de 16/8
Instrucciones de BCD (Binary Coded Decimal)
Fácil soporte de lenguajes de alto nivel como el C.
Características de la CPU08
Un modelo de programación muy completo, con registro de 16 bits.
Set de instrucciones muy amplio y varios modos de direccionamiento.
Registro de 16 bits y stack pointer manipulable por el usuario.
Instrucciones de transferencia de Memoria a Memoria
Instrucciones de Multiplicación rápida de 8x8
Instrucciones de División rápida de 16/8
Instrucciones de BCD (Binary Coded Decimal)
Fácil soporte de lenguajes de alto nivel como el C.
Características de la CPU08
Un modelo de programación muy completo, con registro de 16 bits
Set de instrucciones muy amplio y varios modos de direccionamiento
Registro de 16 bits y stack pointer manipulable por el usuario
Instrucciones de transferencia de Memoria a Memoria
Instrucciones de Multiplicación rápida de 8x8
Instrucciones de División rápida de 16/8
Instrucciones de BCD (Binary Coded Decimal)
Fácil soporte de lenguajes de alto nivel como el C
Características del MCU JK3:
CPU 08 de 8 bits
Operación interna a 8 MHz
Rango de operación desde 3V
LVI: protección de bajo voltaje.
4 K Bytes para memoria de programa (FLASH)
128 bytes de memoria RAM
10 canales de análogo a digital de 8 bits
15 Entradas/Salidas
2 temporizadores (timers) de 16 bits (Salida por comparación y/o entrada de captura)
Software 100% compatible con el de la familia 05
Versiones HC (cristal o resonador) y HRC (Resistor y capacitor)
Modos de bajo consumo (STOP y WAIT)
COP (Watchdog): perro guardián
8 fuentes de Interrupciones (totalmente vectorizadas)
Pulldowns programables por puerto de entrada
JK3 y en la tabla 3 la función que des-empeña cada uno de ellos.
Arquitectura interna del JK3 ymodelo de programación de laCPU08En la figura 2 se puede apreciar undiagrama interno del microcontroladory en la figura 3 se muestran los regis-tros internos de la CPU08 mediante loscuales se procesan las instrucciones, losoperandos y los resultados. La función
básica de cada uno de ellos se describea continuación.
Acumulador (A): Es un registro de 8bits de propósito general usado en lasoperaciones aritméticas y lógicas.
Registro índice (H:X): Es un registrode 16 bits utilizado como apuntador enel modo de direccionamiento indexado.
Puntero de pila (SP): Es un registrode 16 bits que contiene la dirección dela posición disponible en el stack.
Contador de programa (PC): Es unregistro de 16 bits que contiene la di-rección de la siguiente instrucción uoperando a ser procesado.
Registro de banderas (CCR): Es unregistro de 8 bits que contiene el bitde enmascarado general de interrup-ciones y 5 banderas de estado, lascuales indican ciertas condicionesoriginadas por la instrucción previa-mente ejecutada.
Tabla 1
Tabla 2
Figura 1. Diagrama de pines del integra-do en su presentación de 20 pines
68H
C90
8JK
3
Electrónica & Computadoras • N° 63 19
Motorola. MC68HC908JK3/JK1
micro. El pulsador RST está conectadoa la señal de reset del micro permitiendoel control por el usuario de esa función.
J3, J4 y J5 corresponden a tres delos pines del microcontrolador (PTB3PTB2 y PTB1); para poder entrar almodo simulación-programación, ellosdeben tener colocado el jumper respec-tivo. Si el usuario utiliza estos pines ensu aplicación, deberá remover los jum-pers cuando arranque el sistema enmodo aplicación (J1 en posición APP).
La tarjeta posee un conector en lí-nea macho de 3 pines (CN2), el cual per-mite la conexión directa al PC (para si-mulación-programación) y mediante losconectores en línea CN3, CN4 y CN5 setiene acceso a todos los pines del chip,con los cuales podemos conectar el sis-tema de desarrollo a nuestra aplicación.
Adicionalmente, el sistema cuentacon un LED verde conectado a uno delos pines del microcontrolador (PD7) yun jumper que conmuta entre +VDD ytierra conectado al pin PB5; medianteestos dos elementos ilustraremos elmanejo de salidas y entradas.
EnsambleCon la guía de ensamble de la figura 6 yla lista de materiales, realice el montajede los componentes en el impreso de re-ferencia K-218. Tenga precaución de sol-dar primero los componentes de bajo ni-vel, tales como resistencias y condensa-dores; después puede continuar con lostransistores y demás elementos. Al fina-lizar, remueva los excesos del fundentede la soldadura con algún limpiadorelectrónico de contactos o con thinner.
PDT
DDRD
PTB
DDRB
PTD [7:2] PTB [7:0]
Control de CPU ALU
CPU 68HC08
Acumulador
Registro índice
STK PNTR
Contador de programa
V 1 1 H I N Z C
128 bytes deRAM
4096 bytes deROM/FLASH del
usuario
Módulo deintegración del
sistema
Módulo de modoSELECT
Módulo de BREAK
Módulo dePOWER ON
RESET
Módulotemporizador
de 16 bits
Módulo de COP
ROM monitor de960 bytes
Módulo degenerador de reloj
y oscilador RC
Fuente dealimentación yregulador de
voltaje
8 bi
ts A
DC
ADC [0:7]/PTB [0:7]
ADC [8:11]/PTD [3:0]
TCH0/PTD4
TCH1/PTD5
IRQ1
RST
OSC1
VDD
VSS
OSC2/RCCLK/PTA6
Nivel devoltaje
Nombredel pin
Descripcion Entrada/salida
VDD Alimentación positiva Entrada 5v ó 3vVSS Tierra Salida 0vRST Reset activo en bajo Entrada VDD
con resistencia interna de pull-upIRQ1 • Interrupcion externa Entrada VDD
• Posee resistencia interna de pull - up• Pin usado para seleccionar el modo de arranque (programación o aplicación)
OSC1 Entrada del oscilador Entrada AnálogoOSC2 Salida del oscilador Salida AnálogoPTB (0:7) • Puerto I/O de 8 bits Entrada/salida VDD
• 8 entradas análogas, ADC(0:7) Entrada AnálogoPTD (2:7) • Puerto I/O de 6 bits Entrada/salida VDD
• PTD (3:2) 2 canales de ADC, ADC(8:9) Entrada Análogo• PTD (4:5) 2 pines de temporizador Entrada/salida VDD• PTD (6:7) salida en colector Entrada/salida VDD abierto de máximo 25 mA
Realice el ensamble del cable de in-terfaz con la computadora, haciendo lospuentes como se ilustra en la figura 7(en el conector DB9: el pin 4 unido conel pin 6 y el pin 7 unido con el pin 8).En la figura 9 se muestra el aspecto fí-sico de la tarjeta.
Pruebas iniciales de la tarjetaPara hacer las primeras pruebas a latarjeta, puede seguir el siguiente pro-cedimiento.
Figura 2. Diagrama de bloques internos del microcontrolador Motorola 68HC908JK3
Tabla 3. Descripción de las funciones de cada uno de los pines
Electrónica & Computadoras • N°6320
PROYECTO
1. Sin el microcontrolador JK3, alimen-tar el circuito con un adaptador de12VCD con terminación redonda.Tenga precaución con la polaridad: elterminal externo debe ser el positivo(+) y el terminal interno, el negativo(-) o conexión de tierra.
2. Realice la medida de voltaje entreTP4 (GND) y TP3 (5V), debe seralrededor de 5 VDC; de lo contra-rio revise el montaje del circuito.Realice la medida de voltaje entreTP4 (GND) y TP2 (IRQ); debe seralrededor de 8 VDC; de lo contra-rio revise el montaje del circuito.
3. Remueva la alimentación de la tarje-ta y coloque el micro JK3 en la base.
Registros Internos(64 bytes)
No usada
RAM(variable stack)
(128 bytes)
No usada
Memoria Flash(Programa de usuario)
(4096 bytes)
ROM monitor
ADC Fin conversión (H)
ADC Fin conversión (L)
KBI (H)
No usado
Overflow Timer (H)
Overflow Timer (L)
Timer Canal 1 (H)
Timer Canal 1 (L)
Timer Canal 0 (H)
Timer Canal 0 (L)
No usado
IRQ H
IRQ L
Interrupción SWI (H)
Interrupción SWI (L)
RESET (H)
RESET (L)
KBI (L)
$ 0000
$ 003F
$ 0000
$ 00FF
$ EC00
$ FBFF
$ FFDE
$ FFE0
$ FFF2
$ FFF4
$ FFF6
$ FFFA
$ FFFC
$ FFFE
Vec
tor
de in
terr
upci
ón
Puertos yregistros de
configuración
No usado
7 0
Acumulador (A)
015H X
015H X
015
7 0V 1 1 H I N Z C
Registro Indice (H:X)
Apuntador a la pila (SP)
Contador de programa
Registro de banderas
Bandera de acarreo
Bandera de cero
Bandera de resultado negativoBandera de interrupción
Bandera de acarreo medioBandera de sobreflujo
Lista de materiales
Figura 3. Estrcuctura de los registros internos y ubicación de las banderas
Figura 4. Mapa de la memoria internadel microcontrolador
Resistencias 1/4 w, 5%R1 10 MΩR2 10 ΩR3, R4 R5, R6 10 KΩR13, R15, R16 10 KΩR7 100 KΩR8, R10 470KΩR9, R11 3.3 KΩR12, R14 100 Ω
CondensadoresC1, C8 22uF / 50V electrolíticosC2, C3, C6, C7 104 / 50V cerámicos (0.1µF)C4, C5 22pF / 50V cerámicos
SemiconductoresD1 Diodo LED Rojo 3mmD2 Diodo LED Verde 3mmD3 Diodo rectificador 1N4148Q1 Transistor NPN 2N2222Q2 Transistor PNP 2N2907
Circuitos IntegradosIC1 Microcontrolador MC68HC908JK3CPIC2 Regulador 78L08 (ó LM7808)IC3 Regulador 78L05 (ó LM7805)IC4 Compuerta 74HC125 (ó 74LS125)
ConectoresCN1 Conector hembra adaptador de corriente terminal redondoCN2 Conector blanco 1x3 VerticalCN3 (opcional) Conector blanco 1x4 VerticalJ1 Conector para jumper de 3 pines en línea.J2, J3, J4, J5 Conector para jumper de 2 pines en línea.Conector DB9 Hembra
Accesorios electromecánicos y otrosSW1 Suiche 2 polos 2 posiciones pequeñoX1 Cristal 4.9152MHz (ó 5MHz)RST Pulsador reset negro 4 pinesTP1, TP2, TP3, TP4, TP5 Espadines para puntos de pruebaCarcaza plástica para DB91.5 mt de cable de 3 ó más líneasBase maquinada 20 pines 0.3"5 Jumpers (o micropuentes)Circuito impreso K-218
Electrónica & Computadoras • N° 63 21
Motorola. MC68HC908JK3/JK1
CN1 CN2 CN3
5
4
3
2
1
9
8
7
6
DB9
Diagrama pictórico
555IC1
R4
R3
Q1
SP1
C1
R2
R1
Tarjeta
PC
Aplicación
de comandos del software (inferior iz-quierda) y modifique el estado delpuerto D del MCU pin PD7; para estose debe colocar el pin como salida co-locando en el registro DDRD del MCUel valor $80 (hexadecimal), (coman-do: DDRD 80) y a continuación, elvalor del pin en el registro PORTD delMCU en el estado requerido (paranuestro caso en “1” lógico), (coman-do: PORTD 80). Después de la eje-cución de estos dos comandos, el LEDD2 debe encenderse, indicando la co-nexión adecuada (de manera similarse pueden evaluar las demás salidasdel proyecto en particular).
8.La simulación de programas puede ha-cerse sin la conexión del circuito, ac-
Software de desarrolloEl software mediante el cual se puederealizar edición, ensamblado, simulación,programación y debug es completamen-te gratuito y puede ser bajado de internetvisitando la página www.pemicro.com(link: Motorola M68HC908 Kits). Ladocumentación del microntrolador y no-tas de aplicación para el manejo de todoslos módulos internos del procesador, sepueden encontrar en www.mot-sps.com.Para manipular este sistema, tenga encuenta el siguiente procedimiento.
1. Instale el software ICSJL de pemicro.2.Para verificar el funcionamiento de
la tarjeta con el software ICSJL , co-necte el circuito al puerto serial de lacomputadora (DB9) y ejecute el pro-grama ICS08JLZ Development Kit> WinIDE Development Environ-ment. Allí se accede el segundo íco-no de izquierda a derecha (In-Cir-cuit Simulator (EXE1)),figura 10.
3. Elija el puerto por el cual fue conec-tada la tarjeta y 9600 Baud como ve-locidad de comunicación, figura 11.
4.Remover la selección del Checkbox“Serial Port DTR controls targetpower”, para que el software le indi-que cuándo encender y apagar el cir-cuito (esto es necesario para validarel código de seguridad, en caso que elMCU esté programado previamente).
5.Presionar el botón RETRY , para in-tentar comunicación con el circuito,si no obtiene comunicación luego devarios intentos de encendido y apa-gado, revise el circuito cuidadosa-mente y repita el proceso.
6.Al obtener comunicación con el cir-cuito, debe aparecer en la pantallauna nueva interface, en la que se tie-nen ventanas de puertos, zonas dememoria y programa en assembler,el cual puede ejecutarse paso porpaso en la tarjeta, figura 12.
7.Para ilustrar la evaluación del hard-ware con la ayuda del softwareICSJLZ , el circuito provee una sali-da (LED D2) y una entrada (JumperJ2). Coloque y remueva el Jumper J2de la tarjeta. Este cambio debe versereflejado en la zona de puertos delsoftware (esta es la forma como sepueden evaluar que las entradas de suproyecto funcionan adecuadamente).Para evaluar la salida acceda la línea
Figura 5. Conexión básica de la tarjeta con la computadora y con la aplicación
Figura 6. Guía de montaje del K-218
Figura 7. Cable que se conecta alpuerto serial del PC para comunicarsecon la tarjeta. Tenga mucho cuidadoal realizar las conexiones, de locontrario la tarjeta no se podrácomunicar a la PC
Conexiónhacia la
computadora
Selecciónentreaplicación yprogramación
Este Jumper conecta un 1por un puerto para efectosde prueba
EstosJumpers seinstalan sólocuando seprograma eldispositivo
LED paraprobar lasalida de
datos
Alimentación
Interruptor para establecercomunicación con la PC
Electrónica & Computadoras • N°6322
PROYECTO
Figura 8. Componentes necesarios para el ensamble dela tarjeta. Todo este conjunto lo puede adquirir bajo lareferencia K-218 de CEKIT S.A.
Figura 9. Aspecto final de la tarjeta ensamblada
Figura 10. WINIDEes el programa quepermite la edición delos programas yademás integrar enun solo entorno losprocesos de ensam-blaje o compilación,programación ydepuración
Figura 11. Paraentrar al simulador sedebe configurar elpuerto serial a unavelocidad de 9600Baudios y deshabili-tar la opción " SerialPort DTR controlstarget power"
Ensamblar/ compilar
Simulador en el circuito
Programador
Depurador en elcircuito
Simulación
Ventana de edición delprograma
Deshabilitaresta opción
Establecer estavelocidad de
comunicación
Configurar el puertode su computadora,ya sea en COM1 o
en COM 2
Electrónica & Computadoras • N° 63 23
Motorola. MC68HC908JK3/JK1
$Include ‘jl3regs.inc’ ; Archivo de definición de registros del 68HC908JK3.
FLASH_START_JK3 equ $EC00 ;dirección de inicio de la flashRESET_VEC equ $FFFE ;dirección del vector de reset
;definición de bitsCOPD equ 0 ;bit de CONFIG1 para habilitar/deshabilitar el watchdogPD7 equ 7 ;bit de conexión a la salida (Led D2)PB5 equ 5 ;bit de conexión de la entrada (jumper J2)
org FLASH_START_JK3Start:
Rsp ;inicializa stack pointerBset COPD,CONFIG1 ;desabilita el COP (watchdog)Bsr Init_Led ;realiza llamado a la subrutina de estado inicial del
led
LoopD:Brset PB5,PORTB,Half1 ;verifica el estado de la entrada J2Lda #255T ;carga el AccA con el valor 255 decimalBra Dly1Half1: Lda #70T ;J2 colocado ‡ carga el AccA con un valor menorDly1: Bsr Delay ;invoca subrutina de retardo
Deca ;decrementa el AccABne Dly1
Bsr Led_ON ;enciende Led D2
Brset PB5,PORTB,Half2 ;verifica el estado de la entrada J2Lda #255T ;carga el AccA con el valor 255 decimalBra Dly2Half2: Lda #70T ;J2 colocado ‡ carga el AccA con un valor menorDly2: Bsr Delay ;invoca subrutina de retardo
Deca ;decrementa el AccABne Dly2
Bsr Led_OFF ;apaga Led D2
Bra LoopD
Led_OFFBclr PD7,PORTD ;PD7 en 0RTS
Led_ON:Bset PD7,PORTD ;PD7 en 1RTS
;subrutina de retardo básicaDelay
ldhx #$FFFE ;carga registro doble H:X con valor inicialLoop1 Aix #-1 ;decrementa el registro H:X
Cpx #0 ;compara con 0Bne Loop1 ;si no ha llegado continua el retardoRTS ;retorna del llamado
Init_Led:Bset PD7,DDRD ;establece el pin PD7 del MCU como salidaBclr PD7,PORTD ;apaga el led D2RTS ;retorna de la subrutina
Org RESET_VECDw Start ;al darse reset salta a Start
cediendo el botón SIMULATIONonly (esta simulación es recomendablepara zonas de programa que no tenganinteracción directa con el hardware).
En la figura 13 se muestra una ta-bla resumen de todo el conjunto de ins-trucciones que puede utilizar para pro-gramar este tipo de dispositivos.
Programa ejemploEl ejemplo que ilustramos a continua-ción consiste en un sencillo programaque varía la frecuencia de oscilación deencendido del LED D2, dependiendodel estado de la entrada J2 (jumperpuesto, menor frecuencia de oscila-ción). Para la programación del MCUcon el programa ejemplo, utilice los pa-sos que siguen a continuación.
1.Acceda el tercer icono del softwareWinIDE Development environment(programmer (EXE2)).
2.Cargue en memoria el algoritmo deprogramación del MCU JK3(908_JK3.08p).
3.Especificar el archivo a programar enel icono 7 (de izquierda a derecha elícono con disquete).
4.Borrar el MCU presionando el icono6 (de izquierda a derecha el icono conborrador sobre el chip).
5.Programar el chip presionando el ico-no 8 (de izquierda a derecha el iconode rayo sobre el chip).
6.Para ensayar el programa en la tarjeta,cambie el jumper J1 de la posición 2-3 (PROG) a la posición 1-2 (APP),desenergice y energice la tarjeta nue-vamente para proporcionar un reset.
7.Para volver al modo simulación in-circuit y programación, cambie J1 dela posición 1-2 (APP) a la posición2-3 (PROG), remueva la alimenta-ción y colóquela nuevamente.
Páginas donde se puede encontrarinformación adicional sobre estos mi-crocontroladores:
Ventana delcomportamientode las variables
Figura 12. Pantallazo del simulador ICS08SL. Esta aplicación permite simularlos programas en el circuito
Mapa de lamemoria
Entrada decomandos
Ventanadel código
Ventanade estado
Estado de laCPU
http://ebus.mot-sps.com/ProdCat/psp/
www.digitaldna.com
w w w. m o t - s p s . c o m / p r o d u c t s /index.html
Ω
Electrónica & Computadoras • N°6324
PROYECTO
Figura 13. En esta tabla se muestra el Set de instrucciones de este microcontrolador, incluyendo el número de ciclosde máquina que gasta cada una de ellas