51
Temporizador / Contador Microcontroladores 2 EL08D Turma M12 Prof. Gabriel Kovalhuk E-mail: [email protected] Site: http://paginapessoal.utfpr.edu.br/kovalhuk EL08D Microcontroladores 2 Prof. Gabriel Kovalhuk 2018/1

Microcontroladores 2 EL08D Turma M12 - UTFPR

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

Microcontroladores 2EL08D

Turma M12

Prof. Gabriel KovalhukE-mail: [email protected]

Site: http://paginapessoal.utfpr.edu.br/kovalhuk

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Page 2: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TEMPORIZADORES / CONTADORES NO

MSP430Este material foi retirado do livro: “MSP430 Microcontroller Basics”, Jonh Davis e do documento e “MSP430x2xx Family User's Guide”, Texas Intruments

Page 3: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Temporizadores / Contadores

Periférico comum (obrigatório) em sistemas

microprocessados;

Na família MSP430, os temporizadores são definidos

por tipo e são essencialmente iguais (por tipo) para

todos os elementos da família;

Page 4: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Tipos de temporizadores:

Watchdog Timer: Presente em todos os dispositivos.

Sua função principal é prevenir o mau funcionamento

do sistema devido a falhas/erros do software. Porém,

o watchdog pode ser configurado como temporizador

comum;

Basic Timer 1: presente nas famílias 4xx. Fornece o

clock para o driver de LCD;

Page 5: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: É um temporizador de uso geral, pode ser

usado em diversas aplicações, como gerador de

tempo, gerador de sinais PWM, contadores de

eventos, medidas de largura de pulso, etc.;

TIMER B: Semelhante ao TIMER A com algumas

extensões;

Page 6: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A

Page 7: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Temporizador/contador de 16 bits, assíncrono, de uso

geral;

Possui 4 modos de operação;

Pode gerar diversas interrupções;

Possui registradores de captura/comparação, que

podem ser usados para gerar sinais PWM, medição

de períodos, medição de intervalos de tempos;

Pode operar a partir de diversas fontes de clock;

Page 8: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Trabalha independentemente da CPU (a CPU é

usada somente para configuração do

temporizador/contador);

A nomenclatura do temporizador/contador indica

algumas informações sobre o temporizador:

TIMER0A3 Indica quantas unidades de

captura/comparação que o timer possui

Indica o tipo do timer, neste caso, tipo A

Indica qual é o timer. Quando existem

mais de um timer, são numerados como

1, 2, etc.

Page 9: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

O MSP430G2553 possui dois temporizadores/

contadores deste tipo: TIMER0A3 e TIMER1A3;

E o MSP430G2452 possui apenas um temporizador/

contador, o TIMER0A3;

Page 10: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

O TIMER A é composto de dois blocos básicos:

Bloco do contador

Bloco de comparação e captura;

Page 11: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Diagrama em blocos do TIMER A:

Bloco

Contador

3 Blocos de

Captura e

Comparação

CCR1CCR0

CCR2

Page 12: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Diagrama em blocos do TIMER A:

CONTADOR

CCR0 CCR1 CCR2

Page 13: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Bloco do contador

Os sinais com ■ são ligados ao registrador de controle

(neste caso TACTL);

15 0

TARClear RC

Count

Mode

Divider

1/2/4/8

00

01

10

11

EQU0

Set TAIFG

TACLKACLK

SMCLKINCLK

0123456789101112131415

TA

IFG

TA

IE

TA

CLR

MC

x

IDx

TA

SS

ELx

unused

unused

REGISTRADOR TACTL

TASSELx

IDx MCx

TACLR

Timer Clock

Page 14: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Bloco do contador

O Bloco TAR é o contador propriamente dito, incrementa

ou decrementa a cada rampa de subida do clock;

Pode ser acessado, via software, para leitura e escrita;

Pode gerar interrupção quando ocorre o estouro da

contagem (seta o bit TAIFG);

Page 15: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Bloco do contador

O sinal de clock pode ser dividido por 1, 2, 4 ou 8,

selecionado pelos bits IDx do registrador TACTL;

Page 16: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Bloco do contador

A fonte de clock para o temporizador é selecionada

pelos bits TASSELx do registrador TACTL;

Page 17: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Bloco do contador

O contador possui 4 modos de operação, selecionados

pelos bit MCx do registrador TACTL;

Page 18: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A:

Bloco do contador

O sinal TACLR do registrador TACTL reseta o contador,

o divisor de clock e a direção de contagem;

Page 19: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: o Registrador TAxCTL

Configura o bloco de contagem do

temporizador/contador;

É um registrador de 16 bits acessado por software;

Cada conjunto de bits determinam cada um dos

controles do bloco de contagem;

Page 20: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: o Registrador TAxCTL

TASSELx: Seleciona o sinal de clock do temporizador;

IDx: seleciona o fator de divisão do clock (1, 2, 4 ou 8);

MCx: seleciona o modo de contagem do temporizador;

TACLR: reseta a contagem;

TAIE: habilita a interrupção do TIMER;

