Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual - MicrocontroladorMSP430 - Copiar
Manual - MicrocontroladorMSP430 - Copiar
Microcontrolador MSP430_4794
Figura Error! No hay texto con el estilo especificado en el documento..1 Arquitectura del
microcontrolador MSP430_4794.
1.1.1.
Espacio de direcciones
Tamao
Flash
Flash
Tamao
Flash
ROM
RAM
Tamao
Perifricos
16-bit
8-bit
8-bit SFR
60KB
0FFFFh to 0FFE0h
0FFFFh to 01100h
256 Byte
010FFh to 01000h
1KB
0FFFh to 0C00h
2.5KB
0BFFh to 0200h
01FFh to 0100h
0FFh to 010h
0Fh to 00h
Flash/ROM
Esta memoria puede ser programada a travs del puerto JTAG utilizando
el bootstrap loader (BSL- cargador de inicializacin). Tiene una capacidad
de 60 KB y las direcciones comprenden desde 0FFFFh hasta 0FFE0h para
el vector de interrupcin y del 0FFFFh hasta 01100h para el cdigo de
memoria. A parte dispone de 256 Bytes para memoria de informacin
comprendiendo los espacios desde 010FFh hasta 01000h y de 1 KB para la
memoria de arranque siendo sus espacios de direcciones los que van desde
0FFFh a 0C00h.
Perifricos
Estn conectados a la CPU mediante los buses de datos, direcciones y
buses de control de la CPU, pudiendo ser manejados utilizando todas las
instrucciones. Para los perifricos de 16 bit estn reservados los espacios
de memoria comprendidos entre 01FFh a 0100h y para los de 8 bit del
0FFh al 010h.
RAM
Este tipo de memoria cuenta con 2.5 KB y sus espacios de memoria van
desde 0BFFh al 0200h.
Registros de funciones especiales (SFRs)
Algunas funciones para los perifricos se configuran en los SFRs. stos
estn localizados en los ltimos 16 bytes de los espacios de direcciones.
Las direcciones van desde 0Fh hasta 00h.
1.1.2.
reset.
Un nivel bajo generado por SVS cuando PORON=1.
Figura Error! No hay texto con el estilo especificado en el documento..2 Esquema de los
mecanismos Power-On Reset y Power-Up Clear
El pin
1.1.2.2. Interrupciones
Las prioridades de las interrupciones se fijan y definen por la disposicin de los
mdulos conectados en cadena como aparece en la figura 2.3. El mdulo ms
cercano al CPU/NMIRS tiene la mayor prioridad. Las prioridades de las
interrupciones determinan que interrupcin ser efectiva cuando ms de una estn
pendientes al mismo tiempo. Existen tres tipos de interrupciones:
System reset.
(Non)-maskable NMI.
Maskable.
Figura Error! No hay texto con el estilo especificado en el documento..3 Esquema de prioridad
de las interrupciones.
Figura Error! No hay texto con el estilo especificado en el documento..4 Diagrama de bloques
de los orgenes de las NMI.
Una interrupcin NMI puede ser generada por tres vas distintas:
Cuando el pin
El fallo de un oscilador.
Una violacin de acceso a la memoria flash.
RESET/NMI PIN
En el arranque, el pin
pines del
pin
el pin
flanco de seal seleccionado por el bit WDTNMIES genera una interrupcin NMI si
el bit NMIIE est a 1. El
/NMI apunta a NMIIFG que tambin est a 1.
FALLO DEL OSCILADOR
La seal de fallo del oscilador advierte de una condicin de error posible con el
cristal de cuarzo. El fallo de oscilador puede ser habilitado para generar una
interrupcin NMI por la configuracin del bit OFIE. El flag OFIFG puede ser
comprobado por la rutina de servicio de interrupcin NMI para averiguar si el fallo
del oscilador origin el NMI.
El PUC puede disparar un fallo del oscilador, porque el PUC cambie el LFXT1 al
modo LF, as mismo desactivando el modo HF. La seal de PUC tambin desactiva
el oscilador XT2.
VIOLACIN DE ACCESO A LA MEMORIA FLASH
El flag ACCVIFG se pone a 1 cuando ocurre una violacin de acceso al flash. El
Flash Access Violation puede ser habilitado para generar una interrupcin NMI
configurando el bit ACCVIE. El flag ACCVIFG puede entonces comprobarse por la
rutina de servicio de interrupcin NMI para averiguar si la violacin de acceso a la
flash provoc el NMI.
Figura Error! No hay texto con el estilo especificado en el documento..5 Rutina de servicio de
interrupcin.
Retorno de Interrupcin
La rutina de tratamiento de interrupciones termina con la siguiente instruccin:
RETI (Return froman interrupt service routine)
El retorno de interrupcin necesita 5 ciclos para ejecutar las acciones siguientes y
que se muestran en la figura 2.6:
1) El SR con todos sus ajustes previos aparece de la pila. Todos los ajustes
previos del GIE, CPUOFF, etc., entran ahora en vigor, sin tener en cuenta
los ajustes utilizados en la rutina de servicio de interrupcin.
2) El PC aparece de la pila y empieza su ejecucin en el punto en el que fue
interrumpido.
Figura Error! No hay texto con el estilo especificado en el documento..6 Funcionamiento del
retorno de interrupcin
USCI_A0/B0 Transmit
SD16_A
Timer_A3
Timer_A3
I/O Port P1
(Eight Flags)
USCI_A1/B1 Receive
USCI_A1/B1 Transmit
I/O Port P2
(Eight Flags)
Basic Timer1
Flags de Interrupcin
Tipo de
Interrupcin
Direccin
Prioridad
PORIFG
RSTIFG
WDTIFG
KEYV
(Ver nota 1)
Reset
0FFFEh
15, highest
NMI
0FFFCh
14
Enmascarada
0FFFAh
13
Enmascarada
0FFF8h
12
Enmascarada
Enmascarada
0FFF6h
0FFF4h
11
10
Enmascarada
0FFF2h
Enmascarada
0FFF0h
Enmascarada
0FFEEh
Enmascarada
0FFECh
Enmascarada
0FFEAh
Enmascarada
0FFE8h
Enmascarada
0FFE6h
Enmascarada
0FFE4h
Enmascarada
0FFE2h
Enmascarada
0FFE0h
0, lowest
Tabla Error! No hay texto con el estilo especificado en el documento..2 Fuentes, marcadores y
vectores de interrupcin.
/NMI.
Leyenda:
rw-0 Bit de lectura y escritura. Se pone 0 con el PUC.
rw-1 Bit de lectura y escritura. Se pone a 1 con el PUC.
rw-(0) Bit de lectura y escritura. Se pone a 0 con el POR.
rw-(1) Bit de lectura y escritura. Se pone a 1 con el POR.
La CPU se desactiva.
El reloj de sub-sistema (SMCLK) y auxiliar (ACLK) permanecen activos.
El reloj maestro se desactiva.
El control de bucle del modulo FLL+ permanece activo.
La CPU se desactiva.
El control de bucle del modulo FLL+ se desactiva.
El reloj de sub-sistema (SMCLK) y auxiliar (ACLK) permanecen activos.
El reloj maestro se desactiva.
La CPU se desactiva.
El reloj maestro (MCLK), el control de bucle del modulo FLL+ y la fuente
de oscilador controlado digitalmente (DCOCLK) se desactivan.
El generador dc DCO permanece activo.
El ACLK permanece activo.
La CPU se desactiva.
El MCLK, el control de bucle FLL+ y el DCOCLK se desactivan.
El generador dc DCO se desactiva.
El ACLK permanece activo.
La CPU se desactiva.
El ACLK se desactiva.
El MCLK, el control de bucle FLL+ y el DCOCLK se desactivan.
El generador dc DCO se desactiva.
El reloj de cuarzo se para.
Figura Error! No hay texto con el estilo especificado en el documento..7 Modos de funcionamiento
1.1.3.
CPU
La CPU MSP430 tiene una arquitectura RISC de 16-bit que es muy transparente
para la aplicacin. Todas las operaciones, a parte de las instrucciones de flujo del
programa que son 27, se llevan a cabo como operaciones de registro en conjunto con
siete modos de direccionamiento para el operando de la fuente y cuatro modos de
direccionamiento para el operando de destino.
Figura Error! No hay texto con el estilo especificado en el documento..8 Diagrama de bloques
de la CPU.
1.1.3.1. Registros
La CPU est integrada con 16 registros de 16-bit que facilitan la reduccin del
tiempo de ejecucin de instrucciones. El tiempo de ejecucin de la operacin
registro a registro es un ciclo del reloj de la CPU. Cuatro de los registros, R0 a R3,
se dedican como contador de programa, puntero de pila, registro de estado, y un
generador constante, respectivamente. Los registros restantes son de uso general.
Los perifricos estn conectados a la CPU a partir de datos, direccin y control de
los buses, y se puede manejar con todas las instrucciones.
CONTADOR DE PROGRAMA (PC)
El contador de programa de 16-bit (PC/R0) apunta a la siguiente
instruccin que se va a ejecutar. Cada instruccin utiliza un nmero par de
bits y consecuentemente se incrementa el PC.
STACK POINTER (SP)
La CPU utiliza el Stack Pointer (SP/R1) para almacenar las direcciones de
retorno de las llamadas de subrutinas e interrupciones. Utiliza una
combinacin de predecremento y postincremento. Adems se puede usar
mediante software todas las instrucciones y modos de direccionamiento.
REGISTRO DE ESTADO (SR)
El registro de estado (SR/R2), utilizado como una fuente o registro de
destino, puede ser utilizado en el modo de registro nicamente con
instrucciones de palabra. El resto de combinaciones de modos de
direccionamiento se utilizan para apoyar el generador constante.
GENERADOR CONSTANTE DE REGISTROS (CG1 Y CG2)
Las seis constantes comnmente ms usadas se forman por los
generadores de registros R2 y R3, sin necesitar una palabra de 16-bit
adicional del cdigo de programa. Las constantes son seleccionadas con el
modo de direccionamiento del registro de origen (As Addressing
source).
REGISTROS DE PROPSITO GENERAL
Son doce los registros de propsito general, R4 a R15. Todos se pueden
utilizar como registros de datos, punteros de direccin, o valores de ndice,
y pueden ser accedidos mediante instrucciones de byte o de palabra.
1) Modo de Registro(directo)
Como bien se expresa en la tabla esta operacin mueve el contenido del
registro R10 al registro R11.
Tabla Error! No hay texto con el estilo especificado en el documento..4 Register mode.
2) Modo Indexado
En este caso el contenido que se mueve es el perteneciente al espacio de
memoria de la suma del registro indicado y la cantidad especificada
delante. El Program Counter se incrementa automticamente.
Tabla Error! No hay texto con el estilo especificado en el documento..5 Indexed mode.
3) Modo Simblico
Mueve el contenido del espacio de memoria de origen EDE, contenido del
PC + X, hasta el espacio de memoria de destino TONI, contenido del PC +
Y. El Program Counter se incrementa automticamente.
Tabla Error! No hay texto con el estilo especificado en el documento..6 Symbolic mode.
4) Modo Absoluto
Mueve el contenido del espacio de memoria de origen EDE al espacio de
memoria de destino TONI. El PC se incrementa automticamente.
Tabla Error! No hay texto con el estilo especificado en el documento..7 Absolute mode.
5) Modo Indirecto
Mueve el contenido del espacio de memoria de origen, contenido del
registro R10, al espacio de destino, contenido del registro R11.
Tabla Error! No hay texto con el estilo especificado en el documento..8 Indirect mode.
Tabla Error! No hay texto con el estilo especificado en el documento..9 Indirect autoincrement
mode.
7) Modo Inmediato
Tabla Error! No hay texto con el estilo especificado en el documento..10 Immediate mode.
dst
As
S-reg
Ad
D-reg
S-Reg,
D-Reg
dst
src,dst
src,dst
src,dst
src,dst
src,dst
src,dst
dst
dst
Description
Operation
Add C to destination
Add source to destination
Add source and C to destination
AND source and destination
Clear bits in destination
Set bits in destination
Test bits in destination
Branch to destination
Call destination
dst + C dst
src + dst dst
src + dst + C dst
src .and. dst dst
.not.src .and. dst dst
src .or. dst dst
src .and. dst
dst PC
PC+2 stack, dst PC
CLR(.B)
CLRC
CLRN
CLRZ
CMP(.B)
dst
src,dst
dst
src,dst
dst
Clear destination
Clear C
Clear N
Clear Z
Compare source and destination
DADC(.B) dst
DADD(.B)
dst
DEC(.B)
DECD(.B)
DINT
EINT
INC(.B)
INCD(.B)
INV(.B)
JC/JHS
JEQ/JZ
JGE
JL
JMP
JN
JNC/JLO
JNE/JNZ
MOV(.B)
NOP
POP(.B)
PUSH(.B)
RET
RETI
RLA(.B)
RLC(.B)
RRA(.B)
RRC(.B)
SBC(.B)
SETC
SETN
SETZ
SUB(.B)
SUBC(.B)
SWPB
SXT
TST(.B)
XOR(.B)
dst
dst
label
label
label
label
label
label
label
label
src,dst
dst
src
dst
dst
dst
dst
dst
src,dst
src,dst
dst
dst
dst
src,dst
dst
src,dst
src,dst
src,dst
src,dst
src,dst
src,dst
dst
Dst
Dst
src,dst
Decrement destination
Double-decrement destination
Disable interrupts
Enable interrupts
Increment destination
Double-increment destination
Invert destination
Jump if C set/Jump if higher or same
Jump if equal/Jump if Z set
Jump if greater or equal
Jump if less
Jump
Jump if N set
Jump if C not set/Jump if lower
Jump if not equal/Jump if Z not set
Move source to destination
No operation
Pop item from stack to destination
Push source onto stack
Return from subroutine
Return from interrupt
Rotate left arithmetically
Rotate left through C
Rotate right arithmetically
Rotate right through C
Subtract not(C) from destination
Set C
Set N
Set Z
Subtract source from destination
Subtract source and not(C) from dst.
Swap bytes
Extend sign
Test destination
Exclusive OR source and destination
0 dst
0C
0N
0Z
dst src
dst + C dst
(decimally)
src + dst + C dst
(decimally)
dst 1 dst
dst 2 dst
0 GIE
1 GIE
dst +1 dst
dst+2 dst
.not.dst dst
PC + 2 x offset PC
src dst
@SP dst, SP+2 SP
SP 2 SP, src @SP
@SP PC, SP + 2 SP
dst + 0FFFFh + 1
src .xor. dst dst
1.1.4.
Figura Error! No hay texto con el estilo especificado en el documento..9 Diagrama de bloques
del mdulo FLL+.
FN_4
0
0
0
1
X
FN_3
0
0
1
X
X
FN_2
0
1
X
X
X
Tabla Error! No hay texto con el estilo especificado en el documento..12 Rango de frecuencias
de los bits de control DCO
Short Form
SCFQCTL
SCFI0
SCFI1
FLL_CTL0
FLL_CTL1
FLL_CTL2
IE1
IFG1
Register Type
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write
Read/write
Address
052h
050h
051h
053h
054h
055h
000h
002h
Initial State
01Fh with PUC
040h with PUC
Reset with PUC
003h with PUC
Reset with PUC
Reset with PUC
Reset with PUC
Reset with PUC
Tabla Error! No hay texto con el estilo especificado en el documento..13 Registros FLL+
En la tabla 2.12 se pueden ver los 8 registros del mdulo de reloj FLL+ que a
continuacin se explicarn detalladamente.
SCFQCTL, registro de control del reloj del sistema
SCFQ_M
Bit-7
Bits
6-0
FLLDx
Bits
7-6
FN_x
Bits
5-2
MODx (LSBs)
Bits
1-0
/1
/2
/4
/8
DCOx
Bits
7-3
MODx (MSBs)
Bits
1-0
DCOPLUS
Bits-7
XTS_FLL
Bit-6
XCAPxPF
Bits
5-4
XT2OF
Bit-3
XT1OF
Bit-2
LFOF
Bit-1
DCOF
Bit-0
LFXT1DIG
Bit-7
SMCLKOFF
Bit-6
XT2OFF
Bit-5
SELMx
Bits
4-3
DCOCLK
DCOCLK
XT2CLK
LFXT1CLK
SELS
Bit-2
FLL_DIVx
Bits
1-0
/1
/2
/4
/8
XT2Sx
Bits
7-6
Reserved
Bits
5-0
Reservado.
Bits
7-2
Bit-1
OFIE
Bit-0
OFIFG
Bits
7-2
Bit-1
Bit-0
1.1.5.
Figura Error! No hay texto con el estilo especificado en el documento..10 Diagrama de bloques
del mdulo de memoria flash.
Figura Error! No hay texto con el estilo especificado en el documento..11 Diagrama de bloques
del generador de sincronizacin
ERASE
Modo de borrado
Borrado de un segmento
Tabla Error! No hay texto con el estilo especificado en el documento..14 Modos de borrado.
BLKWRT
Modo de escritura
Escritura de byte/Word
Escritura de un bloque
Tabla Error! No hay texto con el estilo especificado en el documento..15 Modos de escritura.
FRKEY/FWKEY
BLKWRT
WRT
Reserved
EEIEX
EEI
MERAS
ERASE
Reserved
FRKEY/FWKEY
FSSELx
FNx
FRKEY/
FWKEY
FAIL
Bits
15-8
Bit-7
LOCKA
Bit-6
EMEX
Bit-5
LOCK
Bit-4
WAIT
Bit-3
ACCVIFG
Bit-2
KEYV
Bit-1
BUSY
Bit-0
FRKEY/FWKEY
Reserved
MRG1
MRG0
Reserved
Bits
15-8
Bits
7-6
Bit-5
ACCVIE
1.1.6.
Monitorizacin de AVCC.
Generacin de POR elegible.
Salida del comparador SVS accesible por software.
Condicin de baja tensin descargada y accesible por software.
14 umbrales de nivel seleccionables.
Canal externo para monitorizar la tensin externa.
Figura Error! No hay texto con el estilo especificado en el documento..12 Diagrama de bloques
del SVS
Figura Error! No hay texto con el estilo especificado en el documento..13 Funcionamiento del
SVS
VLDx
Bits
7-4
PORON
SVSON
SVSOP
SVSFG
Bit-3 POR encendido. ste bit habilita el flag SVSFG para originar
un POR.
0 SVSFG no origina un POR
1 SVSFG origina un POR
Bit-2 SVS encendido. Refleja el estado de funcionamiento de
1.1.7.
1.1.8.
Temporizador Watchdog
Figura Error! No hay texto con el estilo especificado en el documento..14 Diagrama de bloques
del temporizador Watchdog
Los dispositivos de MSP430 tienen varios modos de bajo consumo que pueden
disponer de diferentes seales de reloj. Los requisitos de las aplicaciones del usuario
y el tipo de sincronizacin utilizado determinan como el WDT se debe configurar.
Por ejemplo, no se debe configurar en modo Watchdog con SMCLK como fuente de
reloj si se quiere usar LPM3, porque SMCLK no est activo en LPM3 y entonces no
funcionara WDT. Si WDT+ se genera desde SMCLK, ste permanece habilitado
durante LPM3, lo cual incrementa el consumo de corriente en el modo LPM3.
Cuando el temporizador Watchdog no es necesario, el bit WDTHOLD se puede
utilizar para mantener WDTCNT, reduciendo el consumo de energa.
1.1.8.2. Registros del temporizador Watchdog
Tabla Error! No hay texto con el estilo especificado en el documento..17 Registros de WDT
WDTPW
WDTHOLD
WDTNMIES
Bits Contrasea WDT. Siempre se lee como 096h. Debe ser escrita
15-8 como 0A5h o se genera un PUC .
Bit-7 Retencin WDT. ste bit detiene el WDT. Ajustando
WDTNMI
WDTTMSEL
WDTCNTCL
WDTSSEL
WDTISx
NMIIE
WDTIE
NMIIFG
WDTIFG
1.1.9.
Temporizador bsico
Figura Error! No hay texto con el estilo especificado en el documento..15 Diagrama de bloques
del Basic timer
Interrupciones del BT
El temporizador bsico utiliza dos bits en el registro de funciones especiales
(SFRs) para controlar las interrupciones. stas son el flag de interrupcin del BT,
BTIFG localizado en IFG2.7, y la habilitacin de interrupcin del BT, BTIE que se
encuentra en IE2.7.
El flag BTIFG se pone a 1 despus de estar seleccionado el intervalo de tiempo y
hecha la llamada a la interrupcin del BT siempre que GIE y BTIE estn a 1. El flag
BTIFG se reinicia automticamente cuando la interrupcin es atendida, pudiendo
tambin reiniciarse por software.
1.1.9.2. Registros del temporizador bsico
Tabla Error! No hay texto con el estilo especificado en el documento..18 Registros del Basic
Timer1
BTSSEL
BTHOLD
BTDIV
BTCNT2 se retiene
BTSSEL selecciona la fuente de reloj de BTCNT2.
BTSSEL
0
0
1
1
BTDIV
0
1
0
1
BTFRFQx
BTIPx
Bits
4-3
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
fCLK2
/2
/4
/8
/ 16
/ 32
/ 64
/ 128
/ 256
BTCNT1, Contador 1 de BT
BTCNT1x
Bits
7-0
BTCNT2, Contador 2 de BT
BTCNT2x
Bits
7-0
BTIE
BTIFG
1.1.10. Timer_A
El Temporizador_A es un contador/temporizador de 16-bit con tres o cinco
registros de captura/comparacin. Admite mltiples capturas/comparaciones, salidas
PWM, e intervalos de temporizacin. Timer_A tiene capacidad para varias
interrupciones. Las interrupciones se deben generar desde el contador en
condiciones de desbordamiento y desde cada registro de captura/comparacin. Este
temporizador se caracteriza por:
Contador de temporizacin asncrono de 16-bit con cuatro modos de
funcionamiento.
Fuente de reloj con posibilidad de configuracin y eleccin.
Tres o cinco registros configurables de captura/comparacin.
Salidas configurables con capacidad de PWM.
Entrada asncrona y salida de retencin.
Registro del vector de interrupcin para una rpida decodificacin de
todas las interrupciones del Timer_A.
En la figura 2.16 se puede observar el diagrama de bloques del funcionamiento
del Temporizador_A.
Figura Error! No hay texto con el estilo especificado en el documento..16 Diagrama de bloques
del Timer_A
Modo
Parado
Ascendente
10
Continuo
11
Ascendente/descendente
Descripcin
El temporizador se para
El temporizador cuenta repetidamente desde 0
hasta el valor de TACCR0
El temporizador cuenta repetidamente desde 0
hasta 0FFFFh
El temporizador cuenta repetidamente desde 0
hasta el valor de TACCR0 y vuelve hasta 0
Tabla Error! No hay texto con el estilo especificado en el documento..19 Modos del
temporizador A
Modo ascendente
El modo ascendente se utiliza si el periodo del temporizador debe ser diferente
del cmputo 0FFFFh. El temporizador cuenta repetidamente en orden ascendente
hasta el valor del registro de comparacin TACCR0, el cual define el periodo como
se muestra en la figura 2.17. El nmero de la cuenta del temporizador en el perodo
es TACCR0+1. Cuando el valor del temporizador se iguala a TACCR0 se reinicia el
temporizador contando desde 0 de nuevo. Si se selecciona este modo cuando el valor
del temporizador es mayor que TACCR0, el temporizador se reinicia empezando
desde 0.
Figura Error! No hay texto con el estilo especificado en el documento..17 Perodo de conteo de
Timer_A Up mode
Figura Error! No hay texto con el estilo especificado en el documento..18 Ajuste del flag en el
modo ascendente del Timer_A
Modo continuo
En el modo continuo, el temporizador cuenta repetidamente hasta 0FFFFh y se
reinicia desde 0 como se muestra en la figura 2.19. El registro de
comparacin/captura TACCR0 trabaja de la misma manera que los otros registros de
captura/comparacin.
Figura Error! No hay texto con el estilo especificado en el documento..19 Periodo de conteo del
Timer_A Continuous mode
Figura Error! No hay texto con el estilo especificado en el documento..20 Ajuste del flag del
Timer_A en el modo continuo
Modo ascendente/descendente
ste modo se utiliza si el periodo del temporizador debe ser diferente del
cmputo 0FFFFh, y si se necesita una generacin de pulsos simtrica. El
temporizador cuenta en orden ascendente repetidamente hasta el valor del registro
TACCR0 y vuelve hasta 0 en orden descendente, tal como muestra la figura 2.21. El
periodo es dos veces el valor del registro TACCR0.
Figura Error! No hay texto con el estilo especificado en el documento..21 Periodo de conteo del
Timer_A Up/down mode
Figura Error! No hay texto con el estilo especificado en el documento..22 Ajuste del flag del
Timer_A en el modo ascendente/descendente
Descripcin
000
Output
001
Set
010
011
Set/Reset
100
Toggle
101
Reset
110
Toggle/Set
111
Reset/Set
Tabla Error! No hay texto con el estilo especificado en el documento..20 Modos de salida del
Timer_A
Figura Error! No hay texto con el estilo especificado en el documento..23 Ejemplo de salida del
Timer_A en Up mode
del
de
del
a0
sus
Figura Error! No hay texto con el estilo especificado en el documento..24 Flag de interrupcin
TACCR0
Unused
TASSELx
IDx
Bits
15-10
Bits
9-8
Bits
7-6
MCx
Bits
5-4
Unused
TACLR
Bit-3
Bit-2
TAIE
Bit-1
TAIFG
Bit-0
No se utiliza.
Seleccin de la fuente de reloj del Timer_A.
00 TACLK
01 ACLK
10 SMCLK0
11 TACLK invertido
Estos bits seleccionan el divisor para el reloj de entrada.
00 /1
01 /2
10 /4
11 /8
Control de modo. Poniendo MCx = 00h cuando el Timer_A no est
en uso ahorra energa.
00 Modo de parada: el temporizador se para
01 Modo ascendente: el temporizador cuenta hasta TACCR0
10 Modo continuo: el temporizador cuenta hasta 0FFFFh
11 Modo ascendente/descendente: cuenta hasta TACCR0 y de
ah hasta 0
No se utiliza.
Se borra el Timer_A. ste bit reinicia el TAR, el divisor de reloj y
la direccin de la cuenta. TACLR se reinicia automticamente y
siempre se lee como 0.
Habilitacin de interrupcin del Timer_A. ste bit habilita la
llamada a la interrupcin TAIFG.
0
Interrupcin deshabilitada
1
Interrupcin habilitada
Flag de interrupcin del Timer_A.
0
No hay interrupcin pendiente
1
Interrupcin pendiente
TARx
Bits
15-0
TACCRx
Bits
15-0
CMx
CCISx
SCS
SCCI
Unused
CAP
OUTMODx
CCIE
Bits
15-14
Modo de captura.
00
No hay captura
01
Captura en el flanco de subida
10
Captura en el flanco de bajada
11
Captura en ambos flancos
Bits
Seleccin de entrada de captura/comparacin.
13-12 stos bits seleccionan la seal de entrada.
CCIxA
00
CCIxB
01
GND
10
VCC
11
Bit-11 Sincronizacin de la fuente de captura. ste bit se utiliza para
sincronizar la seal de entrada de captura con el reloj
temporizador.
Captura asncrona
0
Captura sncrona
1
Bit-10 Entrada sincronizada de captura/comparacin. La seal de
entrada CCI seleccionada se retiene con la seal EQUx y se
puede leer a travs de este bit.
Bit-9 No se utiliza.
Bit-8 Seleccin de modo captura/comparacin.
0
Modo de comparacin
1
Modo de captura
Bits
Modo de salida. Los modos 2, 3, 6 y 7 no tiles para el
7-5
TACCR0 porque EQUx = EQU0.
000
Valor del bit OUT
001
Set
010
Toggle/Reset
011
Set/Reset
100
Toggle
101
Reset
110
Toggle/Set
111
Reset/Set
Bit-4 Habilitacin de la interrupcin de captura/comparacin. Este
bit habilita la llamada a la interrupcin del flan CCIFg
correspondiente.
CCI
Bit-3
OUT
Bit-2
COV
Bit-1
CCIFG
Bit-0
0 Interrupcin deshabilitada
1 Interrupcin habilitada
Entrada de captura/comparacin. La seal de entrada
seleccionada se puede leer con este bit.
Salida. Para el modo de salida 0, este bit controla
directamente el estado de la salida.
0 Salida baja
1 Salida alta
Desbordamiento de captura. Este bit indica la existencia de un
desbordamiento en la captura. COV se debe reiniciar con
software.
0 No hay desbordamiento de captura
1 Existencia de desbordamiento en la captura
Flag de interrupcin de captura/comparacin
0
1
TAIVx
Bits
15-0
1.1.11. Timer_B
El Temporizador_B es un contador/temporizador de 16-bit con tres o siete
registros de captura/comparacin. Admite mltiples capturas/comparaciones, salidas
PWM, e intervalos de temporizacin. Timer_B tiene capacidad para varias
interrupciones. Las interrupciones se deben generar desde el contador en
condiciones de desbordamiento y desde cada registro de captura/comparacin. Este
temporizador se caracteriza por:
Contador de temporizacin asncrono de 16-bit con cuatro modos de
funcionamiento y cuatro longitudes seleccionables.
Fuente de reloj con posibilidad de configuracin y eleccin.
Tres o siete registros configurables de captura/comparacin.
Salidas configurables con capacidad de PWM.
Enganches de comparacin de buffer doble con carga sincronizada.
Registro del vector de interrupcin para una rpida decodificacin de
todas las interrupciones del Timer_B.
En la figura 2.23 se puede observar el diagrama de bloques del funcionamiento
del Temporizador_B.
1.1.11.1. Contador de 16-bit
El registro del contador de 16-bit, TBR, se incrementa o decrementa con cada
flanco de subida de la seal de reloj. Se puede tener acceso de lectura o escritura al
TBR mediante software. Adems, el temporizador puede generar una interrupcin
cuando se desborda. TBR se debe borrar ajustando el bit TBCLR. Con este bit
tambin se borra el divisor de reloj y el modo ascendente o descendente de la cuenta.
El reloj de temporizacin se puede generar desde ACLK, SMCLK o externamente
a travs de TBCLK o INCLK. La fuente de reloj se selecciona con los bits
TBSSELx. La fuente de reloj debe pasar directamente al temporizador o al divisor
por 2, 4 u 8 utilizando los bits IDx. El divisor de reloj se reinicia cuando TBCLR
est a 1.
El Timer_B se puede configurar a travs de los bits CNTLx para funcionar como
temporizador de 8, 10, 12 o 16-bit. El mximo valor de conteo, TBR(max),para las
longitudes seleccionables es 0FFh, 03Fh, 0FFFh, y 0FFFFh, respectivamente. Los
datos escritos en el registro TBR en los modos de 8, 10 y 12-bit estn justificados a
la derecha con los ceros a la izquierda.
1.1.11.2. Iniciando el temporizador
El temporizador se debe iniciar o reiniciar por los siguientes mtodos:
Figura Error! No hay texto con el estilo especificado en el documento..25 Diagrama de bloques
del Timer_B
Modo
Parado
Ascendente
10
Continuo
11
Ascendente/descendente
Descripcin
El temporizador se para
El temporizador cuenta repetidamente desde 0
hasta el valor de TBCL0
El temporizador cuenta repetidamente desde 0
hasta el valor seleccionado por los bits CNTLx
El temporizador cuenta repetidamente desde 0
hasta el valor de TBCL0 y vuelve hasta 0
Tabla Error! No hay texto con el estilo especificado en el documento..21 Modos del
temporizador B
Modo ascendente
El modo ascendente se utiliza si el periodo del temporizador debe ser diferente
del cmputo TBR(max). El temporizador cuenta repetidamente en orden ascendente
hasta el valor del registro de comparacin TBCL0, el cual define el periodo como se
muestra en la figura 2.24. El nmero de la cuenta del temporizador en el perodo es
TBCL0+1. Cuando el valor del temporizador se iguala a TBCL0 se reinicia el
temporizador contando desde 0 de nuevo. Si se selecciona este modo cuando el valor
del temporizador es mayor que TBCL0, el temporizador se reinicia empezando
desde 0.
Figura Error! No hay texto con el estilo especificado en el documento..26 Periodo de conteo del
Timer_B Up mode
Figura Error! No hay texto con el estilo especificado en el documento..27 Ajuste del flag en el
modo ascendente del Timer_B
Figura Error! No hay texto con el estilo especificado en el documento..28 Periodo de conteo del
Timer_B Continuous mode
Figura Error! No hay texto con el estilo especificado en el documento..29 Ajuste del flag en el
modo continuo del Timer_B
Modo ascendente/descendente
ste modo se utiliza si el periodo del temporizador debe ser diferente del
cmputo TBR(max), y si se necesita una generacin de pulsos simtrica. El
temporizador cuenta en orden ascendente repetidamente hasta el valor del registro
TBCL0 y vuelve hasta 0 en orden descendente, tal como muestra la figura 2.28. El
periodo es dos veces el valor del registro TBCL0.
Figura Error! No hay texto con el estilo especificado en el documento..30 Periodo de conteo del
Timer_B Up/down mode
Figura Error! No hay texto con el estilo especificado en el documento..31 Ajuste del flag en
modo Ascendente/descendente
Descripcin
000
Output
001
Set
010
011
Set/Reset
100
Toggle
101
Reset
110
Toggle/Set
111
Reset/Set
Figura Error! No hay texto con el estilo especificado en el documento..32 Ejemplo de salida del
Timer_B en Up/down mode
Figura Error! No hay texto con el estilo especificado en el documento..33 Flag de interrupcin
TBCCR0
Unused
Bit-15 No se utiliza.
TBCLGRPx
CNTLx
Unused
TBSSELx
IDx
Bit-10
Bits
9-8
Bits
7-6
No se utiliza.
Seleccin de la fuente de reloj del Timer_B.
00 TBCLK
01 ACLK
10 SMCLK0
11 TBCLK invertido
Estos bits seleccionan el divisor para el reloj de entrada.
00
01
10
11
/1
/2
/4
/8
MCx
Bits
5-4
Unused
TBCLR
Bit-3
Bit-2
TBIE
Bit-1
TBIFG
Bit-0
TBRx
Bits
15-0
TBCCRx
Bits
15-0
CMx
CCISx
SCS
Bits
15-14
Modo de captura.
00
No hay captura
01
Captura en el flanco de subida
10
Captura en el flanco de bajada
11
Captura en ambos flancos
Bits
Seleccin de entrada de captura/comparacin. stos bits
13-12 seleccionan la seal de entrada.
CCIxA
00
CCIxB
01
GND
10
VCC
11
Bit-11 Sincronizacin de la fuente de captura. ste bit se utiliza para
sincronizar la seal de entrada de captura con el reloj
temporizador.
Captura asncrona
0
Captura sncrona
1
CLLDx
Bits
10-9
CAP
Bit-8
OUTMODx
Bits
7-5
CCIE
Bit-4
CCI
Bit-3
OUT
Bit-2
COV
Bit-1
CCIFG
Bit-0
TBIVx
Bits
15-0
Figura Error! No hay texto con el estilo especificado en el documento..34 Diagrama de bloques
del convertidor AD
Figura Error! No hay texto con el estilo especificado en el documento..35 Circuito equivalente
de la entrada analgica
Donde:
Con
haciendo referencia a
Capacidad de muestreo CS
1.25-pF
2.5-pF
5-pF
10-pF
Y en el Dominio de la frecuencia:
El filtro digital para cada canal habilitado ADC completa la conversin decimal
del muestreo digital de bits y los resultados de salida de la nueva conversin para el
registro correspondiente SD16MEMx en la frecuencia de muestreo fS .
Salida del filtro digital
SD16DF
Format
Bipolar
Offset
Binary
Bipolar
Twos
Complement
Analog
Input
+FSR
ZERO
FSR
+FSR
ZERO
FSR
SD16MEMx
FFFF
8000
0000
7FFF
0000
8000
Unipolar
+FSR
ZERO
FSR
FFFF
0000
0000
FFFFFF
800000
000000
Tabla Error! No hay texto con el estilo especificado en el documento..24 Formato de los datos
de salida
SD16GRP
0
Modo
Canal simple,
conversin simple
Funcionamiento
Se convierte un canal una vez
Canal simple,
Conversin continua
Se convierte continuamente un
canal
Grupo de canales,
Coversin simple
Grupo de canales,
Conversin continua
Se convierten continuamente un
grupo de canales
Tabla Error! No hay texto con el estilo especificado en el documento..25 Modos de conversin
Tabla Error! No hay texto con el estilo especificado en el documento..26 Registros SD16_A
Reserved
SD16XDIVx
SD16LP
SD16DIVx
SD16SSELx
SD16
VMIDON
SD16
REFON
SD16OVIE
Reserved
Bits Reservado.
15-12
Bits Divisor de reloj SD16_A.
11-9
000
/1
001
/3
010
/16
011
/48
1xx
Reservado
Bit-8 Modo de bajo consumo. ste bit selecciona un modo de consumo
reducido a velocidad reducida.
0
Modo de bajo consumo deshabilitado
1
Modo de bajo consumo habilitado. La mxima frecuencia de
reloj para el SD16_A se reduce
Bits Divisor de reloj SD16_A.
7-6
00
/1
01
/2
10
/4
11
/8
Bits Seleccin de la fuente de reloj del SD16_A.
5-4
00
MCLK
01
SMCLK
10
ACLK
11
ACLK externo
Bit-3 VMID buffer on.
0
Off
1
On
Bit-2 Generador de referencia On.
0
Referencia off
1
Referencia on
Bit-1 Habilitacin de interrupcin de desbordamiento del SD16_A. El bit
GIE debe estar a 1 para habilitar la interrupcin.
0
Interrupcin de desbordamiento deshabilitada
1
Interrupcin de desbordamiento habilitada
Bit-0 Reservado.
Reserved
Bit-15 Reservado.
SD16BUFx
Bits
14-13
Buffer deshabilitado
intensidad/velocidad baja
intensidad/velocidad media
intensidad/velocidad alta
SD16UNI
SD16XOSR
SD16SNGL
SD16OSRx
SD16
LSBTOG
SD16
LSBACC
SD16OVIFG
SD16DF
Bit-4
SD16IE
Bit-3
SD16IFG
Bit-2
SD16SC
Bit-1
Reserved
Bit-0
0
No hay interrupcin de desbordamiento pendiente
1
Interrupcin de desbordamiento pendiente
Formato de datos de SD16_A.
0
Offset binario
1
Complemento de a 2
Habilitacin de interrupcin de SD16_A.
0
Deshabilitada
1
Habilitada
Flag de interrupcin de SD16_A. Se pone a 1 cuando hay
disponibles nuevos resultados de conversin. SD16IFG se reinicia
automticamente cuando el registro correspondiente SD16MEMx
es ledo.
0
No hay interrupcin pendiente
1
Interrupcin pendiente
Inicio de la conversin de SD16_A.
0
La conversin no se inicia
1
Se inicia la conversin
Reserved
SD16INTDLYx
Bits
7-6
SD16GAINx
Bits
5-3
SD16INCHx
Bits
2-0
A0
A1
A2
A3
Reservado
(AVCC AVSS) /11
Sensor de temperatura
Short for PGA offset measurement
Conversion
Results
Bits
15-0
SD16IVxs
Bits
15-0
Figura Error! No hay texto con el estilo especificado en el documento..39 Diagrama de bloques
del EEM