You are on page 1of 15

UNIVERSIDADE

FEDERAL DE

SANTA CATARINA

Departamento de Engenharia Eltrica Centro Tecnolgico

EEL7846

PROJETO NVEL II EM REA BSICA II

Autor: Pedro 02141523

Henrique

Piccoli

Richetti

Professor: Hari B. Mohr

Julho/2011

EEL7846 Projeto Nvel II em rea Bsica II

Florianpolis - SC

ii

EEL7846 Projeto Nvel II em rea Bsica II

Sumrio
EEL7846..................................................................................................................................i Projeto Nvel II em rea bsica II............................................................................................i Sumrio...................................................................................................................................3 1. Introduo...........................................................................................................................4 Uma vez conhecidas as funcionalidades do controlador, e das caractersticas do kit de desenvolvimento foi determinada a aplicao a ser desenvolvida..........................................4 2. Objetivo...............................................................................................................................5 3. Caractersticas de Hardware................................................................................................6 3.1 Controlador HCS08QG8...............................................................................................6 3.2 Kit de demonstrao DEMO9S08QG8.........................................................................7 4. Caractersticas de Software.................................................................................................9 4.1 Descrio da aplicao..................................................................................................9 4.2 Fluxograma...................................................................................................................9 4.3 Cdigo Fonte...............................................................................................................11 5. Concluso..........................................................................................................................14 6. Referncias Bibliogrficas................................................................................................15

EEL7846 Projeto Nvel II em rea Bsica II

1. Introduo
A realizao deste projeto visa conhecer e compreender as funcionalidades presentes nos microcontroladores da famlia HCS08 e do kit de desenvolvimento fornecido pela Freescale. O controlador HCS08QG8 utilizado nesta aplicao apresenta performance mais elevada e menor consumo de energia em relao ao modelo equivalente da famlia HC08, sua antecessora. Outro fator importante para o desenvolvimento a possibilidade de programao utilizando a linguagem C, que possibilita: Facilidade de programao em relao linguagem Assembly; Portabilidade de cdigo; Alta eficincia, pois esta linguagem permite gerar programas mais eficientes, com tamanho reduzido e velocidade de execuo elevada. Uma desenvolvida. vez conhecidas as funcionalidades do controlador, e das

caractersticas do kit de desenvolvimento foi determinada a aplicao a ser

EEL7846 Projeto Nvel II em rea Bsica II

2. Objetivo
Utilizando o kit de demonstrao do microcontrolador Motorola HCS08QG8 implementar o controle de luminosidade de um LED atravs de modulao por largura de pulso (PWM), definindo como parmetro para controle do ciclo ativo do pulso o resultado da converso AD de um sinal produzido pela clula fotoeltrica presente no kit.

EEL7846 Projeto Nvel II em rea Bsica II

3. Caractersticas de Hardware
3.1 Controlador HCS08QG8
Os modelos da famlia QG so microcontroladores de 8 bits de baixo custo e apresentam as seguintes caractersticas: CPU HCS08 capaz de operar a at 20MHz; Encapsulamento de 8 ou 16 pinos; Programao e depurao avanada utilizando um pino (BDM Background Debugging Mode); 4 ou 8 Kbytes de FLASH, 256 ou 512 bytes de RAM; 12 pinos de entrada/sada, mais um somente de entrada e outro somente sada; Perifricos internos: o Timer de 16 bits com 2 canais de captura; o Comparao ou PWM; o Timer de 8 bits; o Conversor A/D de 10 bits com sensor de temperatura interno; o Comparador analgico; o Interfaces seriais SCI, SPI e I2C.

EEL7846 Projeto Nvel II em rea Bsica II

3.2 Kit de demonstrao DEMO9S08QG8

Figura 1: Kit de demonstrao DEMO9S08QG08