TAIFG: flag indicando que existe uma interrupção

deste TIMER pendente;

15 14 13 12 11 10 9 8

não usados TASSELx

rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)

7 6 5 4 3 2 1 0

IDx MCx - TACLR TAIE TAIFG

rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)

TASSELx

IDx MCx TACLR TAIE TAIFG

Page 21: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: o Registrador TAxCTL

Para se configurar o temporizador, basta setar ou resetar os bits

do TAxCTL conforme está no User Guide (SLAU144J, pág. 370);

Para facilitar a configuração, existem defines para estes bits no

arquivo “msp430g2553.h”. Assim, por exemplo, para se configurar

o TIMERA03 para usar o SMCLK como clock, divisão do clock por

4, modo UP e para gerar interrupção, pode-se fazer o com a

seguinte linha em liguagem C:

TA0CTL |= TASSEL_2 // seleciona SMCLK

+ ID_2 // divisao do clock por 4

+ MC_1 // modo UP

+ TAIE; // habilita interrupcao

Page 22: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

São três blocos iguais na maioria dos dispositivos;

Alguns dispositivos possuem apenas dois ou um bloco de

captura e comparação;

A quantidade destes blocos é especificada no sufixo do timer

(TIMER_A3)

O bloco CCR0 tem prioridade sobre os demais:

O registrador TACCR0 é usado para determinar o período

de contagem do temporizador;

Sua interrupção tem prioridade maior que os demais

blocos;

Page 23: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Registrador

de Captura /

comparação

Page 24: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Circuito de

comparação

Page 25: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Seleciona o

sinal de

captura

Page 26: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Sinaliza

interrupção

Page 27: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Sinal de

saída,

associado

aos pinos

Page 28: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A: Blocos de Captura/Comparação

CCR0

TACCR0

Comparator 0

EQU0

Set TACCR0

CCIFG

OUT0 Signal

Determinam

como será a

saída

Page 29: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modos de Operação do TIMER A

Page 30: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modos de Operação do TIMER A

O TIMER A possui 4 modos de operação, selecionados

pelos bit MCx do registrador TACTL:

0 0 – modo STOP: contador parado;

0 1 – modo UP: contador crescente, com módulo de

contagem programável;

1 0 – modo CONTINUOS: contador em modo

crescente, de 0 a FFFFh;

1 1 – modo UP/DOWN: contador

progressivo/regressivo;

Page 31: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo STOP

A contagem do registrador TAR permanece parada,

mantendo o seu último valor;

Page 32: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo UP

O registrador TAR incrementa sua contagem

repetidamente até o valor do registrador de

comparação TACCR0, que define o período de

contagem;

O número de contagens por período é TACCR0+1;

O flag de interrupção TACCR CCIFG é setado quando

a contagem atinge o valor de TACCR0;

O flag de interrupção TAIFG é setado quando o TIMER

passa de TACCR0 para zero;

Page 33: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A Modo UP:

Setado quando

TAR -> 0

Setado quando

TAR == TACCR0

Set TACCR0

CCIFG

TACCR0

Comparator 0

EQU0

CCR0

OUT0 Signal

Page 34: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

TIMER A Modo UP:

Page 35: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo Contínuo

O registrador TAR incrementa sua contagem

repetidamente até o valor máximo (0xFFFF) e retorna

a zero;

O flag de interrupção TAIFG é setado quando o TIMER

passa de 0xFFFF para zero;

Os registradores TACCRx podem ser usados para

gerar marcações de tempo intermediárias, podendo

também gerar interrupções nestas marcações;

Page 36: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo Contínuo

Uma interrupção pode ser gerada quando TAR passa

de 0xFFFF para 0x0000 (TAIFG);

Page 37: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo Contínuo

Marcações de tempo podem ser adicionadas pelos

registradores TACCRx, podendo também gerar

interrupções;

Page 38: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo UP/DOWN

O registrador TAR conta progressivamente de 0 até o valor

em TACCR0 e, depois conta de maneira decrescente de

TACCR0 até 0;

Neste modo, os flags de interrupção TACCR0 CCIFG e

TAIFG são setados somente uma vez durante um período,

separados por ½ período de tempo;

O TACCR0 CCIFG é setado quando o timer conta do

TACCR0- 1 a TACCR0 e o TAIFG é setado quando o timer

completa a contagem decrescente de 0001h a 0000h;

Page 39: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Modo UP/DOWN

Page 40: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Interrupções

Page 41: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Interrupções:

• O MSP430G2553 possui dois TIMERS;

• O TIMER0 pode gerar 3 interrupções:

• uma exclusiva para o CCR0:

#pragma vector=TIMER0_A0_VECTOR

• Outra para o TAR (TAIFG) e outra para o CCR1:

#pragma vector=TIMER0_A1_VECTOR

Page 42: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Interrupções:

• O TIMER1 pode gerar 4 interrupções:

• uma exclusiva para o CCR0:

#pragma vector=TIMER1_A0_VECTOR

• Outra para TAR (TAIFG), CCR1 e CCR2:

