Temas Varios del HC908...
|
|
- Sandra Poblete Córdoba
- hace 8 años
- Vistas:
Transcripción
1 Temas Varios del HC908...
2 Memoria FLASH de los Programable en circuito por medio de un solo pin ( PTA0 / PTB0 según el MCU) Reprogramable en circuito sin tensión elevada externa (funciona con la misma VDD (3V a 5V) Puede ser usada como memoria de datos temporales similar a una EEPROM (del tipo 93Cxx / 24LCxx) ciclos de Escritura / Borrado Mínimos garantizados (a 40 C, la peor condición) + de ciclos de Escritura / Borrado a temp. Ambiente (entre 20 y 30 C) Control de la programación por medio del registro FLCR ( Flash Control Register ) - HVEN -- Bit habilitación de la Bomba de Alta tensión p/ programación - MASS --- Bit habilitación de Borrado en Masa de la Flash (Mass Erase Control) - ERASE -- Bit habilitación para el Borrado de la Flash ( interconectado con el bit PGM para evitar que ambos estén en 1 al mismo tiempo - PGM ---- Bit de control de programación de la Flash ( interconectado con ERASE ) Tiempo de borrado en MASA ( 32K ) = 4 mseg. Tiempo de programación de una fila = 1 mseg.
3 Memoria FLASH de los La memoria Flash está dividida en PAGINAS de 128 Bytes por página (para el GP32) El mínimo tamaño de memoria a borrar es una PAGINA osea 128 Bytes (para el GP32) El borrado de la FLASH se hace de página en página o en forma masíva (MASS ERASE) La escritura de la flash está organizada en FILAS de 64 Bytes por FILA (para el GP32). Una PAGINA es equivalente a 2 ( dos ) FILAS. Se escribe por FILAS en la FLASH de los HC La escritura se hace desde código escrito en RAM o ROM y NO sobre código en FLASH!!! Tengo que transferir el código escrito en FLASH a RAM y ejecutarlo desde allí o si el MCU tiene en su ROM las sub-rutinas de manejo de la FLASH (casi todos los HC908 las tienen), se invoca a estas desde el código en FLASH (ver nota de aplicación AN-1831 de Freescale). Existe un mecanismo de protección contra escritura involuntaria muy efectivo - El registro FLBPR ( Flash Block Protect Register ) posee 8 Bits que permiten la protección de bloques de memoria a partir de una dirección prefijada por los mismos hasta el FIN DEL MAPA DE MEMORIA o sea $ FFFF Si se habilita el LVI, se garantiza la NO CORRUPCION de la memoria FLASH Ver secciones FLASH Memory & Monitor ROM (MON08) en el manual del MCU elegido.
4 LVI (Low Voltage Inhibit) ó supervisor de Tensión Produce un RESET por detección de baja tensión de VDD. Identificable por medio del flag LVI en el SRSR (SIM Reset Status Register) Trip point (punto de disparo) ajustable por soft para funcionamiento en 3 y 5V de VDD (2 puntos de disparo), registro CONFIG1, bit LVI5OR3. Histéresis incorporada en el comparador (asegura reposición cuando VDD está O.K) Mantiene al MCU en estado de RESET (no operativo) si la tensión es inferior al mínimo establecido El módulo puede habilitarse / deshabilitarse por soft en el registro CONFIG1 por medio del bit LVIPWRD. Puede generar un RESET o una indicación (Modo Polled ) por medio del registro CONFIG1 de la siguiente forma: - Modo RESET: en CONFIG1 --- LVIPWRD = 0 & LVIRSTD = 0 - Modo POLLED ó poleado : en CONFIG1 --- LVIPWRD = 0 & LVIRSTD = 1 Ver secciones Configuration Register (CONFIG) y Low Voltage Inhibit (LVI) del respectivo manual del MCU elegido.
5 TBM ( Time Base Module ) ó Módulo de Base de Tiempo Base de Tiempo independiente del CPU, no lo utiliza para su funcionamiento. Produce una interrupción periódica según lo programado en un registro (TBCR) La fuente del clock es el cristal de 32,768 Khz que se utiliza en el PLL Tiempos de interrupción de 1Hz, 4, 16, 256, 512, 1024, 2048, y 4096 Hz programables por medio de los bits TBR2 / TBR1 / TBR0. El registro TBCR ( Timebase Control Register ) controla el funcionamiento y habilitación del mismo. Util para generar un RTC (Reloj de Tiempo Real) o para despertar periodicamente al MCU de un estado WAIT o STOP, garantizando así un muy bajo consumo de energía, para aplicaciones que lo requieran. Ver sección Timebase Module (TBM) en el manual del MCU elegido.
6 Uso de la memoria FLASH de los MCUs HC08 para el Almacenamiento de Datos Temporales. Por el Ing. Daniel Di Lella, EduDevices.com.ar (Documento disponible en el CD ROM) Una pregunta común cuando se comienza a trabajar con la familia de los nuevos microcontroladores HC08 FLASH de Freescale o bién cuando se está por decidir la Migración a uno de estos interesantes MCUs, es si es posible utilizar la memoria Flash de los mismos no solo para "grabar" programas en ella (memoria de programa) sino además para "almacenar" datos temporales (variables temporales, seteos, tablas transitorias, etc.) como si se tratara de una memoria "EEPROM" o similar NO - Volatil. En los MCUs OTP ROM (One Time Programming ROM) esto era SOLO posible con el agregado de una memoria "externa" del tipo serial de 8 pines como las 93Cxx.. La memoria FLASH de 2da y 3era. generación que poseen los MCUs HC08 es ideal para reemplazar ventajosamente el uso de memorias EEPROMs externas por los siguientes motivos: Al no utilizarse un chip externo de memoria, se dispone de mayor cantidad de Pines I/O para usos generales y NO para el control de la memoria. Ahorro en el costo del chip externo de memoria y en el espacio de PCB a utilizar. Flexibilidad en el tamaño de la memoria a utilizar (se utiliza solo lo necesario, dejando el resto para la memoria del programa). Circuitos adicionales integrados en el MCU como el LVI (Low Voltage Inhibit), necesarios para asegurar un funcionamiento confiable en sistemas con memoria No - Volatil.
7 Existen dos modos de "grabar" la memoria FLASH de los MCUs HC908, a saber: 1) En el "Modo Monitor", que es un modo muy particular que poseen estos MCUs, puede grabarse la memoria flash de estos, además de emplearse este modo para el "debugging" en tiempo real de programas. Este modo permite la actualización del programa contenido en la memoria Flash aún cuando el chip se encuentre soldado a la placa del usuario. Esta modalidad se la conoce con el nombre de In - Circuit Programming (I.C.P.) 2) En el "Modo Usuario", que es el modo de funcionamiento normal del MCU, (en el cuál se correrá el programa implementado por el usuario), es posible alterar el contenido de la memoria flash, sin necesidad de tensiones o uso de pines especiales para tal fin. El primero de los modos, es ideal cuando se requiere grabar un programa (aplicativo) en la memoria de un dispositívo "virgen" (de fábrica o borrado totalmente) durante la producción o desarrollo y durante posteriores "actualizaciones" (revisiones) del software originalmente implementado en el mismo. Para este modo, existen herramientas de software y hardware (PROG08SZ, FLASH_POD, EVAL08QTY, EDUKIT08, etc.) que facilitan la Programación En - Circuito (I.C.P.) o la programación de la totalidad del chip para las operaciones anteriormente descriptas. En el segundo de los modos, y punto fundamental de nuestro artículo, puede utilizarce la Flash para almacenar datos "temporales" en memoria No - Volátil, con similares prestaciones a los chips EEPROM comunmente utilizados para tal fín. Si tenemos en cuenta la estructura interna de la memoria FLASH de los HC08, la misma NO permite su alteración por medio de código escrito en su propia memoria, dicho de otra forma, no es posible alterar la flash con código "corriendo" en la misma flash. Esto que en principio parecería un "inconveniente", garantiza (junto con otros recursos disponibles) la inalterabilidad de los datos ante programas del tipo "gusano" (que se "comen" código) frecuentes por errores en el programa u otras circunstancias.
8 Entonces, para alterar (grabar o Borrar) la flash, se dispone de dos (2) métodos, en el modo usuario: - Ejecución de Código desde RAM : Con este método, es posible grabar o borrar la memoria flash, con código "corriendo" desde memoria RAM del MCU, para ello el programa de usuario implementado en la flash, deberá incluir una sub-rutina que realice una "migración" (copia) de líneas de código desde la flash (estas líneas contendrán el código necesario para modificar la memoria flash) hacia la RAM. Una vez copiado el código, y cuando se quiera borrar o grabar la flash con algún valor, el programa del usuario deberá llamar al código en RAM como si fuera una o varias sub-rutinas, con la particularidad que su ubicación no es la usual, sino espacio RAM. Este método es común de usar en derivatívos de la flia. HC08 con memorias RAM superiores a los 128 Bytes, por ejemplo los 908GP32, 908MR32/24/16/8, 908SR12, Etc. La ventaja principal, radica en la facilidad que dispone el usuario para mejorar o modificar las sub-rutinas encargadas del borrado o grabación de la flash. La desventaja es que se ocupa temporalmente espacio de RAM, por lo que hay que tener cuidado de ello. - Ejecución de Código desde ROM (ROM "Monitor") : Con este método, es posible grabar o borrar la memoria flash, con código "corriendo" desde memoria ROM del MCU, para ello el programa de usuario implementado en la flash, deberá invocar por medio de un salto a sub-rutina, la dirección de comienzo de cada una de las sub-rutinas incluidas en la ROM de los distintos derivatívos de HC08 que poseean dichas rutinas. Los derivatívos que poseen estas rutinas en ROM son, por ejemplo, 908JL3, 908JK3, 908JK1, 908GR8, 908KX8 / KX2, 908JB8, etc.. En estos MCUs, la memoria RAM es del orden de los 128 Bytes o similar, por lo que no es aconsejable ejecutar código desde esta, por el poco espacio disponible para tal fin.
9 Para mayor detalle de funcionamiento de cada uno de estos métodos, se sugiere al lector consultar las siguientes notas de aplicación de Freescale : - AN AN - HK AN - HK AN1770 Estas notas se pueden obtener de los siguientes web site: En el presente artículo, se explicará un programa ejemplo de cómo utilizar las rutinas incorporadas dentro de la ROM monitor de algunos derivatívos de la flia. HC08. El programa se basa en la nota de aplicación AN1831 "Using MC68HC908 On - Chip FLASH Programming Routines" y en el mismo se utilizará un MC68HC908JK3, pero es valido su uso para otros dispositivos.
10 El Programa. En el programa "demo3jl", se efectua la "memorización" de datos temporales (variable Num_RAM auto-incrementada en cada corrida del programa) en un espacio reservado de la memoria FLASH (en este caso $EC00, pero podría ser cualquier dirección de la Flash), que en el comienzo posee $FF (en blanco) en toda su extensión ( TABLA ). Se utilizarán las sub - rutinas "PRGRNGE" y "ERARNGE" contenidas en la ROM. También se incluyó un "artilugio" para extender la "vida útil" de la Flash (que en condiciones normales, osea sin este artilugio, soporta unos ciclos grab. / borr a -40 C y más de entre 20 y 30 C) unas 64 veces más, ya que se irán desplazando los valores memorizados al próximo espacio "en blanco" disponible en la TABLA reservada para los valores temporales y solo se efectuará el borrado de la "página" cuando se complete la tabla (valores todos distintos de $FF). Debe hacerse notar, los espacios reservados para las variables utilizadas por las sub - rutinas en ROM en la RAM del MCU, para mayor detalle, se sugiere leer atentamente la nota AN1831 de Freescale.
11 ****************************************************************************** * DEMO3JL.ASM - PROGRAMA DEMO NUMERO 3 - FLASH PROGRAMMING * * SEMINARIO DE ACTUALIZACION MICROCONTROLADORES HC08 FLASH * * EduDevices.com.ar 2001 * * * * SE USARAN LAS RUTINAS CONTENIDAS EN LA ROM "MONITOR" SEGUN AN1831 * * DISPOSITIVOS JL3 / JK3 / JK1 * ****************************************************************************** *************** * EQUATES * *************** BASE 10T ; BASE DECIMAL POR DEFAULT INCLUDE 'jl3regs.inc' ; equates registros 68HC908JL3 RAM EQU $0080 ; Comienzo de la RAM para el JL3 DATSTRC EQU RAM+8 ; RAM para uso del "MONITOR ROM" RAMUSER EQU DATSTRC+7 ; Comienzo de la RAM p/ usuario DATAFLASH EQU $EC00 ; Comienzo de la FLASH para almacenar datos RomStart EQU $ED00 ; Comienzo de la ROM/FLASH para el programa VectorStart EQU $FFDE ; Comienzo tabla de vectores varios GETBYTE EQU $FC00 ; Sub-Rutina en ROM TX/RX un Byte x port RDVRRNG EQU $FC03 ; Sub-Rutina en ROM lectura y verif. de un rango ERARNGE EQU $FC06 ; Sub-Rutina en ROM borrado row / mass Flash PRGRNGE EQU $FC09 ; Sub-Rutina en ROM escritura datos en FLASH DELNUS EQU $FC0C ; Sub-Rutina en ROM DELAY "N" microsegundos
12 *********************** * VARIABLES EN RAM * ********************** ORG RAM ; Comienzo RAM para JK3 ; reservada hasta DATSTRC P/ uso ; rutinas ROM prog/erase FLASH. ORG DATSTRC ; RAM p/ uso en prog/erase flash CTRLBYT RMB 1 ; BIT 6 -- MASS FLAG, 1 -- mass erase CPUSPD RMB 1 ; CPU speed = 4 x Fop aprox. LADDR RMB 2 ; Last Address p/ Read o Write un rango DATA RMB 1 ; DATOS en RAM transitorios ORG RAMUSER ; RAM para uso del programa gral. Num_RAM RMB 1 ; Valor HEXA del numero ALMACENADO. AUX RMB 1 ; Variable auxiliar Gral. ******************** * FLASH DE DATOS * ******************** ORG DATAFLASH TABLA FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; comienzo tabla FLASH de 64 Bytes FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; al principio tendrá TODO con $FF FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; luego se ira llenando con valores FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; memorizados de esta DEMO FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; y vuelta a limpiarse. FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
13 ************************* * FLASH DE PROGRAMA * ************************* ORG RomStart ******************** * Config. del MCU * ******************** START MOV #$11,CONFIG1 ; Reg. CONFIG1->LVID=1,STOP=0,COPD=1 MOV #$00,CONFIG2 ; Reg. CONFIG2->IRQPUD,LVIT1,LVIT0=0 NOP NOP ; NOPs de delay aseguran configiguración. NOP MOV #$00,PTAPUE ; sin Rs PULL UP en PortA MOV #$00,PORTA ; PTA0 a PTA7->IN MOV #$00,DDRA MOV #$00,PORTA ; Fuerzo ceros al PORTA MOV #$00,PORTB ; PORTB todo como ENTRADA MOV #$00,DDRB ; MOV #$00,PORTB ; Fuerzo ceros al PORTB MOV #$00,PDCR ; PORTD Control register todo cero MOV #$00,PORTD ; PORTD todo como ENTRADA MOV #$00,DDRD MOV #$00,PORTD ; Fuerzo ceros al PORTD
14 ********************* * DESHABILITO * * CONV. A/D E * * INTERRUPCIONES * ********************* MOV #$1F,ADSCR ; ADC --- OFF MOV #$06,INTSCR ; IRQ1 --- DESHABILITADA!!! MOV #$06,KBSCR ; KBI --- DESHABILITADA!!! MOV #$00,KBIER SEI ; I MASK=1 --- INT's deshabilitadas ************************ * SETEO INICIAL DE * * VARIABLES * ************************ CLR Num_RAM ; LIMPIO VARIABLES
15 ************************************** * Busqueda en Flash del ultimo valor * * de la variable NUMERO y luego la * * traslado a RAM " Num_RAM " * * Busco ultimo valor en tabla flash * * distinto a $FF (lo uso como marca) * * TABLA --> 64 Bytes en Flash ($EC00) * ************************************** CLRH ;Limpio H (no se usa) (ver HC08) CLRX ;Limpio X para usarlo como puntero LDA TABLA,X ;Acc <-- tabla+x (inicio busqueda) STA Num_RAM ;Num_RAM con valor de tabla Searching CBEQX #$40,End_Search ;X=64? -> si -> termino busqueda CBEQA #$FF,End_Search ;sino sigo buscando hasta Acc=$FF STA Num_RAM ;guardo posible valor en RAM INCX ;INCR. X para apuntar a nuevo valor LDA TABLA,X ;Acc <-- nuevo valor de tabla BRA Searching ;sigo buscando!!! End_Search NOP
16 ***************************************** * INCREMENTO EL VALOR RESCATADO * * DE LA TABLA FLASH Y LO VUELVO * * A GUARDAR EN LA MISMA PERO EN * * EL PROXIMO LUGAR VACANTE!!! * **************************************** INC Num_RAM ; INCREMENTO EN 1 EL VALOR PARA JSR WR_FLASH ; LUEGO IR A GUARDARLO EN FLASH ENDLESS BRA ENDLESS ; LOOP SIN FIN P/ ESPERAR STOP MANUAL ******************************************************************* * WR_FLASH - SUB-RUTINA DE ESCRITURA DE DATOS EN FLASH * *, espacio reservado en TABLA ($EC00) * * para guardar la configuracion del sistema (NUMERO) (64 bytes para ello) * * Para el JK3 se borraran de a 64 bytes (page) y se grabara de a 1 byte por ciclo * * ya que no necesito mas que ello * ******************************************************************* WR_FLASH CLRH ; Limpio indice H (no se usa) CLRX ; Limpio puntero de TABLA flash NEWFLASH LDA TABLA,X ; ACC <- dato tabla a analizar CPX #$3F ; Se llegó al final de la tabla? BEQ ERAPAGE ; si es asi -> borrado de FILA! CMP #$FF ; SINO el byte de tabla es = $FF? BEQ WFLASH ; SI -> Write Flash INCX ; NO -> busco nuevo byte "virgen" BRA NEWFLASH ; con $FF p/ escritura en el.
17 *********************** * Invoco a rutina * * en ROM PRGRNGE * *********************** WFLASH STX AUX ; guardo X en AUX temporalmente CLRH ; Limpio indice H (no se usa) MOV #00,CTRLBYT ; CTRLBYT = 0 -> MASS ERASE = 0 MOV #10,CPUSPD ; CPUSPD=10 -> 4xFop -> 4x 2,45 LDHX #TABLA ; HX <- #TABLA, FIRST ADDRESS DESPLA LDA AUX ; CMP #$00 ; BEQ END_DESPLA ; AIX #+1 ; DEC AUX ; BRA DESPLA ; END_DESPLA STHX LADDR ; HX -> LADDR, LAST ADRESS LDA Num_RAM ; Num_RAM -> DATA, vuelco a RAM STA DATA ; Valor a guardar en FLASH!! LDA #$FF ; Debo escribir cualquier cosa STA FLBPR ; en el registro "FLBPR" antes... JSR PRGRNGE ; rutina en ROM "PRGRNGE" p/ wflash NOP ; DELAY P/ MEJORAR GRABACION NOP ; BRA VUEL_FLASH ; ******** retorno a ppal ******
18 ***************** * borro PAGE * * (64 BYTES) * * FLASH * ***************** ERAPAGE MOV #00,CTRLBYT ; CTRLBYT = 0 -> MASS ERASE -> P.E MOV #10,CPUSPD ; CPUSPD=10 -> 4xFop -> 4x 2,45 LDHX #TABLA ; HX <- comienzo pagina cero LDA #$FF ; STA FLBPR ; JSR ERARNGE ; Rutina en ROM "ERARNGE" p/ borrar NOP ; DELAY P/ MEJORAR BORRADO NOP ; NOP ; NOP ; MOV #00,CTRLBYT ; CTRLBYT = 0 -> MASS ERASE = 0 MOV #10,CPUSPD ; CPUSPD=10 -> 4xFop -> 4x 2,45 LDHX #TABLA ; HX <- #TABLA, FIRST ADDRESS STHX LADDR ; HX -> LADDR, LAST ADRESS LDA Num_RAM ; Num_RAM -> DATA, vuelco a RAM STA DATA ; valor a guardar en FLASH!! LDA #$FF ; STA FLBPR ; JSR PRGRNGE ; rutina en ROM "PRGRNGE" p/ wflash NOP ; NOP ; VUEL_FLASH RTS ; ****** RETORNO ********
19 ************************************************************** * INTERRUPT VECTORS TABLE - * * RESET / SWI / IRQ1 / ADC / Y NO ASIGNADOS ---> START * * KEYBOARD INTERRUPT VECTOR ---> START * * TIM1 OVERFLOW VECTOR ---> START * ************************************************************** ORG VectorStart dw START ; ADC Conversion Complete Vector dw START ; Keyboard Vector dw START ; (No Vector Assigned $FFE2-$FFE3) dw START ; (No Vector Assigned $FFE4-$FFE5) dw START ; (No Vector Assigned $FFE6-$FFE7) dw START ; (No Vector Assigned $FFE8-$FFE9) dw START ; (No Vector Assigned $FFEA-$FFEB) dw START ; (No Vector Assigned $FFEC-$FFED) dw START ; (No Vector Assigned $FFEE-$FFEF) dw START ; (No Vector Assigned $FFF0-$FFF1) dw START ; TIM1 Overflow Vector dw START ; TIM1 Channel 1 Vector dw START ; TIM1 Channel 0 Vector dw START ; (No Vector Assigned $FFF8-$FFF9) dw START ; ~IRQ1 dw START ; SWI Vector dw START ; Reset Vector FIN DEL PROGRAMA!!
20 Corriendo el programa en el sistema FLASH_POD Fig. 1 - Ventana de Memoria en el sistema FLASH_POD, donde se observa el Bloque de memoria "TABLA" totalmente borrado ($FF). Fig. 2 - La misma ventana, donde se observa el bloque de memoria, pero con sucesivas corridas del programa (posiciones de memoria grabadas).
21 Grabación de memoria FLASH en el MC908GP32 Por el Ing. Gabriel Dubatti Adaptación Ing. Daniel Di Lella, EduDevices.com.ar (Documento contenido en el CD ROM) Introducción: Como hemos visto anteriormente, es posible utilizar la memoria FLASH de los microcontroladores HC908 de Freescale para almacenar datos temporales No - Volátiles como si usaramos la típica configuración de EEPROM externa del tipo 93Cxx. En ese artículo, se mostró en detalle el uso de la memoria FLASH en los dispositivos de menos de 8Kbytes de memoria de programa flash., tales como los 908JL3 / JK3 / JK1 o 908KX8 / KX2, etc. En el presente artículo, trataremos en detalle la grabación y borrado de la memoria FLASH de MCUs HC908xx con memorias superiores a 8Kbytes como los 908GP32, 908MR32 / MR16, 908SR12, etc. En particular se eligió el 908GP32 como ejemplo de uso de la memoria FLASH como EEPROM. El MC68HC908GP32 es un poderoso microcontrolador de Freescale TM basado en la tecnología FLASH. Entre sus características más importantes figuran: 32 KBytes de memoria FLASH (con un ciclo mínimo de grabaciones a 20 C.) 512 Bytes de RAM SPI, SCI, 2 timers muy completos, etc. Protección contra lectura del código. DFAE For Freescale Products
22 El procesador tiene dos modos de trabajo básicos: monitor y usuario. Para ingresar en modo monitor el procesador debe tener el vector de reset borrado ($FFFF) o se debe aplicar una tensión elevada en el PIN de IRQ y poner algunos ports en un valor determinado. Luego se deben enviar los 8 bytes de seguridad, que si coinciden con los últimos 4 vectores grabados, permite la lectura y modificación de la FLASH y si no coinciden sólo permite un borrado masivo. Los utilitarios de grabación trabajan en este modo. Si no se ingresa en modo monitor, se está en modo usuario. Este artículo muestra como utilizar la memoria FLASH para grabar datos modificables durante la ejecución (modo usuario) como si fuera una memoria EEPROM. Organización de la memoria FLASH: La memoria FLASH está organizada en páginas de 128 bytes, permitiéndose la grabación mínima de 1 byte, el borrado mínimo de 1 página y el borrado completo (o masivo) en una sola operación. Se pueden grabar hasta 64 bytes (un row) por operación pero el algoritmo presentado aquí lo hace de a un byte por vez para utilizar el mínimo posible de RAM. Cuando un byte de la memoria está borrado se lee como $FF y sólo se le pueden grabar bits en 0. Para pasar un solo bit de 0 a 1, deben borrarse los 128 bytes de la página. Mientras se modifica la FLASH esta no puede ser utilizada. Esto obliga a ejecutar el código de grabación desde RAM (o ROM como ocurre en los otros micros de la familia como el JL3) y no pueden atenderse las interrupciones. El algoritmo presentado graba 1 byte en 100 microsegundos y borra una página (128 bytes) en 1 milisegundo. DFAE For Freescale Products
23 Los siguientes address están implementados en memoria FLASH: $ $FDFF (32256 bytes, páginas ) $FF7E (FLBPR, página 254) $FFDC - $FFFF (36 bytes, página 255) El registro FLBPR (FLash Block Protect) permite indicar hasta que página se puede modificar en modo usuario (255 = toda la memoria, 0 = nada), para impedir sobregrabar o borrar por accidente el programa. Este registro sólo puede modificarse desde modo monitor. Esto obliga a poner los datos que se deseen modificar en $8000 (y bytes siguientes) y el código a continuación (hasta $FFFF, cuidando de no usar una misma página para código y datos). Mediante el siguiente código se puede programar el valor correcto del registro: ;=================================================================== ORG $8000 ;Comienzo de la memoria FLASH Datos: ;... ; COLOQUE AQUI LOS DATOS A MODIFICAR... ; ;=================================================================== ORG {($+!127) & $FF80} ;Alinea a la siguiente pagina de ;128 bytes CodigoStart: ;Aqui comienza el codigo protegido... ;... ; COLOQUE AQUI SU CODIGO... ; ;=================================================================== ORG FLBPR ;FLash Block PRotect DB {(CodigoStart & $7FFF)/!128} ;donde empieza el CODIGO ;a PROTEGER ;=================================================================== Nota: El código que fuerza la alineación puede reemplazarse por una dirección fija.
24 Algoritmo de grabación: Para modificar un byte deben seguirse los siguientes pasos: Tapar las interrupciones Subir en el registro FLCR (FLash Control Register) el bit PGM ($01) Leer el registro FLBPR (FLash Block Protect) Grabar cualquier valor en el byte a modificar (esto selecciona el row) Delay TNVS = 10 microsegundos (PGM to HVEN setup time) Subir en el registro FLCR (FLash Control Register) el bit HVEN ($08) Delay TPGS = 5 microsegundos (Program Hold Time) Grabar el valor correcto en el byte a modificar Delay TPROG = 30 microsegundos (Byte Program Time) Bajar en el registro FLCR (FLash Control Register) el bit PGM ($01) Delay TNVH = 5 microsegundos (High-Voltage Hold Time) Bajar en el registro FLCR (FLash Control Register) el bit HVEN ($08) Delay TRCV = 1 microsegundos (Return to read mode) Recuperar estado de las interrupciones
25 Algoritmo de borrado: Para borrar una página deben seguirse los siguientes pasos: Tapar las interrupciones Subir en el registro FLCR (FLash Control Register) el bit ERASE ($02) Leer el registro FLBPR (FLash Block Protect) Grabar cualquier valor en la página a borrar (esto selecciona la página) Delay TNVS = 10 microsegundos (ERASE to HVEN setup time) Delay TERASE = 1 milisegundo (Erase block time) Bajar en el registro FLCR (FLash Control Register) el bit ERASE ($02) Delay TNVH = 5 microsegundos (High-Voltage Hold Time) Bajar en el registro FLCR (FLash Control Register) el bit HVEN ($08) Delay TRCV = 1 microsegundos (Return to read mode) Recuperar estado de las interrupciones
26 Implementación: Las rutinas presentadas realizan estos dos algoritmos manteniendo al mínimo la cantidad de RAM necesaria. Para ello realizan la mayor cantidad posible de inicializaciones antes de grabar o borrar y no tocan la máscara de interrupciones, por lo que requieren llamarlas con las interrupciones tapadas. Los delays están calculados para una frecuencia de bus de 8 MHz (lo que equivale a 1 microsegundo = 8 ciclos). Si decide utilizar otra frecuencia de bus DEBERA ajustar las constantes asegurándose que se mantengan los tiempos mínimos. Por ejemplo: delay TERASE= 1 milisegundo Para 8MHz son 8000 ciclos y como cada loop tiene 33 ciclos, son iteraciones. La constante para el borrado debe ser 243 o sea: 8019 ciclos o miliseg. Para 4MHz son 4000 ciclos y como cada loop tiene 33 ciclos, son iteraciones. La constante para el borrado debe ser 122 o sea: 4026 ciclos o miliseg. La rutina de grabación tiene un delay total de 101 microsegundos, dado que la copia de los 35 bytes a RAM requiere 350 ciclos que a 8MHz son 45 microsegundos (45% del tiempo total, que aumenta si se baja la frecuencia del bus). Si su aplicación no tiene problemas de RAM y sí de tiempo, puede modificar el código para que realice la copia a RAM una sola vez al inicializar y la ejecute directamente desde esa dirección (tenga cuidado en cargar los valores que requieren las rutinas en los registros antes de llamarlas). Por su parte, la rutina de borrado tiene un delay total de 1,068 milisegundos. Aquí el tiempo de copia (igual que en la grabación) sólo representa el 4% del total, pero valen las mismas observaciones que en el caso anterior.
27 Como utilizar las rutinas: Para grabar: indique el address a modificar en FlashAddress y el dato en FlashData y llame a la rutina: FlashWRITE (estas variables mantienen su valor al salir). Para borrar: indique un address dentro de la página a borrar (por ejemplo el 1er byte de la página) en FlashAddress y llame a la rutina: FlashERASE (Atención: FlashData es usado de temporal y retorna con valor 0, en cambio FlashAddress mantiene su valor al salir). Tenga en cuenta que cada vez que desee borrar un byte, deberá borrar 128 (la página completa). Por lo tanto, según la cantidad de datos que desee grabar deberá implementar una rutina que se encargue de salvar los datos de la página que no cambian, la borre, regrabe los datos salvados y agregue los nuevos. Aquí tiene algunas opciones: Usar 1 byte por página (contra: desperdicia 127 bytes por página). Idem anterior, pero grabar en el 1er lugar vacío ($FF) de la página. Esto disminuye el número de operaciones de borrado (ver el ejemplo) (contra: no se puede usar el valor $FF como dato y al leer hay que buscar el último valor grabado). Usando RAM de backup. Copiar los datos a RAM, modificarlos, borrar la página y grabarla. (contra: requiere RAM de backup) Usar 2 paginas. Usando el valor $FF como indicador de vacío, puede intentar grabar en una página, si ese byte esta ocupado grabar en la siguiente página. Si ésta también esta ocupada, salvar los datos que estén en la 1era y no en la 2da. Borrar la 1era y grabar ahí los valores nuevos. Hace falta agregar en la 1er página un flag que indique que página es la considerada 1era. (contra: algoritmo más complejo y no permite usar el valor $FF como dato, pero requiere muy poca RAM). En el código fuente se incluyen las rutinas junto con un ejemplo de utilización e inicialización de la frecuencia de bus desde un cristal de 32,768KHz.
28 ; ======================================================================= ; ; FlashGP.ASM Programacion de memoria FLASH para 68HC908GP32 ; =========== Por el Ing. Gabriel Dubatti (c) 2001 ; ; ; Se permite el uso y modificacion de este codigo ; bajo su exclusiva responsabilidad. ;======================================================================== ; Las siguientes rutinas permiten grabar y borrar la memoria FLASH del ; GP32. ; Las mismas estan optimizadas para utilizar la menor cantidad posible ; de RAM: ; rutina de grabacion o borrado: 35 bytes ; stack de subrutina: 2 bytes ; stack de llamada a la rutina: 2 bytes ; ========== ; TOTAL de RAM necesaria: 39 bytes ; La optimizacion se realizo para una frecuencia de BUS de 8MHz pero ; pueden ajustarse las constantes para trabajar con otras frecuencias de ; clock si se respetan los delays indicados. ; Las funciones DEBEN llamarse con las INTERRUPCIONES TAPADAS por lo que ; pueden usarse normalmente estos 39 bytes de RAM como stack. ;==============================================================================
29 ;Registros de control del PLL PCTL EQU $0036 PCTL_B_PLLON EQU 5 PCTL_B_BCS EQU 4 PBWC EQU $0037 PBWC_B_AUTO EQU 7 PBWC_B_LOCK EQU 6 PMSH EQU $0038 PMSL EQU $0039 PMRS EQU $003A PMDS EQU $003B ;Registros de control de la memoria FLASH FLCR EQU $FE08 FLCR_PGM EQU $01 FLCR_ERASE EQU $02 FLCR_MASS EQU $04 FLCR_HVEN EQU $08 FLBPR EQU $FF7E ;COP COPCTL EQU $FFFF
30 ;===================================================================== ORG $0040 ;Comienzo de la RAM FlashAddress: DS 2 ;Address de grab. o borrado FLASH FlashData: DS 1 ;Dato a grabar en FLASH o temporal flash_code: DS!35 ;Lugar donde se copian las rutinas ;de grabacion y borrado (se puede ;reutilizar como stack o temporales) ;===================================================================== ORG $8000 ;Comienzo de la FLASH PagDatos: ;PAGINA de DATOS (para el ejemplo) ds!128 ; NBYTES_WRITE EQU!4 ;Cuantos bytes grabar en la pagina ;antes de borrarla. ;===================================================================== ORG $9000 ;Comienzo del codigo CodigoStart: ;(protegido p. Flash Block Protect) ;=====================================================================
31 ;===================================================================== ; FlashWRITE: ; Graba 1 byte en memoria FLASH (GP32) ; ; REQUIERE: ; * BUS clock= 8MHZ (8 ciclos= 1 useg) ; * INTERRUPCIONES TAPADAS ; * FlashAddress= Address donde grabar el byte (2 bytes) ; * FlashData= Dato a grabar (1 byte) ; ; Descripcion: ; Carga en RAM el codigo de grabacion y lo ejecuta ; (en: flash_code) ; Requiere 35 bytes de RAM. (+4 de stack) ; Resetea el COP antes de grabar. ; Delay total = 809 ciclos = 101 microsegundos. ;===================================================================== FlashWRITE: ldhx #{_flash_wr_fin - _flash_wr_com} ;numero de bytes a copiar, ; H=0 copy_write: ;copia funcion de GRABACION a RAM lda {_flash_wr_com-1},x ; sta {flash_code-1},x ;(-1 porque X= ultimo..1) dbnzx copy_write ; lda #FLCR_PGM ;A= Set PGM exec_en_ram: ; sta COPCTL ;resetea COP ldhx FlashAddress ;carga address del bloque a ;grabar/borrar jmp flash_code ;ejecuta codigo en RAM,sale por RTS
32 ; _flash_wr_com: ;Comienzo del codigo de grabacion ;(se ejecuta en RAM) ;Al entrar: HX= address a GRABAR ; A= FLCR_PGM sta FLCR ;FLash Control Register= PGM lda FLBPR ;lee block protect sta,x ;selecciona el bloque a grabar ;==== PGM to HVEN setup time ==== ;delay TNVS (10 useg.= 80 ciclos) lda #{FLCR_HVEN+FLCR_PGM} ;2 ciclos (luego setea bit HVEN) ldx #!24 ;2 ciclos bsr DoDelayYStaFLCR ;4+4 ciclos + 3*X= 80 ciclos ;deja X=11 y A= FlashData ;Program Hold Time ;delay TPGS (5 useg.= 40 ciclos)
33 delay_tpgs: ; dbnzx delay_tpgs ;9 + 3*X = 42 ciclos ;GRABA BYTE (A= FlashData) ldhx FlashAddress ;(H:X= addrees a GRABAR) sta,x ; ;Byte Program Time (HI) ;delay TPROG (30 useg.= 240 ciclos) ldx #!78 ;2 ciclos lda #FLCR_HVEN ;2 ciclos (luego borra bit PGM) bsr DoDelayYStaFLCR ;4+4 ciclos + 3*X= 242 ciclos ;delay extra= 9 ciclos ;deja X=11 ;High-Voltage Hold Time ;delay TNVH (5 useg.= 40 ciclos) clra ;1 ciclo (luego borra bit HVEN) ;10 ciclos + 3*X= 43 ciclos DoDelayYStaFLCR: ;X= delay en ciclos = (X * 3) dbnzx DoDelayYStaFLCR ;3 ciclos sta FLCR ;A= nuevo valor FLCR ldx #!11 ;2 ciclos lda FlashData ;3 ciclos rts ;delay extra= 5+4 = 9 ciclos ;return to read mode ;delay TRCV (1 useg.= 8 ciclos) _flash_wr_fin: ;== Fin del codigo de grabacion == ;
34 ;===================================================================== ; FlashERASE: ; Borra una pagina de memoria FLASH (GP32, una pagina= 128 bytes) ; ; REQUIERE: ; * BUS clock= 8MHZ (8 ciclos= 1 useg) ; * INTERRUPCIONES TAPADAS ; * FlashAddress= address de un byte dentro del bloque a borrar ; * Usa "FlashData" de TEMPORAL (delay de borrado) ; ; Descripcion: ; Carga en RAM el codigo de borrado y lo ejecuta (en: flash_code) ; Requiere 35 bytes de RAM (+4 de stack) ; Reseta el COP antes de borrar. ; Delay total = 8545 ciclos = 1,068 milisegundos. ;======================================================================= FlashERASE: ldhx #{_flash_er_fin - _flash_er_com} ;numero de bytes a copiar, ;H=0 copy_erase: ;copia funcion de borrado a RAM lda {_flash_er_com-1},x ; sta {flash_code-1},x ;(-1 porque X= ultimo..1) dbnzx copy_erase ; mov #!243,FlashData ;setea delay de borrado lda #FLCR_ERASE ;A= Set ERASE bra exec_en_ram ;HX=FlashAddress, COP y jmp "flash_code" ;
35 _flash_er_com: ;= Comienzo del codigo de borrado = ;(se ejecuta en RAM) ;Al entrar: HX= address en pagina a borrar ; A= FLCR_ERASE sta FLCR ;FLash Control Register= ERASE lda FLBPR ;lee block protect sta,x ;selecciona el bloque a borrar ;Erase to HVEN setup time ;delay TNVS (10 useg.= 80 ciclos) lda #!26 ; delay_tnvs: ; dbnzx delay_tnvs ;2 + 3 x 26= 80 ciclos ldhx #FLCR ; lda #{FLCR_HVEN+FLCR_ERASE} ;setea bit HVEN sta,x ; ;Erase block time ;delay TERASE (1 mseg.= 8000 ciclos)
36 delay_terase: ; bsr delay_10_ciclos ;4+10= 14 ciclos bsr delay_10_ciclos ;4+10= 14 ciclos dbnz FlashData,delay_terase ;+5 ciclos => 33x243= 8019 ciclos lda #FLCR_HVEN ;borra bit ERASE sta,x ; ;High-Voltage Hold Time ;delay TNVH (5 useg.= 40 ciclos) lda #!13 ; delay_tnvh: ; dbnza delay_tnvh ;2 + 3 x 13= 41 ciclos ;"dbnza" deja A= 0 sta,x ;borra bit HVEN ;return to read mode ;delay TRCV (1 useg.= 8 ciclos) delay_10_ciclos: ;delay de 10 ciclos nsa ;3 ciclos nsa ;3 ciclos rts ;4 ciclos _flash_er_fin: ;== Fin del codigo de borrado == ;
37 ;====================================================================== ;;;;;;;;;; CODIGO DE PRUEBA DE LAS RUTINAS DE GRABACION y BORRADO ;;;;; ;====================================================================== ; RESET: ; 1) Setea frecuencia de BUS= 8MHz mediante el PLL con cristal de ; KHz. ; 2) Busca el ultimo valor distinto de $FF en la pagina de datos y ; graba en el byte siguiente $55 hasta completar los NBYTES_WRITE ; bytes. ; 3) Cuando se completan los NBYTES_WRITE bytes, BORRA la PAGINA y ; graba en el primer lugar. ; Las paginas son de 128 bytes en el GP32. ; 4) Entra en un loop infinito. ;============================================================================== RESET: ;1) rsp ;SP=$00FF ;setea PLL para generar 8 MHZ de frec.bus desde cristal de 32K768 ;R=1 N=3D1 P=0 E=2 L=D0 clr PCTL ;PLL:OFF bset 1,PCTL ;P= 0 E= 2 mov #3,PMSH ;N HI= 3 mov #1,PMDS ;R= 1 (default) mov #$D1,PMSL ;N LOW= D1 mov #$D0,PMRS ;L= D0 bset PCTL_B_PLLON,PCTL ;PLL:ON bset PBWC_B_AUTO,PBWC ;enganche automatico wait_pll: ;esperar que LOCK sea = 1 brclr PBWC_B_LOCK,PBWC,wait_pll; bset PCTL_B_BCS,PCTL ;cambia a frecuencia del PLL
38 ;2) ldhx #PagDatos ;busca 1er $FF de la pagina BuscaFF: ; lda,x ; cmp #$FF ; beq EncontroFF ;encontro un byte vacio, grabar $55 aix #1 ; cphx #{PagDatos+NBYTES_WRITE};se completaron NBYTES_WRITE bytes? bne BuscaFF ;NO, ver el siguiente byte ;3) ;se completo el lugar, borrar pagina ldhx #PagDatos ;indica el ADDRESS a BORRAR sthx FlashAddress ;(cualquier address en la pag. sirve) jsr FlashERASE ;BORRA la pagina indicada ;(todos sus bytes pasan a $FF) ldhx #PagDatos ;grabar en el 1er byte de la pagina EncontroFF: ;encontro un byte vacio, grabar $55 sthx FlashAddress ;indica el ADDRESS a GRABAR mov #$55,FlashData ;indica el DATO a GRABAR jsr FlashWRITE ;GRABA el dato indicado
39 ;4) loop_final: ;espera el proximo reset para grabar bra loop_final ;otro byte. ;====================================================================== ORG FLBPR ;FLash Block PRotect DB {(CodigoStart & $7FFF)/!128} ;donde empieza el CODIGO a ;PROTEGER ;====================================================================== ORG $FFFE ; DW RESET ;Vector de RESET ;==============================================================================
40 Corriendo el programa en el sistema FLASH_POD.. Las rutinas aquí presentadas se testearon satisfactoriamente en el sistema de desarrollo para HC08, FLASH_POD, mostrandose las siguientes pantallas a modo de resumen. Fig1. - Código fuente "Flasgp.asm" en una ventana del FLASH_POD FIN CAPITULO 16!!! Fig. 2.- Ventanas de Memoria FLASH / RAM con valores $55 grabados usando la rutina "Flashgp.asm" aquí presentada.
Grabación de memoria FLASH en el MC908GP32
COMENTARIO TECNICO Grabación de memoria FLASH en el MC908GP32 Por el Ing. Gabriel Dubatti Adaptación Ing. Daniel Di Lella Dto. Técnico EduDevices.com.ar www.edudevices.com.ar Segunda y última Parte. Código
Uso de la memoria FLASH de los MCUs HC908 para el Almacenamiento de Datos Temporales.
COMENTARIO TECNICO Uso de la memoria FLASH de los MCUs HC908 para el Almacenamiento de Datos Temporales. Por el Ing. Daniel Di Lella, Depto. Técnico EduDevices www.edudevices.com.ar Una pregunta común
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Distributor Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Como sacarle el mayor provecho a la familia
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
Analog To Digital Converter. Module (ADC) Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II ING.
Analog To Digital Converter Module (ADC) Analog to Digital Convertor Module Clock Generation Module (CGM) System Integration Module (SIM) LVR COP BREAK IRQ RESET 68HC8 CPU Timer Interface Module (TIM)
Buceando en los MCUs Freescale...
COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer EDUDEVICES www.edudevices.com.ar dilella@arnet.com.ar Medidor de Potencia Activa Monofásico
MONITOR ROM MODULE (MON08)
ROM MODULE (MON08) Que es el Monitor ROM?? Es un módulo exclusivo de la familia HC908 FLASH de Freescale, que permite forzar al MCU a un estado especial de comunicación con el mundo exterior. Este modo
MC68HC908GP32 Diagrama en Bloques INTERNAL BUS
Puertos de entrada / salida ( I/O PORTS ) DDRE DDRB CPU REGISTERS M68HC08 CPU ARITHMETIC/LOGIC UNIT (ALU) MC68HC908GP32 Diagrama en Bloques INTERNAL BUS COMPUTER OPERATING PROPERLY DDRA PORTA PTA7 / PTA0
(SPI) Módulo Serial Sincrónico
SERIAL PERIPHERAL INTERFACE (SPI) Módulo Serial Sincrónico SERIAL PERIPHERAL INTERFACE MODULE Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timer Interface
MODOS DIRECCIONAMIENTO CPU08. Curso de Microcontroladores Familia HC908 Flash de Motorola Parte II. ING. DANIEL DI LELLA DDFAE For Motorola Products
MODOS DE DIRECCIONAMIENTO 08 MODOS DE DIRECCIONAMIENTO Inherente Inmediato Directo Extendido Indexado Relativo a A continuación veremos cada uno de estos modos de direccionamiento en la familia HC908,
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Guía de Conversión de los MC908QT/QYx a MC908QTxA/QYxA.
RESETS & INTERRUPCIONES
RESETS & INTERRUPCIONES EN EL CPU08 Resets & Interrupciones Los Resets inicializan al CPU a un estado conocido!!!!. Todos los resets son manejados por medio del System Integration Module (S.I.M ) Tipos
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Como implementar un control remoto por infrarrojo en
Control remoto del EDUKIT08 vía PC...
COMENTARIO TECNICO Mundo EDUKIT08 Por: Ing. Roberto Simone Ingeniero de aplicaciones Freescale robertosimone@arnet.com.ar Ing. Daniel Di Lella D.F.A.E www.edudevices.com.ar dilella@arnet.com.ar (MDO_EDUKIT_012)
Flia. HC908. Detalles de la Arquitectura. Curso de Microcontroladores Familia HC908 Flash de Motorola Parte II
Flia. HC908 Detalles de la Arquitectura MC68HC908 Detalles de la Arquitectura Familia MC68HC908 Nomenclatura Diagrama en Bloques Pines Mapa de Memória Nomenclatura: Como se podrá observar en el próximo
CLOCK GENERATION MODULE (CGM) Módulo de Generación de Clock
CLOCK GENERATION MODULE (CGM) Módulo de Generación de Clock Clock Generation Module Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timer Interface Module
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Como implementar un control remoto por infrarrojo en
Capítulo 2 LOS MICROCONTROLADORES MC68H(R)C908JL3/JK3/JK1. Capítulo 3 INTRODUCCIÓN A LA PROGRAMACIÓN DE LOS MICROCONTROLADORES MOTOROLA- FREESCALE
CONTENIDO Mensaje del editor...iii Web de Apoyo...iv Agradecimientos...vi El autor...vii Contenido...ix Prólogo de Freescale...xv Introducción... xvii Capítulo 1 INTRODUCCIÓN A LOS MICROCONTROLADORES MOTOROLA-FREESCALE
R(S)-POD. Características. Aplicaciones. Descripción general. Emulador en Tiempo Real BDM / ICE R(S)_POD.
Características. R(S)-POD Emulador en Tiempo Real BDM / ICE. Verdadera Emulación en Tiempo Real para toda la flia. HC9S08 / RS08 / Serie Flexis S08/V1ColdFire. Puerto Serial USB para comunicación y alimentación
1.8 PROGRAMACIÓN DEL MICROCONTROLADOR
Notas Técnicas de Uso y Aplicación 1.8 PROGRAMACIÓN DEL MICROCONTROLADOR REGISTROS, LOCALIDADES DE MEMORIA Y MAPA DE MEMORIA MAPA DE MEMORIA DE LOS MICROCONTROLADORES JK3/JL3 Preparado por: Rangel Alvarado
Optimización de código en el 68HC908
COMENTARIO TECNICO Optimización de código en el 68HC908 Por el Ing. Gabriel Dubatti e-mail: info@ingdubatti.com.ar Adaptación Ing. Daniel Di Lella / Electrocomponentes S.A. e-mail: fae@electrocom.com.ar
GENERACIÓN DE SUBRUTINA DE RETARDO DE
Notas Técnicas de Uso y Aplicación 1.9 GENERACIÓN DE SUBRUTINA DE RETARDO DE SOFTWARE CREACIÓN DE LA RUTINA UTILITARIA DELAY Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN. Introducción:
NOTA DE APLICACIÓN Ejemplo de implementación del microcontrolador MC68HC908GP32 en la multiplexación de displays usando módulo TIM por César Gianfelici, LabDSP FCEFyN UNC supervisado por Ing. Diego Dujovne,
Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN. Introducción:
NOTA DE APLICACIÓN Ejemplo de implementación del microcontrolador MC68HC908GP32 en la multiplexación de displays usando módulo TIM por César Gianfelici, LabDSP FCEFyN UNC supervisado por Ing. Diego Dujovne,
Generación de PWM para la familia HC08JL
Introducción Generación de PWM para la familia HC08JL Todos los microcontroladores HC08 incluyen al menos un módulo de Timer que es muy útil para generar o capturar señales, ya sean estas periódicas en
Puertos de Entrada/Salida
Dispositivos Entrada / Salida en Flía CPU08 Sistemas con Microcontroladores y Microprocesadores http://www.herrera.unt.edu.ar/procesadores Puertos de Entrada/Salida El mc posee 13 líneas de entrada/salida
RESETS & INTERRUPCIONES
RESETS & INTERRUPCIONES EN EL CPU08 Resets & Interrupciones Los Resets inicializan al CPU a un estado conocido!!!!. Todos los resets son manejados por medio del System Integration Module (S.I.M ) Tipos
Introducción. Características. Laboratorio de Procesamiento Digital de Señales Universidad Nacional de Córdoba NOTA DE APLICACIÓN
NOTA DE APLICACIÓN Implementación de la multiplexación de displays en un Contador de Eventos sobre un microcontrolador MC68HC908JK1. por Martin Serra, LabDSP FCEFyN UNC supervisado por Ing. Diego Dujovne,
Arquitectura de Computadores II Clase #3
Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control
Modos de direccionamiento
Modos de direccionamiento Modos de direccionamiento El CPU HCS08 incluye 16 modos de direccionamiento: Inherente Inmediato Directo Extendido Indexado, sin offset Indexado, offset de 8 bits Indexado, offset
Buceando en los MCUs Freescale...
COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer EDUDEVICES www.edudevices.com.ar dilella@arnet.com.ar Medidor de Potencia Activa Monofásico
Buceando en los MCUs Freescale...
COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer EDUDEVICES www.edudevices.com.ar dilella@arnet.com.ar Medidor de Potencia Activa Monofásico
Problemario: Memoria / Entrada Salida / Buses / Interrupciones
Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 Arquitectura del Computador I Problemario: Memoria / Entrada Salida / Buses / Interrupciones PARTE
Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II. CPU08 Core ING. DANIEL DI LELLA
INTRODUCCION AL CPU08 CPU08 Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timers Interface Modules (TIM) 8 BIT A/D Converter Module (ADCM) Internal Bus
2.8 MÓDULO DE INTERRUPCIÓN POR TECLADO KBI
Notas Técnicas de Uso y Aplicación 2.8 MÓDULO DE INTERRUPCIÓN POR TECLADO KBI AÑADIENDO INTERRUPTORES A SU MICROCONTROLADOR Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica
Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores
Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores http://www.herrera.unt.edu.ar/procesadores Temas a Tratar Tipos de Instrucciones. Movimiento de Datos Procesamiento Aritméticas
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar FLASH_POD...... La evolución es posible!! A lo largo
Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 Arquitectura del Computador I
Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 Arquitectura del Computador I Problemario: Memoria / Entrada Salida / Buses / Punto Flotante PARTE
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
Reset e interrupciones
Reset e interrupciones M.C. Jorge Eduardo Ibarra Esquer Resets e interrupciones Son respuestas a eventos que se presentan durante la ejecución normal de un programa Un reset regresa el microcontrolador
Microcontrolador PIC16F84: Arquitectura
Microcontrolador PIC16F84: Arquitectura La arquitectura del PIC es tipo Harvard: Mem. de Programa (instrucciones) (tipo FLASH) Control DIR DATOS µp (tipo RISC, pipeline de 2 etapas) Control DIR DATOS 14
Curso de Microcontroladores. Familia HC908 Flash Freescale. Parte II ING DANIEL DI LELLA
Familia HC908 Flash... Parte II Comentarios del Autor: El presente curso, es la continuación del Familias HC705 y HC908 Parte I y en el se dará especial atención a las características más sobresalientes
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN LABORATORIO DE CIRCUITOS DIGITALES
SET de Instrucciones CPU08. Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II ING. DANIEL DI LELLA
SET de Instrucciones CPU08 SET DE INSTRUCCIONES Movimiento de Datos Aritméticas Lógicas Manipulación de Datos Manipulación de Bits Control del Programa Operaciones BCD Especiales Compatibilidad de Código
Registros SFR vistos hasta ahora: Microcontroladores PIC
Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El
Sistemas Electrónicos Digitales
Sistemas Electrónicos Digitales Universidad de Alcalá Curso Académico 2014/2015 Curso 3º Cuatrimestre 1º Ejercicio 1 Se dispone de chips de EEPROM de 2Kx8. Realice la ampliación a 8Kx8 manteniendo una
Buceando en el HC908...
COMENTARIO TÉCNICO Buceando en el HC908... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Como sacarle mayor provecho a las herramientas disponibles
Manejo de Entrada-Salida. Arquitectura de Computadoras
Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA
UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA INTRODUCCIÓN AL PIC NOMENCLATURA ARQUITECTURA. TEMPORIZACIÓN. SET DE INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO.
EDUKIT08 PLUGIN_AW. Características. Aplicaciones. Descripción general. Placa de Personalización para la flia. HC9S08 FLASH de 8 Bits.
Características. EDUKIT08 Placa de Personalización para la flia. HC9S08 FLASH de 8 Bits. Se incorpora a la placa didáctica EDUKIT08 con hardware completo para prácticas con cada módulo típico del HC9S08.
Ejercicios del tema 5. Jerarquía de de Memoria
Ejercicios del tema 5. Jerarquía de de Memoria Ejercicio 1. Considere un computador de 32 bits con una caché de 64 KB asociativa por conjuntos de 4 vías y un tiempo de acceso de 4 ns. El tamaño de la línea
Controlador de Interrupciones (Versión programable) Manual de Usuario
Controlador de Interrupciones (Versión programable) Manual de Usuario Índice de contenido 1. Características...2 2.Descripción general...3 3.Descripción funcional...3 4.Estructura Interna...4 4.1 Bloque
Como sacarle mayor provecho a las herramientas disponibles para la familia HC908
COMENTARIO TECNICO Hablemos de MCU s... Por Ing. Daniel Di Lella Dedicated Field Application Engineer Responsable Area Educación Elko / Arrow www.elkonet.com ddilella@elkonet.com dilella@arnet.com.ar Como
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 9.- Memoria FLASH. La memoria FLASH de la familia
Guía Didáctica del 68HC08
Guía Didáctica del 68HC08 Jordi Mayné Ingeniero de Aplicaciones Rev. 1 Índice Arquitectura de la CPU 68HC08... 5 Compatibilidad de Código 68HC05/08... 5 Tiempos de los Ciclos Internos de la CPU 68HC08...
SOMI XVIII Congreso de Instrumentación ELECTRONICA ASC1876
SD_908, SISTEMA PARA DESARROLLO CON MICROCONTROLADORES DE LA FAMILIA 68HC908 Autor: Antonio Salvá Calleja División de Ingeniería Eléctrica Facultad de Ingeniería UNAM salva@dctrl.fi-b.unam.mx RESUMEN Los
Manual de usuario del PicKit2. Manual de usuario del PicKit2
Manual de usuario del PicKit2 1 INTRODUCCIÓN: Debido a la popularidad del programador PicKit2, como herramienta de aprendizaje he decidido hacer la traducción al idioma castellano del manual, con las cosas
Mapas de Memoria y E/S
Mapas de Memoria y E/S Sistemas con Microprocesadores http://www.herrera.unt.edu.ar/procesadores Conexiones internas del CPU08 Dentro del mc el CPU08 se vincula con memoria y con los dispositivos de E/S
Manejo de Entrada-Salida. Arquitectura de Computadoras
Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.
ARQUITECTURA DEL PIC16F84A
ARQUITECTURA DEL PIC16F84A Arquitectura interna del PIC16F84A CPU ALU Decodificador de Instrucciones - Buses Registro de trabajo W PC Contador de Programa Organización de la memoria Memoria de Programa
Módulo 2: Cómo funcionan las computadoras
Módulo 2: Cómo funcionan las computadoras Descripción general Este módulo trata cómo funcionan las computadoras. Comienza con una descripción general del sistema. El alumno aprenderá el proceso de inicio.
ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II BOLETÍN 4 MICROPROCESADOR MC 68000
1.- Partiendo de la siguiente situación inicial, donde se indica el contenido de ciertos registros y direcciones de memoria: Dirección Contenido Registro Contenido 800 08 A0 0000 0802 801 03 A1 0000 0804
PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com
PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com Guía de Operación Reloj en tiempo real Modulo: RTCU2iempo real Clave: 719 El modulo 719 Reloj en tiempo real- utiliza
Departamento de Electrónica Electrónica Digital. Mapas de memoria. Bioingeniería Facultad de Ingeniería - UNER
Departamento de Electrónica Electrónica Digital Mapas de memoria Bioingeniería Facultad de Ingeniería - UNER 3/5/23 Electrónica DigitalElectrónica Digital Direccionamiento de las memorias 3/5/23 Electrónica
ACIÓN DEL MICROCONTROLADOR CPU08 CPU08 DE
Notas Técnicas de Uso y Aplicación 1.7 PROGRAMACIÓN DEL MICROCONTROLADOR CPU08 CPU08 DE LOS MICROCONTROLADORES DE LA FAMILIA HC08 Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica
PROGRAMACIÓN DEL MICROCONTROLADOR
Notas Técnicas de Uso y Aplicación 1.6 PROGRAMACIÓN DEL MICROCONTROLADOR SOFTWARE INICIACIÓN AL ENTORNO DE DESARROLLO EN ENSAMBLADOR WINIDE Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en
NT0112. Notas Técnicas de Uso y Aplicación 2.12 MÓDULO DE AUTORECUPERACIÓN AWU PARA MICROCONTROLADORES DE LA SERIE Q
Notas Técnicas de Uso y Aplicación 2.12 MÓDULO DE AUTORECUPERACIÓN AWU PARA MICROCONTROLADORES DE LA SERIE Q Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica Universidad
INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata
Muestreo de señales analógicas Principal requerimiento que surge al muestrear una señal continua: Definir el periodo de muestreo con suficiente exactitud. Ajustar el mismo a un valor adecuado de acuerdo
Memoria. M. en C. Erika Vilches. Parte 6
Memoria M. en C. Erika Vilches Parte 6 Lógica del Chip Como otros circuitos integrados, las memorias semiconductoras vienen en chips encapsulados. Cada chip contiene una matriz de celdas de memoria. Para
Arquitectura de computadoras
Arquitectura de computadoras Técnicas Digitales III Ing. Gustavo Nudelman 2013 Que entendemos por arquitectura Un sistema con una CPU, memoria y dispositivos de entrada y salida puede considerarse un sistema
QUÉ ES UN MICRONTROLADOR?
QUÉ ES UN MICRONTROLADOR? Página 1 Un microcontrolador es la forma más básica y simple de un sistema computarizado En un solo integrado o chip se encuentra el microprocesador propiamente dicho o CPU, la
MC. Christian Aldaco González. Microcontroladores
MC. Christian Aldaco González Microcontroladores La familia M68HC08 M68HC08 Central Processor Unit(CPU08) Features include: High-performance M68HC08 CPU core Fully upward-compatible object code with M68HC05
Winide y Kit EVALQTY CDM 2011
Winide y Kit EVALQTY CDM 2011 Seteo de jumpers jumpers JUMPER : JP1 Selección de la Tensión de Alimentación al MCU. JP1 en posición 1-2 VDD = 5Vdc JP1 en posición 2-3 VDD = 3Vdc (MCU alimentado con 3Vdc)
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
1.10 PUERTOS GENERALES DE ENTRADA Y SALIDA
Notas Técnicas de Uso y Aplicación 1.10 PUERTOS GENERALES DE ENTRADA Y SALIDA USO DE PUERTOS PARA GENERAR SEÑALES Y DETECTAR SEÑALES DIGITALES Preparado por: Rangel Alvarado Estudiante Graduando de Lic.
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
EDUKIT08. Características. Aplicaciones. Descripción general
Características. Placa Didáctica / Entrenamiento Para las flias. HC908 / HC9S08 y Serie Flexis HC9S08 / V1 ColdFire Placa didáctica con hardware completo para prácticas con cada módulo típico del HC908
ESPACIO DE DIRECCIONES
ESPACIO DE DIRECCIONES INTRODUCCIÓN Existen dos espacios de dirección disponibles para el microcontrolador Z8 PLUS : El archivo de registros de la RAM contiene direcciones para todos los registros de control
Motorola MC68HC908JK3/JK1
Sistema de desarrollo para microcontrolador Motorola. MC68HC908JK3/JK1 Motorola MC68HC908JK3/JK1 GUSTAVO A. GALEANO info@propuestadinamica.com JUAN ANDRÉS CASTAÑO WELGOS welgos@telesat.com.co Sin invertir
Organización del Computador 1 Memorias
Organización del Computador 1 Memorias Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Octubre 2009 Jerarquía de las memorias Jerarquía de memorias en un
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Responsable Area Educación ELKO / ARROW www.elkonet.com
Tema 5: Memorias. Índice Conceptos básicos Parámetros característicos Jerarquía de memoria Memoria principal Tecnologías Estructura Mapa de memoria
Tema 5: Memorias Índice Conceptos básicos Parámetros característicos Jerarquía de memoria Memoria principal Tecnologías Estructura Mapa de memoria Bibliografía Fundamentos de sistemas digitales Thomas
NT0106. Notas Técnicas de Uso y Aplicación 2.6 CAPTURA DE ENTRADA INPUT CAPTURE CAPTURA DE EVENTOS EXTERNOS MEDICIÓN DEL PERÍODO. 2.6.
Notas Técnicas de Uso y Aplicación 2.6 CAPTURA DE ENTRADA INPUT CAPTURE CAPTURA DE EVENTOS EXTERNOS MEDICIÓN DEL PERÍODO Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica
Buceando en los MCUs Freescale...
COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer EDUDEVICES www.edudevices.com.ar dilella@arnet.com.ar Matemática de Punto Flotante Por
TIMER INTERFACE MODULE (TIM)
TIMER INTERFACE MODULE (TIM) TIMER INTERFACE MODULE Clock Generation Module (CGM) System Integration Module (SIM) LVI COP IRQ BREAK RESET 68HC08 CPU Timer Interface Module (TIM) Direct Memory Access Module
b) Las teclas pueden generar varios impulsos tanto al pulsar como al soltar (rebotes durante t < 100 ms, p. ej.). El usuario pulsa la tecla así
. Control de un teclado matricial En esta práctica se genera el código adecuado para poder utilizar un teclado matricial. El programa debe convertir cada pulsación sobre el teclado, en un carácter ASCII
Introducción. Modo monitor. Cuaderno técnico 4: Grabación de microcontroladores PIC
Cuaderno técnico 4: Grabación de microcontroladores PIC [Introducción] [Modo monitor] [Arquitectura] [Autores] [Licencia] [Download] [Links] [Noticias] Introducción Los microcontroladores PIC se graban
Vcc PA.0. D7 RS RW E 4MHz HT48E30 PA.7 PC.0 PC.1 PC.4
Nota de Aplicación: CAN-074 Título: Manejo de displays LCD alfanuméricos inteligentes con Holtek Autor: Sergio R. Caprile, Senior Engineer Revisiones Fecha Comentarios 0 16/03/07 La presente nota de aplicación
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 8.- Inter Integrated Circuit Interface I2C MMIIC
3.1 MÓDULO DE GENERACIÓN DE RELOJ CGMC
Notas Técnicas de Uso y Aplicación 3.1 MÓDULO DE GENERACIÓN DE RELOJ CGMC GENERACIÓN DE FRECUENCIA DE BUS CON EL MÓDULO CGMC (SOLO GP32) Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing.
Curso sobre Microcontroladores Familia HC9S08 de Freescale
Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 8.- Inter Integrated Circuit Interface I2C MMIIC
Pantallas de Cristal Líquido
Pantallas de Cristal Líquido A diferencia de los display de 7 segmentos, las pantallas LCD tienen la capacidad de mostrar caracteres alfanuméricos. Consta de una matriz de caracteres (5X7 puntos) distribuidos
Resumen de características para la familia HC908
Resumen de características para la familia HC908 Derivatívos presentes en el mercado... ING. DANIEL DI LELLA DFAE For Freescale Products 68HC908GP32 Overview Sumario de Características Core HC08, de Alta
Capítulo 5 5. EJEMPLO DE APLICACIÓN.
Capítulo 5 5. EJEMPLO DE APLICACIÓN. 5.1 Descripción general del problema de aplicación. 5.2 Diseño del programa que controla la banda transportadora. 5.3 Programa en lenguaje SIIL1 que da solución al