A placa DEMO9S08QG08 um kit de demonstrao fornecido pela Freescale semiconductor, e de acordo com o manual do fabricante, permite o rpido desenvolvimento de aplicaes, devido principalmente possibilidade de depurar o cdigo em tempo real atravs de uma interface USB-BDM em que um microcomputador executa o cdigo diretamente no microcontrolador a ele conectado atravs de uma porta USB presente no kit. Caractersticas do kit: Interface USB-BDM; Porta serial RS232 com conector DB9; Portas SPI e IIC disponveis no conector J1; Opo de clock externo de 32.768kHz; Jumper seletor de alimentao na entrada; o Alimentao atravs do USB-BDM; o Alimentao atravs do regulador de tenso da placa; o Alimentao atravs do conector J1; Componentes de entrada/sada; o 3 Push-buttons, sendo 1 reset; o 3 leds indicadores, sendo 1 alimentao; o Potencimetro (5K Ohm);

EEL7846 Projeto Nvel II em rea Bsica II

o Fotoclula. O kit de demonstrao tambm fornece uma cpia do software CodeWarrior Development Studio, aplicao que permite a elaborao cdigo e tambm apresenta uma interface de depurao compatvel com a interface USB-BDM. Para a realizao do projeto foi necessrio utilizar um circuito adicional ao kit de demonstrao para entregar a sada do sinal PWM a um LED externo, pois esta sada (PTA0) s acessvel pelo conector MCU de 32 pinos do kit. Este circuito externo composto de um led, um resistor e um conector MCU de 32 pinos.

EEL7846 Projeto Nvel II em rea Bsica II

4. Caractersticas de Software

4.1 Descrio da aplicao