#pragma vector=TIMER1_A1_VECTOR

Page 43: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Interrupções:

• A interrupção do TIMER1 tem prioridade maior que a do

TIMER 0;

• Para cada TIMER, a interrupção do CCR0 tem

prioridade maior que as outras interrupções (TAR,

CCR1 e CCR2);

Page 44: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Interrupções:

Vetores de interrupção do MSP430G2553:

#define TRAPINT_VECTOR (0 * 2u) /* 0xFFE0 TRAPINT */

#define PORT1_VECTOR (2 * 2u) /* 0xFFE4 Port 1 */

#define PORT2_VECTOR (3 * 2u) /* 0xFFE6 Port 2 */

#define ADC10_VECTOR (5 * 2u) /* 0xFFEA ADC10 */

#define USCIAB0TX_VECTOR (6 * 2u) /* 0xFFEC USCI A0/B0 Transmit */

#define USCIAB0RX_VECTOR (7 * 2u) /* 0xFFEE USCI A0/B0 Receive */

#define TIMER0_A1_VECTOR (8 * 2u) /* 0xFFF0 Timer0)A CC1, TA0 */

#define TIMER0_A0_VECTOR (9 * 2u) /* 0xFFF2 Timer0_A CC0 */#define WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */

#define COMPARATORA_VECTOR (11 * 2u) /* 0xFFF6 Comparator A */

#define TIMER1_A1_VECTOR (12 * 2u) /* 0xFFF8 Timer1_A CC1-3, TA1 */

#define TIMER1_A0_VECTOR (13 * 2u) /* 0xFFFA Timer1_A CC0 */#define NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maskable */

#define RESET_VECTOR (15 * 2u) /* 0xFFFE Reset [Highest Priority] */Maior

Prioridade

Menor

Prioridade

PR

IOR

IDA

DE

Page 45: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Exemplo 01

Faça um programa para que o LED vermelho do kit (que está

no pino P1.0) altere seu estado (ligado ou desligado) a cada

0,5s.

Condições:

Usar o SMCLK como fonte de clock;

Usar o modo UP;

Ajustar a divisão de clock para obter uma interrupção a

cada 0,5s

Calcular o valor de TACCR0 para obter 0,5s;

Page 46: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Exemplo (“esqueleto” do programa com interrupção do TIMER 0):

#pragma vector=TIMER0_A1_VECTOR__interrupt void timer0(){

……… // rotina de interrupçãoTA0CTL &= ~TAIFG; // indica que a interrupcao ja foi atendida

}void main(){

WDTCTL = WDTPW+WDTHOLD; // destiva wathchdogTA0CTL |= ……; // configura o TIMER (seleciona o sinal

// de clock, o modo de operação, a// divisão do clock, etc. Ver pág 19)

TACCR0 = 0xXXXX; // define o período de contagem

……… // configure P1.0 como saida__bis_SR_register(LPM0_bits + GIE); // coloca no modo LPM0 e

// habilita GIE }

Page 47: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Exemplo 02

Faça um programa para que o LED vermelho do kit (que está

no pino P1.0) altere seu estado (ligado ou desligado) a cada

0,5s, controlado pelo TIMER 0 e o LED verde do kit (que está

no pino P1.6) altere seu estado a cada 0,1s, controlado pelo

TIMER 1 (serão usadas duas interrupções).

Page 48: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Esqueleto do programa da tarefa 2 (continua na próxima

página):

#pragma vector=TIMER0_A1_VECTOR // define interrupção do TIMER0__interrupt void timer0(){

………TA0CTL &= ~TAIFG; //indica que a interrupcao ja foi atendida

}

#pragma vector=TIMER1_A1_VECTOR // define interrupção do TIMER1__interrupt void timer1(){

………TA1CTL &= ~TAIFG; //indica que a interrupcao ja foi atendida

}

Page 49: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

void main(){

WDTCTL = WDTPW+WDTHOLD; // destiva wathchdogTA0CTL |= ……; // configura o TIMER (seleciona o sinal

// de clock, o modo de operação, a// divisão do clock, etc.

TA0CCR0 = 0xXXXX; // define o período de contagem

TA1CTL |= ……; // configura o TIMER (seleciona o sinal// de clock, o modo de operação, a// divisão do clock, etc.

TA1CCR0 = 0xYYYY; // define o período de contagem

……… // configure P1.0 e P1.6 como saida

__bis_SR_register(LPM0_bits + GIE); // coloca no modo LPM0 e// habilita GIE

}

Page 50: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Registradores do TIMER A

Verificar a configuração destes registradores no MSP430

User Guide (arquivo slau144i.pdf)

Page 51: Microcontroladores 2 EL08D Turma M12 - UTFPR

Temporizador / Contador

EL08D – Microcontroladores 2Prof. Gabriel Kovalhuk 2018/1

Bibliografia:

• [DAVIES], DAVIES Jonh H., MSP430 Microcontroller

Basics, Elsevier 2008.

• [SLAU144J] MSP430x2xx Family User's Guide, Texas

Instruments, 2013.