Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aplicaes em Automao
Edward David Moreno Ordonez Cesar Giacomini Penteado Alexandre Csar Rodrigues da Silva
Novatec Editora
Captulo 1
Microcontrolador PIC16F628, da Microchip
Este captulo apresenta o microcontrolador PIC 16F628, da Microchip, o qual bem-difundido, tem baixo custo e bastante empregado em projetos de automao nos mercados brasileiro e mundial. Alm do mais, enfatiza-se um estudo de seus osciladores, modos de reset, interrupes, perifrico CCP (Capture/Compare/PWM) e Timers.
19
O registrador FSR (File Select Register) utilizado para o endereamento indireto da memria de programa; o registrador de STATUS, que armazena estado aritmtico da ULA, o estado do reset e o banco de memria RAM selecionado; a pilha de oito nveis (oito registradores agrupados, visualizados e acessados como uma pilha) e o prprio PC (Program Counter) so endereos especficos nesta memria RAM.
Dois outros mdulos importantes so as memrias FLASH e EEPROM. A primeira destina-se a armazenar o cdigo-fonte do programa a ser executado. J a segunda, objetiva armazenar variveis definidas pelo programador para o controle e o restabelecimento do programa, caso ocorra falta de energia eltrica. As duas memrias so no-volteis, ou seja, no perdem seus dados na falta de energia externa. No PIC 16F628, possvel atualizar (regravar) os dados da memria FLASH em at 1.000 vezes, permitindo que o programador realize at 1.000 correes no programa principal. Ao centro da Figura 1.1, esto representados todos os perifricos responsveis por inicializar corretamente o chip, monitorar sua alimentao e a correta execuo do programa-fonte. Tambm possvel visualizar o importante mdulo gerador de Timing e as portas de E/S, PORTA e PORTB.
20
Microcontroladores e FPGAs
Na parte inferior da mesma figura, encontram-se os perifricos que caracterizam o PIC: o comparador analgico, os trs Timers, o mdulo CCP (Capture/Compare/PWM) e a USART. O mdulo Instruction Decode & Control e o ULA so componentes presentes em qualquer microcontrolador. Todos esses registradores e mdulos, bem como suas principais funes, sero comentados a seguir.
21
Circuitos especiais para lidar com a necessidade de aplicaes de tempo real so conjuntos presentes nos microcontroladores PIC, dispostos parte da CPU. A famlia PIC 16F628 possui caractersticas voltadas a maximizar a confiana do sistema, minimizar custos por meio da eliminao de componentes externos, prover economia de energia e oferecer proteo de cdigo. Estas caractersticas ou circuitos so:
1. Seleo de oscilador (OSC selection). 2. Vrias fontes e opes de reset POR (Power-on Reset), PWRT (Power-up Timer),
Nas prximas sees, ser apresentada uma maior descrio de algumas destas unidades.
22
Microcontroladores e FPGAs
A Figura 1.2 ilustra, em (A), os componentes externos necessrios para controlar a freqncia nos modos LP, XP ou HS e em (B), o modulo ER, com um resistor conectado ao PIC. O modo de clock ER com resistor externo recomendado para aplicaes no-sensveis temporizao e oferece economia adicional de custo. Somente um componente externo, um resistor ligado ao Vss, necessrio para fixar a freqncia do oscilador interno. O resistor controla a freqncia de oscilao de acordo com a corrente DC que flui por intermdio do mesmo. Alm do valor da resistncia imposta pelo resistor, a freqncia final obtida ir variar de um dispositivo para outro (cada PIC tem um comportamento ligeiramente diferente em relao a um mesmo valor de resistor), em funo da tenso de alimentao e da temperatura. Para valores de resistncia abaixo de 38K, o oscilador pode se tornar instvel ou parar completamente. J para valores acima de 1M, o oscilador torna-se sensvel ao rudo e umidade. Ento, para o uso de ER, recomenda-se para o resistor valores entre 38K para a mnima oscilao, 10kHz, at 1M para a mxima oscilao, 8MHz, ressaltando que a aplicao no deve ser sensvel temporizao. O modo ER possui duas opes que controlam o pino no utilizado OSC2: a primeira permite que esse pino seja usado como uma porta normal de E/S, enquanto a segunda configura o pino como sada de clock interno (valor dividido por 4), para fins de teste ou de sincronizao com outros dispositivos. No modo INTRC, um oscilador interno prov uma freqncia de operao nominal de 4MHz (com alimentao em 5V e temperatura de 25C). Este modo de clock excelente, pois dispensa componentes externos, libera os pinos de clock para serem utilizados como E/S normal e oferece tima estabilidade de freqncia de operao. Neste modo, possvel calibrar via software uma pequena variao na freqncia obtida, a qual poder estar entre 3.65 e 4.28 MHz. Existe ainda uma ltima configurao do oscilador interno, que capaz de prover uma sada de clock de forma similar configurao ER: o pino OSC2. utilizado para sada de uma freqncia quatro vezes menor que o clock interno (no caso, de 4MHz), para simples aferio do valor ou para propsito de sincronismo com outros dispositivos.
23
A Figura 1.3 ilustra um diagrama de blocos simplificado do circuito interno de reset do PIC. Na parte superior esquerda, possvel visualizar os componentes mais importantes do circuito interno de reset: a entrada de reset externo, no pino MCLR; os mdulos Watchdog Timer, Power-on Reset e Brown-out Detect, estes dois ltimos responsveis pela monitorao das condies de alimentao do chip. J na parte inferior esquerda, esto representados os circuitos de delay (atraso) do clock externo proveniente do pino OSC1/CLKIN. Todos esses mdulos so finalmente conectados a um latch, cuja funo ressetar (inicializar) o microcontrolador PIC em todos os momentos apropriados, os quais so indicados pelos mdulos anteriores. A funo de cada um desses mdulos, bem como uma descrio de seu funcionamento, comentada nas prximas subsees.
24
Microcontroladores e FPGAs
Quando o dispositivo inicia sua operao normal (sai da condio de reset), os parmetros de operao (voltagem, freqncia, temperatura etc.) precisam estar seguros. Se essa condio no for atingida, o PIC deve ser segurado no reset, ou seja, a funo do POR.
O circuito BOD possui um bit de configurao, responsvel por habilitar ou no o BOD. Esse bit denominado BODEN.
25
tabelecido (no CCP, lembrar que CCP Capture/Compare/PWM mdulo que faz a captura comparao e operao de PWM). PWM significa Pulse Width Modulation, modulao baseada em largura do pulso.
4. Interrupo por estouro do TIMER0. 5. Interrupo do comparador analgico. 6. Interrupo da USART (interface de comunicao). 7. Interrupo do mdulo CCP. 8 10. Interrupes por mudanas de estado na porta B, nos pinos RB4 ao RB7.
26
Microcontroladores e FPGAs
Um registrador de controle de interrupes, o INTCON, armazena as requisies individuais de interrupes em bits sinalizadores (flag bits) e tambm responsvel por habilitar interrupes globais e individuais por meio de um bit, o GIE (INTCON<7>). A Figura 1.5 ilustra o mecanismo interno de captura de interrupes do PIC. Todas as siglas com a terminao F (exemplo: TMR1F) so representaes de ligaes entre o mecanismo de reset e o flag do dispositivo que causou a interrupo na CPU. J as siglas com a terminao E, so os bits que habilitam ou no a interrupo correspondente.
O bit GIE, presente no INTCON, habilita as interrupes globais, alm de ser limpo no reset. Interrupes individuais (siglas com a terminao E) podem ser habilitadas ou desabilitadas em seu respectivo bit no INTCON.
do.
4. Gera uma sada de pulsos com modulao de largura (PWM).
A funo do mdulo CCP definida pelos bits de configurao de seu registrador de controle, o CCP1COM.
27
A Figura 1.6 ilustra, em (a), o mdulo CCP configurado em modo de captura e em (b), o mdulo CCP configurado em modo comparador.
No modo de captura, o registrador CCPR1 captura o valor de 16 bits do Timer1 quando ocorre um evento no pino RB3, conforme j foi comentado. No modo de comparao, o valor de 16 bits anteriormente setado constantemente comparado com o valor corrente em Timer1. Quando os valores so iguais, um bit de flag, o CCP1IF setado para que ocorra uma interrupo (se esta interrupo estiver habilitada por CCP1IE) no processamento da CPU. O Timer1 precisa estar operando em modo timer ou contador sincronizado para que o mdulo CCP seja capaz de capturar larguras de pulso. Em modo assncrono, a operao de captura no funcionar. A terceira funo do mdulo CCP a produo de um pulso de PWM para utilizao externa ao chip. No modo PWM, o CCP pode produzir pulsos com at 10 bits de resoluo. A Figura 1.7 ilustra em (a) a configurao interna do CCP para produo de PWM e em (b), as especificaes do pulso gerado nesse modo.
Figura 1.7 Terceira funo (PWM) do mdulo CCP do PIC16F628 [PIC, 1999].
O perodo do pulso de PWM especificado por uma escrita no registrador PR2. Quando Timer2 igual ao PR2 ocorrem os seguintes eventos no prximo ciclo de incremento:
28
1. Timer2 zerado.
Microcontroladores e FPGAs
2. O pino CCP1 setado (a exceo quando o valor do duty cycle for igual a 0%). 3. O PWM duty cycle transferido do CCPR1L ao CCPR1H.
O PWM duty cycle especificado por uma escrita no registrador CCPR1L e no CCP1CON<5:4>. Se o PWM duty cycle for maior que o perodo, o pino CPP1 nunca ser limpo (zerado). Neste modo de gerao de PWM possvel gerar vrias freqncias diferentes, mantendo a propriedade de alterar o duty cycle.
O Timer1 e o Timer2 so registradores de 16 e 8 bits, respectivamente, e possuem caractersticas equivalentes ao Timer0, porm so compartilhados com o mdulo CCP, o que causa incmodo aos programadores quando necessria a existncia de funes independentes dentre tais mdulos.
29