Professional Documents
Culture Documents
MSP430 F 16 9
Flash, UART+Multipl+DAC+DMA ,
Perifrico integrado en el microcontrolador que permite la depuracin en tiempo real y de forma independiente de la aplicacin
LABORATORIO DE SISTEMAS DIGITALES
ARQUITECTURA INTERNA
Espacio de memoria compartido Set de instrucciones reducido (uP RISC)
Tipo de acceso
64KB
MSP430F169: CPU
CPU REGISTROS INTERNOS DE LA CPU MODOS DE DIRECCIONAMIENTO INTRODUCCIN AL CONJUNTO DE INSTRUCCIONES
C: se activa si como resultado de una operacin (B o W) hay carry Z => se activa si el resultado de una operacin (B o W) es 0 N => se activa si el resultado de una operacin negativo - Operacin tipo (B) => determinado por el bit 7 del resultado - Operacin tipo (W) => determinado por el bit 15 del resultado V => se activa si el resultado de una operacin aritmtica produce overflow - ADD(.B), ADC(.B): (+)+(+)=(-); (-)+(-)=(+) - SUB(.B), SUBC(.B), CMP(.B): (+)-(-)=(-); (-)-(+)=(+)
GIE: Global Interupt Enable. - Habilita el que se sirvan las Interrupciones mascarables activas - Se pone a 0 al entrar en una interrupcin, restaurandose con el RETI CPU Off => Si se activa, la CPU entra en modo OFF: - Ejecucin del programa para - RAM, puertos y perifricos activos se mantienen en su estado - Despierta con la activacin de una interrupcin habilitada OSC Off => Si se activa, el oscilador entra en modo OFF: - Cesa toda actividad (CPU y perifricos) - RAM, puertos y registros se mantienen - Despierta slo con interrupcin externa habilitada si GIE=1, o con NMI SCG0, SCG1 => Controlan los 4 posibles estados de funcionamiento del sistema de reloj
- El terminal #RST/MNI configurado en modo reset - Pines de entrada/salida pasan a entrada - Flags pasan a 0 - Perifricos y Registros pasan a sus valores por defecto - El registro de estado (SR) se resetea - El contador de programa se carga con la direccin contenida en el vector de reset (FFFEh). La CPU comienza el programa en esa direccin
MSP430F169. INTERRUPCIONES
Tipos de interrupciones - Reset de Sistema - Interrupciones enmascarables - Interrupciones No enmascarables - Interrupciones (No) enmascarables
MSP430F169. INTERRUPCIONES
Interrupciones enmascarables: se pueden deshabilitar por bits de habilitacin individuales, o por el bit de habilitacin general (GIE) - Watchdog timer overflow - Interrupciones de perifricos Interrupciones No enmascarables: no se pueden deshabilitar de ninguna manera
MSP430F169. INTERRUPCIONES
INTERRUPCIONES (NO) ENMASCARABLES No se pueden enmascarar por el bit GIE, pero si por bits de habilitacin individuales Registros de habilitacin de interrupciones (IE1, IE2).(NMIIE, ACCVIE, OFIE)
MSP430F169. INTERRUPCIONES
INTERRUPCIONES (NO) ENMASCARABLES Fuentes posibles: - Flanco activo en la seal #RST/NMI (modo NMI) - Fallo en el oscilador (interrupcin habilitada) - Violacin de acceso a la Flash (interrupcin habilitada) Una vez aceptada => en la ISR (Interrupt Service Routine) se resetea automticamente el bit de habilitacin de la interrupcin correspondiente. Direccin inicio FFFCh El bit de habilitacin de la interrupcin no se vuelve a activar al salir de la ISR => debe hacerse por SW si se desea habilitarla.
MSP430F169. INTERRUPCIONES
Procesado de interrupciones
1. El primer paso depende de si la CPU activa o no: - CPU activa => Finaliza instruccin actual - CPU parada => Se finaliza el modo de bajo consumo 2. Se guarda en la pila el PC apuntando a la siguiente instruccin 3. Se guarda en la pila el registro de estado (SR) 4. Si hay varias interrupciones pendientes => se selecciona la de ms prioridad 5. Dependiendo tipo interrupcin: - Flag de interrupcin asociado a una sla fuente => se resetea - Flag de interrupcin asociado a mltiples fuentes => no se modifica 6. GIE=CPUOFF=SCG1=V=N=Z=C=0 7. El contenido de vector de interrupcin se carga al PC
LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. INTERRUPCIONES
Procesado de interrupciones
Top of Stack
MSP430F169. INTERRUPCIONES
Retorno de interrupcin
La ISR finaliza con la instruccin RETI que en 5 ciclos: 1. Recupera el SR de la pila 2. Recupera el PC de la pila
MSP430F169. INTERRUPCIONES
Registros de 8 bits
XT2CLK
- Reloj de alta frecuencia - Oscilador que puede usarse con cristales estndar de alta frecuencia, resonadores o fuentes de reloj externas
DCOCLK
- Oscilador programable digitalmente - Caracterstica tipo RC
Bit SCG1:
- SCG1=0 => SMCLK activo - SCG1=1 => SMCLK parado
Bit OSCOFF:
- OSCOFF=0 => LFXT1 activo - OSCOFF=1 => LFXT1 parado (slo si no se usa para MCLK)
Bit SCG0:
- SCG0=0 => GENEADOR DC activo - SCG0=1 => GENEADOR DC inactivo (slo si DCOCLK no se usa para MCLK o SMCLK)
LABORATORIO DE SISTEMAS DIGITALES
Low Power 1:
- CPU OFF - MCLK OFF - SMCLK y ACLK ON - Generador DC del DCO inactivo (si DCO no se usa en MCLK o SMCLK) - DCO OFF (si no se usa en MCLK o SMCLK)
Low Power 2:
- CPU OFF - MCLK OFF - SMCLK OFF - ACLK permanece activo - Generador DC del DCO activo - DCO OFF (ya que no se usa en MCLK o SMCLK)
Low Power 3:
- CPU OFF - MCLK OFF - SMCLK OFF - ACLK permanece activo - DCO OFF (ya que no se usa en MCLK o SMCLK) - Generador DC del DCO inactivo
Low Power 4:
- CPU OFF - MCLK OFF - SMCLK OFF - ACLK OFF - DCO OFF (ya que no se usa en MCLK o SMCLK) - Generador DC del DCO inactivo
P2
TERMINAL N I/O DESCRIPCIN
P4
TERMINAL N I/O DESCRIPCIN
P6
TERMINAL N I/O DESCRIPCIN
Registros de seleccin de funcin PxSEL - Posibilitan la multiplexacin de funciones de los pines de E/S
- Cada bit del registro define la funcin del pin de E/S asociado PxSEL.x = 0 => funcin de puerto de E/S convencional PxSEL.x = 1 => funcin de lnea de E/S del perifrico asociado - Todos los bits a 0 (puerto de E/S convencional) despus de un PUC - En el caso de los puertos 1 y 2 (P1SEL y P2SEL): capacidad de interrupcin => PxSEL.x = 0 (E/S convencional) PxSEL.x=1 Interrupcin deshabilitada - PxSEL.x =1 no establece automticamente la direccin del terminal
LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. TIMER_A
Caractersticas
- Temporizador / Contador asncrono de 16 bits - 4 modos de operacin - Fuentes de reloj seleccionables - 3 Registros de captura / comparacin
MSP430F169. TIMER_A
Bloque Temporizador / Contador
- En funcin del modo de operacin se incrementa o decrementa con cada flanco de subida de la seal de reloj - Registro TAR de 16 bits que carga el valor a contar en TA. - Registro de lectura-escritura
MSP430F169. TIMER_A
Bloque Temporizador / Contador
- En funcin del modo de operacin se incrementa o decrementa con cada flanco de subida de la seal de reloj - Registro TAR de 16 bits que carga el valor a contar en TA. - Registro de lectura-escritura - El desbordamiento de TAR puede generar interrupcin. TAIFG=1 dentro del TAIV - Borrado de TAR mediante la puesta a 1 del bit TACLR dentro del TACTL. TACLR tambin resetea el divisor del reloj.
MSP430F169. TIMER_A
Bloque Temporizador / Contador
- En funcin del modo de operacin se incrementa o decrementa con cada flanco de subida de la seal de reloj - Registro TAR de 16 bits que carga el valor a contar en TA. - Registro de lectura-escritura - El desbordamiento de TAR puede generar interrupcin. TAIFG=1 dentro del TAIV - Borrado de TAR mediante la puesta a 1 del bit TACLR dentro del registro TACTL. TACLR tambin resetea el divisor del reloj, modo UP/DOWN.
MSP430F169. TIMER_A
Bloque Temporizador / Contador
- En funcin del modo de operacin se incrementa o decrementa con cada flanco de subida de la seal de reloj - Registro TAR de 16 bits que carga el valor a contar en TA. - Registro de lectura-escritura - El desbordamiento de TAR puede generar interrupcin. TAIFG=1 dentro del TAIV - Borrado de TAR mediante la puesta a 1 del bit TACLR dentro del registro TACTL. TACLR tambin resetea el divisor del reloj, modo UP/DOWN.
MSP430F169. TIMER_A
Fuente de reloj del TIMER_A. TACLK
- Fuentes internas ACLK, SMCLK - Fuentes externas TACLK, INCLK - TASSELx -IDx
MSP430F169. TIMER_A
Fuente de reloj del TIMER_A. TACLK
- Fuentes internas ACLK, SMCLK - Fuentes externas TACLK, INCLK - TASSELx - IDx
MSP430F169. TIMER_A
Fuente de reloj del TIMER_A. TACLK
- Fuentes internas ACLK, SMCLK - Fuentes externas TACLK, INCLK - TASSELx - IDx
MSP430F169. TIMER_A
Modos de operacin
- Tres modos de operacin distintos - MCx
MSP430F169. TIMER_A
Modos de operacin
- Tres modos de operacin distintos - MCx
MSP430F169. TIMER_A
Inicio y parada del TA
- Los bits de modo MCx>0 y la fuente de reloj activa - Modo UP UP/DOWN se para si se pone TACCR0=0. Se reinicia si se carga en TACCR00 ( el temporizador cuenta en direccin ascendente desde 0)
MSP430F169. TIMER_A
Modo UP
- Usado para periodos del temporizador de la mxima cuenta 0FFFFh. - Cuenta de forma ascendente. - El temporizador cuenta de forma aestable desde 0 hasta hasta el valor del registro de captura comparacin TACCR0. Cuando el TA llega al valor TACCR0 pone TAR=0 y repite la cuenta. - N de cuentas: desde 0h hasta TACCR0 TACCR0+1 TAR=0 - Si se selecciona el modo UP cuando TAR>TACCR0 de forma inmediata.
MSP430F169. TIMER_A
Modo UP - El flag de interrupcin TAIFG=1 en el paso de TACCR0 a 0h - El flag de interrupcin TACCR0 CCIFG =1 cuando TAR=TACCR0
MSP430F169. TIMER_A
Modo Continuo - Cuenta de forma ascendente y aestable hasta el mximo valor de TAR (0FFFFh). No usa el TACCR0
MSP430F169. TIMER_A
Modo Continuo -Para generar intervalos de tiempos independientes conjuntamente con los registros de captura /comparacin. -Cada vez que un intervalo se completa se puede generar una interrupcin. El siguiente intervalo se aade al registro de captura comparacin en la rutina de servicio de la interrupcin. - 3 eventos de interrupcin independientes usando los 3 registros de captura/comparacin. TACCR0,TACCR1, TACCR2
MSP430F169. TIMER_A
Modo UP/DOWN - Se quieren periodos distintos de 0FFFFh y pulsos simtricos. - Modo aestable - Se cuenta desde 0 en forma ascendente hasta alcanzar el valor del TACCR0. Cuando se alcanza este valor se cuenta de forma descendente hasta llegar a 0. El periodo es dos veces el contenido del registro. - La direccin de cuenta es almacenada, lo que permite parar al timer y reiniciarlo en la misma direccin.
MSP430F169. TIMER_A
Modo UP/DOWN - TACCR0 CCIFG =1 si el temporizador cuenta desde TACCR0-1 a TACCR0 - TAIFG=1 si se completa la cuenta DOWN desde 0001h a 0000h -Activos una vez en cada periodo y separados periodo
MSP430F169. TIMER_A
Modo UP/DOWN. Cambios del periodo de cuenta - DOWN. TACCR0 cambia - UP -Nuevo periodoperiodo actual del ciclo DOWN Cuenta hasta el nuevo periodo antes afecta tras la llegada a 0
-Nuevo periodo<periodo actual el temporizador comienza el ciclo DOWN pero puede darse una cuenta extra
MSP430F169. TIMER_A
Bloques de captura/comparacin - Tres bloques TACCR0, TACCR1, TACCR2 - Dos modos - Captura. almacena el valor del timer ante un determinado. Bit CAP=1 del registro TACCTL -Comparacin. Genera salida en un intervalo de tiempo. Bit CAP=0 del registro TACCTL
MSP430F169. TIMER_A
Bloques de captura/comparacin - Tres registros de control
MSP430F169. TIMER_A
MODO CAPTURA. CAP=1 - Entradas de captura CCIxA y CCIxB. Se conectan a terminales externos o internos -BITS CCISX determina la seal de captura.
MSP430F169. TIMER_A
MODO CAPTURA. CAP=1 - Entradas de captura CCIxA y CCIxB. Se conectan a terminales externos o internos -BITS CCISX determina la seal de captura.
MSP430F169. TIMER_A
MODO CAPTURA. CAP=1 - Entradas de captura CCIxA y CCIxB. Se conectan a terminales externos o internos - BITS CCISX determina la seal de captura. - BITS CMx determina los flancos captura
MSP430F169. TIMER_A
MODO CAPTURA. CAP=1 - Entradas de captura CCIxA y CCIxB. Se conectan a terminales externos o internos - BITS CCISX determina la seal de captura. - BITS CMx determina los flancos captura
MSP430F169. TIMER_A
Evento de captura provoca: - El valor del temporizador A se copia en el registro TACCRx - El flag de interrupcin TACCRx CCIFG= 1 El nivel de la seal de entrada se lee mediante el bit CCI del registro TACCTLx
MSP430F169. TIMER_A
Evento de captura provoca: - El valor del temporizador A se copia en el registro TACCRx - El flag de interrupcin TACCRx CCIFG= 1 El nivel de la seal de entrada se lee mediante el bit CCI del registro TACCTLx
MSP430F169. TIMER_A
Evento de captura provoca: - El valor del temporizador A se copia en el registro TACCRx - El flag de interrupcin TACCRx CCIFG= 1 El nivel de la seal de entrada se lee mediante el bit CCI del registro TACCTLx La seal capturada puede ser asncrona al reloj del temporizador. El bit SCS =1 sincroniza la captura con el flanco del reloj
MSP430F169. TIMER_A
Lgica de overflow - COV= 1 se produce una nueva captura antes de que la anterior haya sido leda. - Puesta a 0 por sw
MSP430F169. TIMER_A
Lgica de overflow - COV= 1 se produce una nueva captura antes de que la anterior haya sido leda. - Puesta a 0 por sw
MSP430F169. TIMER_A
MODO COMPARACIN. CAP=0 - Utilizado para generar salidas PWM interrupciones en intervalos de tiempo especificos. -Cuando el temporizador alcanza el valor de TACCRx se produce: -TACCRx CCIFG=1 -Seal interna EQUx=1 -EQUx afecta a la salida segn el modo de salida programado. -La seal de entrada CCI se almacena en SCCI
MSP430F169. TIMER_A
MODO COMPARACIN. CAP=0 - Utilizado para generar salidas PWM interrupciones en intervalos de tiempo especificos. -Cuando el temporizador alcanza el valor de TACCRx se produce: -TACCRx CCIFG=1 -Seal interna EQUx=1 -EQUx afecta a la salida segn el modo de salida programado. -La seal de entrada CCI se almacena en SCCI
MSP430F169. TIMER_A
Unidad de salida - Cada bloque de captura/comparacin tiene una unidad de salida - La unidad de salida tiene 8 modos de operacin que generan seales basadas en EQU0 y en EQUx - Los modos se definen por los bits OUTMODx del registro TACCTLx - La seal OUTx cambia con cada flanco de subida del reloj del temporizador excepto para el modo 0 - Los modos 2,3,6 y 7 nos son vlidos para la unidad de salida de TACCR0
MSP430F169. TIMER_A
Unidad de salida
MSP430F169. TIMER_A
Unidad de salida
MSP430F169. TIMER_A
Unidad de salida
MSP430F169. TIMER_A
Unidad de salida
MSP430F169. TIMER_A
Unidad de salida
MSP430F169. TIMER_A
Interrupciones del temporizador A -Dos vectores de interrupcin -TACCR0 vector de interrupcin para TACCR0 CCIFG -TAIV vector de interrupcin para TACCR1 CCIFG, TACCR2 CCIFG y TAIFG -En modo captura TACCRx CCIFG se pone a 1 cuando el temporizador es capturado en un registro TACCRx -En modo comparacin TACCRx CCIFG se pone a 1 cuando el temporizador alcanza el valor TACCRx - La peticin de interrupcin se produce cuando el flag TACCRx CCIFG=1 y: - el bit de habilitacin CCIEx=1
- GIE=1
MSP430F169. TIMER_A
Interrupciones del temporizador A -Los flags TACCRx CCIFG pueden ser puestos a 1 0 por sw
MSP430F169. TIMER_A
Interrupciones del temporizador A -El flag TAIFG puede ser puesto a 1 0 por sw
MSP430F169. TIMER_A
Interrupciones del temporizador A. Vector TACCR0 - El flag TACCR0 CCIFG se pone a 0 en la RTI
MSP430F169. TIMER_A
Interrupciones del temporizador A. Vector TAIV
MSP430F169. TIMER_A
Interrupciones del temporizador A. Vector TAIV
Este nmero puede ser evaluado o sumado al PC para poner en marcha la rutina de tratamiento apropiada. El acceso de lectura o escritura a este vector provoca el borrado automtico del flag de interrupcin pendiente de mayor prioridad. Este automatismo provoca uan gestin adecuada del vector TAIV LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. TIMER_A
Interrupciones del temporizador A.
MSP430F169. TIMER_A
Registros del temporizador A
MSP430F169. WATCHDOG
Circuito Watchdog. WDT La funcin fundamental del circuito watchdog es realizar una reinicializacin controlada del sistema tras un error software. Si el intervalo de tiempo programado expira se produce un reset PUC Si la funcin watchdog no se necesita en una aplicacin el mdulo puede ser usado como temporizador, permitiendo la generacin de una interrupcin en el intervalo programado. Caractersticas que incluye el circuito WDT Cuatro intervalos de cuenta seleccionables por software Modos Watchdog y Temporizador Acceso protegido al registro de control del WDT Configuracin del terminal #RST/NMI Fuente de reloj seleccionable
LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. WATCHDOG
Registros del watchdog
MSP430F169. WATCHDOG
Registro de control de WDT: WDTCTL Configuracin como watchdog o temporizador Configuracin del terminal #RST/NMI Acceso de escritura Escritura del byte alto con el valor 05Ah. En caso contrario se genera un reset PUC
MSP430F169. WATCHDOG
Contador/temporizador del WDT El contador/temporizador del circuito WDT, WDTCNT, es un contador ascendente de 16 bits no accesible por el programador Los intervalos de tiempo seleccionables. La fuente de reloj del temporizador es seleccionable entre ACLK y SMCLK. Ambos mediante el registro de control WDTCTL
MSP430F169. WATCHDOG
Contador/temporizador del WDT El contador/temporizador del circuito WDT, WDTCNT, es un contador ascendente de 16 bits no accesible por el programador Los intervalos de tiempo seleccionables. La fuente de reloj del temporizador es seleccionable entre ACLK y SMCLK. Ambos mediante el registro de control WDTCTL
MSP430F169. WATCHDOG
Modo Watchdog Despus del reset PUC. El mdulo WDT est configurado en modo watchdog con intervalo de reset inicial de ~ 32ms. El programador debe reestablecer el watchdog antes de este tiempo, parar borrar el WDT antes de la expiracin de este intervalo de tiempo. Provoca un reset PUC : Clave de acceso incorrecta Expiracin del temporizador en modo watchdog Valor de reset inicial ~ 32ms.
Por defecto: La seal de reloj del watchdog es SMCLK (WDTSSEL=0) generada a partir del DCO. DCO=1MHz WDTIS=00 f
DCO/32768
Intervalo=32768/fDCO=~32ms
LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. WATCHDOG
Modo Temporizador Este modo permite la generacin de interrupciones peridicas. Si WDTIFG=1 cuando expira el intervalo Si WDTIE=1 y GIE=1 entonces se produce interrupcin
Vector de Interrupcin en modo temporizador distinto del modo Watchdog WDTIFG se resetea de forma automtica cuando se sirve la interrupcin se puede resetear por sw.
LABORATORIO DE SISTEMAS DIGITALES
MSP430F169. WATCHDOG
Modo Watchdog. Interrupciones
RESET PUC Expiracin del temporizador Violacin de la clave de acceso a WDTCTL WDTIFG=1 El reset PUC puede ser provocado por otros eventos. Para determinar la causa se testea el bit WDTIFG. Puesta a 0 de WDTIFG por programa
WDTIFG se pone a 0 de forma automtica cuando se sirve la interrupcin. Tambin se puede poner a 0 por programa
LABORATORIO DE SISTEMAS DIGITALES