Anda di halaman 1dari 25

Tecnologia de Sistemas Embebidos

Projecto com MSP430G2553


Andr Tavares Silva Rui Nunes

MSP430 Launchpad
Microcontrolador de sinal misto

Consumo ultra-baixo
Timers de 16 bits com 24 pins ADC de 10 bits (no utilizado)

Objectivos
Ligar e desligar os LEDs - Interrupt Implementao do PWM Controlo de intensidade luminosa do LED Projecto terico de um circuito condicionador

de sinal

Ligar/Desligar LEDs atravs de interrupo


Chamar o header file Definir a varivel do bit referente ao LED vermelho.

Desligar o Watchdog timer.

Definir a direco dos pins

Definimos o estado dos pins, referentes ao LED e ao boto, como ligados

Definimos o interrupt enable da porta 1 (P1IE) como ligado para o bit correspondente ao boto S2 (P1.3). Activamos a resistncia de pull-up do boto ao ser pressionado, esta aco detectada. Limpamos a flag do interrupt, permitindo que seja utilizada.

Instruo que activa as interrupes Ciclo for infinito - a CPU fica a aguardar uma instruo.

Funo que contem as instrues de interrupo; Desliga o LED - define a alterao do estado de sada do pin,

atravs P1OUT.
LED_R (BIT0) alterna entre ligado e desligado, 0 e 1; Limpamos a flag do interrupt;

PWM (Pulse-Width Modulation)


Mtodo para definir a fraco de perodo de sinal que o dispositivo est ligado

Controla o valor mdio de voltagem fornecida carga

Implementao atravs do timer:


Opes de funcionamento do timer:
MC_0 desactiva-o; MC_1 realiza uma contagem de 0x0000 at CCR0(Capture/Compare), reinicia partindo de 0x0000 e repete;

MC_2 realiza uma contagem de 0x0000 ate 0xFFFF, reinicia partindo de 0x0000 e repete;

MC_3 realiza uma contagem crescente de 0x0000 ate CCR0, faz uma contagem decrescente ate 0x0000 e repete.

Para programar o timer para um destes modos necessrio utilizar o registo de controlo do MSP430. Para a implementao do PWM iremos utilizar o Timer A, num ciclo de 1000 unidades (acabando em 999 por iniciar em 0).

Comeamos por definir os parmetros: definimos trs constantes (o bit relativo ao LED verde, o valor do ciclo de PWM e a constante utilizada para os ciclos de atraso).

Definimos trs variveis teis ao desenvolvimento do programa : flag, count e PWM_duty, as primeiras iniciadas a zero e este ltimo iniciado igual ao valor do perodo do PWM. Desligamos os watchdog timer pelos motivos acima referidos;

Definimos agora o LED verde como sada para o sinal PWM definindo o bit 6 dos registos P1DIR e P1SEL igual a 1. Neste caso, pretendemos utiliz-lo como TA0.1 ou Timer0_A.

Define o modo do PWM atravs do registo de controlo TACTL do


Timer A
Escolhe-se o modo, MC_1; Define-se para o sub-main clock (SMCLK ), utilizado para os perifricos, atravs da instruo TASSEL_2.

Definimos ainda o modo de sada atravs do registo TA0CCTL1 (Timer0_A3 Capture/Compare Control 1),
Traduz-se nos momentos em que a sada est em funcionamento ou no. E Este registo de controlo utiliza dois valores do timer, CCR1 e CCR0, para actuar (Nos casos em que existe apenas uma aco, esta executada quando o timer atinge CCR1).

Existem sete modos de sada, alm do modo zero:

Na implementao do PWM iremos utilizar o Output Mode 7, mantendo a sada ligada at CCR1 e desligada at CCR0, momento em que liga e repete.

TA0CTL = TASSEL_2|MC_1; TA0CCTL1 = OUTMOD_7; TA0CCR0 = PWM_periodo-1; TA0CCR1 = PWM_duty;

// Clock SMCLK, timer em modo 1 // Modo de sada 7 (reset/set) // Perodo do PWM // Tempo de Duty Cycle

for(;;) { while(count < A){count++;} // Atraso

if((PWM_duty < PWM_periodo) && (flag == 0)) { PWM_duty += 0.25*PWM_periodo; } else { flag = 1; } if((PWM_duty > 0) && (flag == 1)) { PWM_duty -= 0.25*PWM_periodo; } else { flag = 0; } TA0CCR1 = PWM_duty; }

Circuito condicionador de sinal


Pretendemos projectar uma possvel aplicao do microcontrolador; Sensor transmissor de sinal circuito condicionador de sinal ADC microcontrolador; Entrada: 4 mA 20 mA Sada: 0 2,5 V

Circuito condicionador de sinal


Utilizamos trs andares de amplificao:
1 amplificador diferencial com ganho unitrio
Transforma a corrente de entrada numa tenso.

2 amplificador com ganho em configurao noinversora


Faz corresponder a largura da gama largura pretendida;

3 amplificador diferencial com ganho unitrio


Ajusta os limites da tenso aos limites pretendidos;

1 Andar
=
4 3+4

1+2 1

2 1 1

= 2 1 Rc = 100 :
= 2 1 = = 100 Vout = [0,4 ; 2 ] V

2 Andar
=
2,50 2,00,4

2,5 1,6

=1+

7 9 7 = 6 6 16

R7 = 9 u.a. e R6 = 16 u.a. 2,0


25 16

= 3,125

0,4

25 16

= 0,625

3 Andar
= 3,125 0,625 = 2,5 = 0,625 0,625 = 0 ,

Circuito final
Gama de intensidades de entrada: 4 20 mA; Gama de tenses de sada: 0 2,5V.

Anda mungkin juga menyukai