Utilizando o CodeWarrior Developmente Studio e a linguagem de programao C, foi criado o projeto para implementao do cdigo, que, quando executado realize as seguintes tarefas: Funo Principal: medida que a luminosidade sobre a fotoclula diminui, maior ser intensidade luminosa produzida pelo led. Funes Auxiliares: o SW1 pressionada: atravs de uma interrupo de teclado, ativa/desativa quatro nveis); o SW2 pressionada: pisca alternadamente LED1 e LED2, sem interferir no controle de luminosidade PWM a na converso AD. Obs.: Para tornar mais perceptvel a variao da luminosidade do LED, o resultado da converso AD foi divido em quatro faixas iguais, e para cada uma foi associado um percentual de durao do ciclo PWM: 0%, 25%, 50% e 100%. a informao do nvel pwm utilizado (representando um resultado binrio em LED1 e LED2 com

4.2 Fluxograma

EEL7846 Projeto Nvel II em rea Bsica II

Figura 2: Fluxo principal de execuo do cdigo

O fluxo principal de execuo do cdigo exposto acima reflete os passos de funcionamento da estrutura quando em operao normal. Na ocorrncia de uma interrupo (Chave SW1 pressionada), o fluxo interrompido e executada a rotina de interrupo, que consiste em ativar os LEDs 1 e 2 da placa de acordo com um dos quatro nveis definidos do sinal PWM. Aps a interrupo, o fluxo retorna do ponto em que parou.

10

EEL7846 Projeto Nvel II em rea Bsica II

4.3 Cdigo Fonte


Segue abaixo o cdigo fonte elaborado para a aplicao, com os respectivos comentrios de cada etapa:
#include <hidef.h> /* Para macro EnableInterrupts */ #include <MC9S08QG8.h> /* inclui declaracao de perifericos */ #include <hcs08.h> unsigned int ciclo, temp, pisca_led, pisca_led_tmp, contador; //interrupo do teclado (sw1) interrupt 18 void KBI_ISR(void) { KBISC_KBACK = 1; //limpa interrupes pendentes if(pisca_led==0) // inverte pisca_led pisca_led = 1; else pisca_led = 0; PTBD_PTBD6 = 1; //apaga led1 PTBD_PTBD7 = 1; //apaga led2 pisca_led_tmp = pisca_led; } void main(void) { volatile unsigned int res_conv; EnableInterrupts; // Habilita interrupes SOPT1 = bBKGDPE; //habilita interrupo de teclado em sw1 KBIPE_KBIPE2 =1; //habilita sw1 KBISC_KBIE = 1; //habilita interrupo de teclado KBISC_KBACK = 1; //limpa interrupes pendentes PTBDD_PTBDD6 PTBDD_PTBDD7 PTAPE_PTAPE2 PTAPE_PTAPE3 = = = = 1; 1; 1; 1; // led1 em // led2 em //habilita //habilita ptb6 eh ptb7 eh pull-up pull-up saida saida em pta2 (sw1) em pta3 (sw2)

TPMSC = 0b00001000; //fonte do clock = busclk TPMMOD= 1023; //modulo da contagem (periodo maximo -> ciclo pwm 100%) TPMC0SC = 0b00100100; // modo tpm_pwm_low (PWM ativo em nivel baixo) ciclo = 0; TPMC0V = ciclo; //inicia pwm com ciclo zero //configuracao conversor A/D ADCSC1 = 0b00100001; // configura canal 1 (PTA1) conversao continua ADCCFG = 0b10000100; //Modo 10 Bits, busclk,tempo normal, baixa velocidade

11

EEL7846 Projeto Nvel II em rea Bsica II APCTL1 = 0b00000010; // PTA1 modo analgico pisca_led = 0; pisca_led_tmp = 0; PTBD_PTBD6 = 1; PTBD_PTBD7 = 1; PTAD_PTAD0 = 1; res_conv=0; contador=0; while(1){ //loop //qdo pisca_led !=0 ativa informao do ciclo pwm //em led1 e led2 //apaga led1 em ptb6 //apaga led2 em ptb7 //apaga led em pta0

ADCSC1 = 0b00100001; // seleciona converso contnua, canal AD1 res_conv = ADCR; //guarda em res_conv resultado da conversao AD res_conv &= 0x3FF; //mascara bits excedentes //define quatro ciclos de operacao pwm if(res_conv<256){ //ciclo 0% TPMC0V = 0; //nivel 1, leds apagados -> 00 if(pisca_led!=0){ PTBD_PTBD6 = 1; PTBD_PTBD7 = 1; } } if(res_conv>=256 && res_conv < 512){ //ciclo 25% TPMC0V = 256; //nivel 2, led1 aceso -> 01 if(pisca_led!=0){ PTBD_PTBD6 = 0; PTBD_PTBD7 = 1; } } if(res_conv>=512 && res_conv < 768){ //ciclo 50% TPMC0V = 512; //nivel 3, led2 aceso -> 10 if(pisca_led!=0){ PTBD_PTBD6 = 1; PTBD_PTBD7 = 0; } } if(res_conv>=768){ //ciclo 100% (led c/ maxima luminosidade) TPMC0V = 1024; //nivel 4, leds acesos -> 11 if(pisca_led!=0){ PTBD_PTBD6 = 0; PTBD_PTBD7 = 0; } } //qdo sw2 pressionada pisca led1 e led2 alternadamente if(PTAD_PTAD3==0){ pisca_led= 0; if(contador>10000){

12

EEL7846 Projeto Nvel II em rea Bsica II PTBD_PTBD6 PTBD_PTBD7 } else{ PTBD_PTBD6 PTBD_PTBD7 } = 0; = 1; = 1; = 0;

} else{ //se sw2 nao pressionada deixa leds apagados PTBD_PTBD6 = 1; PTBD_PTBD7 = 1; pisca_led = pisca_led_tmp; } if(contador>20000) //contador de tempo de alternancia dos leds contador=0; else contador++;

} }

13

EEL7846 Projeto Nvel II em rea Bsica II

5. Concluso
A facilidade e robustez da linguagem C simplificaram o processo de elaborao do cdigo, e a possibilidade de depurao em tempo real (BDM) diretamente do computador conectado ao kit de demonstrao tornou mais gil a identificao e correo de problemas e a realizao de ajustes no cdigo at se obter o resultado desejado. Estas caractersticas resultam num menor tempo de desenvolvimento e menores custos, visto que o hardware utilizado tambm possui preo reduzido, ainda assim proporcionando caractersticas e performance satisfatrias para as mais diversas aplicaes. Neste projeto, a variao gradual da luminosidade de um LED, atravs do controle da razo cclica de um sinal com modulao PWM por meio da converso A/D do sinal de sada de uma fotoclula permitiu conhecer boa parte das funcionalidades do microcontrolador HCS08 e ainda despertou o interesse na rea para o desenvolvimento de outras aplicaes.

14

EEL7846 Projeto Nvel II em rea Bsica II

6. Referncias Bibliogrficas
[1] [2] Pereira, Fbio. Microcontroladores HCS08: Teoria e Prtica, Editora Site: www.freescale.com Freescale Seminconductor

rica, 2005 So Paulo.

15

You might also like