sistemas microcontrolados - ccfacape.webnode.com · programação do pic. 2. microcontroladores e...
TRANSCRIPT
Sistemas Microcontrolados
Função dos Registradores no PIC
Prof. Sergio F. Ribeiro
Ciência da Computação
Microcontroladores e Robótica - FACAPE
Os Registradores Especiais que Controlam Tudo
� Vimos que configurações podem ser feitas para definir as portas como entradas ou saídas, ativar as interrupções, ativar a contagem do TMR0 por sinal externo, etc.
� Mas, afinal, onde ficam essas configurações?� Como vimos anteriormente (em memória de dados), o PIC
possui uma série de registradores especiais, denominados SFR (Special Function Registers), que servem exatamente para guardar a configuração e o estado atual da máquina.
� Veremos agora um apanhado geral sobre esses registradores.
� Mais detalhes serão comentados quando formos partir pra programação do PIC.
2
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
OPTION� Esse registrador serve para configurar uma série de
opções para a operação do microcontrolador: habilitação dos pull-ups do PortB, configurações do prescaler, configurações do TMR0 e seleção da borda para a interrupção externa.
3
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
INTCON, PIR1 e PIE1� Esses registradores servem para configurar e identificar
todas as interrupções existentes no PIC16F628A.� O registrador INTCON opera com as interrupções
principais: Timer 0, interrupção externa e interrupção por mudança de estado.
� Além disso, o INTCON possui a chave geral de todas as interrupções (GIE) e a chave geral para as interrupções de periféricos.
� Os registradores PIR1 e PIE1 são os responsáveis pelas interrupções de periféricos: EEPROM, Comparadores, USART, CCP, Timer 1 e Timer 2.
4
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
INTCON, PIR1 e PIE1
5
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
TRIS� Esses registradores servem para configurar os pinos das
portas como entrada ou saída.� Quando é colocado “1” em um bit do TRIS, o pino
relacionado a ele é configurado como entrada.� Para configurar o pino como saída, deve-se escrever “0”
no bit relacionado.� Uma maneira prática para memorizar essa regra é
associar o “1” ao “I” de Input (Entrada), e o “0” ao “O” de Output (saída).
� Para configurar o PortA, deve ser utilizado o TrisA, e para configurar o PortB, deve ser utilizado o TrisB.
6
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
PORTS� Como já foi visto, o PIC16F628A possui duas portas: PortA
e PortB.
� Quando um pino é configurado como entrada, ao lermos o seu bit relacionado, encontraremos diretamente o nível lógico aplicado a esse pino.
� Da mesma maneira, ao configurarmos um pino como saída, podemos alterar seu estado escrevendo diretamente no bit relacionado.
7
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
8
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
TIMER 0� O TMR0 é um registrador de 8 bits que pode ser acessado
diretamente na memória, para a leitura e para a escrita.� A diferença entre ele e os demais registradores é que seu
incremento é automático e pode ser feito pelo clock da máquina ou por um sinal externo.
� Vale lembrar que o estouro desse contador pode gerar uma interrupção.
� O estouro ocorre quando o contador atinge seu valor máximo, e logo em seguida volta a zerar.
� Os registradores responsáveis pela configuração do Timer 0 são: INTCON e OPTION.
9
Microcontroladores e Robótica - FACAPE 10
Microcontroladores e Robótica - FACAPE 11
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
TIMER 1� O TMR1 é um contador de 16 bits que também pode ser
acessado diretamente na memória, tanto para a leitura quanto para a escrita.
� No entanto, devido ao seu tamanho, esse registrador é armazenado em dois endereços: TMR1H (parte alta) e TMR1L (parte baixa).
� Além disso, o registrador T1CON é o responsável pelas configurações relacionadas ao Timer1: habilitação, prescaler, oscilador externo próprio, origem do incremento (interno ou externo) e sincronismo de incremento.
� O estouro desse contador pode gerar uma interrupção.12
Microcontroladores e Robótica - FACAPE 13
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
TIMER 2� O Timer 2 é um temporizador de 8 bits com um prescaler
e um postscaler.� O Timer 2 pode ser usado como base de tempo PWM
para o modo PWM do módulo CCP.� O TMR2 é outro contador de 8 bits também acessado
diretamente na memória para leitura e escrita.� O registrador T2CON é o responsável pelas configurações
do Timer 2: habilitação, prescaler e postscaler.� Uma interrupção é gerada quando o valor do TMR2 se
iguala ao valor de um outro registrador chamado PR2.
14
Microcontroladores e Robótica - FACAPE 15
Microcontroladores e Robótica - FACAPE
Registradores de Função Especial
CCP1CON, CCPR1H e CCPR1L� Através do módulo CCP é possível acessar três modos
diferentes de operação: Capture, Compare e PWM.� O registrador CCP1CON é o responsável pela configuração
desse modo.� O módulo CCP utiliza ainda o TMR1 como base de tempo
e os registradores complementares CCPR1H (parte alta) e CCPR1L (parte baixa).
16
Microcontroladores e Robótica - FACAPE 17
Microcontroladores e Robótica - FACAPE
Módulo CCP
� O módulo CCP (Capture/Compare/PWM) é um periférico que permite, ao programador, controlar e medir diversos eventos.
� Este módulo pode atuar no modo:� captura� comparação� modulação por largura de pulso (Pulse Width Modulation – PWM)
� Cada um destes modos podem ser configurados via registradores especiais.
18
Microcontroladores e Robótica - FACAPE
Módulo CCP
19
Microcontroladores e Robótica - FACAPE
Módulo CCP
20
Microcontroladores e Robótica - FACAPE
Módulo CCP – Modo Capture� Permite medir a duração de tempo durante um evento.� Os registradores CCPR1H:CCPR1L capturam o valor de 16
bits do par de registradores do Timer 1 (TMR1H:TMR1L) quando um evento ocorre no pino RB3/CCP1 (pino 9).
� Esse evento pode ser:� cada borda de descida� cada borda de subida� cada 4ª borda de subida� cada 16ª borda de subida
Quando uma captura ocorre, a flagde interrupção CCP1IF é setada. Estaflag deve ser limpa por software.
Obs: para que a captura ocorra, o Timer 1 deve estar rodando.21
Microcontroladores e Robótica - FACAPE
Módulo CCP – Modo Compare� O valor do CCP (registradores CCPR1H:CCPR1L) é
constantemente comparado com o valor do Timer 1 (TMR1H:TMR1L).
� Quando os valores coincidem, a flag CCPIF é setada e a interrupção ocorre.
� Além disso, pode-sezerar o Timer 1 ouforçar um estado nopino RB3/CCP1(setar, resetar oupermanecer inalterado).
Este modo pode ser usado para gerar um pulso do tamanho que desejar.
22
Microcontroladores e Robótica - FACAPE
Controle PWM
� O PWM (Pulse Width Modulation – Modulação por Largura de Pulso) pode ser usado para o controle de velocidade de motores e da intensidade luminosa de LEDs.
� A maneira mais simples de se controlar a potência aplicada em uma carga é através de um reostato em série.
Este é um tipo de controle de potência linear.Desvantagem: grande quantidade de calor gerada.
23
Microcontroladores e Robótica - FACAPE
Controle PWM
� Os controles de potência, entre outros circuitos, utilizam o conceito PWM (Pulse Width Modulation) como base de seu funcionamento.
� A idéia do PWM é o uso de um interruptor de ação muito rápida aplicado a uma carga que deve ser controlada.
Interruptor aberto ⇒ sem corrente na carga e potência nula.Interruptor fechado ⇒ a carga recebe a tensão total da fonte, e potência é máxima.
24
Microcontroladores e Robótica - FACAPE
Controle PWM� Como fazer para obter uma potência intermediária,
digamos 50%, aplicada à carga?� deve-se abrir e fechar a chave rapidamente de modo a ficar
50% do tempo aberta e 50% fechada.� isto significa que, em média, teremos metade do tempo com
corrente e metade do tempo sem corrente.
t1 ⇒ chave fechadat2 ⇒ chave aberta
A relação entre o tempo de um pulso e a duração de um ciclo completo de operação do interruptor nos define o ciclo ativo (duty cycle).
25
Controle PWM� Fixando a frequência e variando-se a largura do pulso
tem-se ciclos ativos diferentes.� Assim, quando a largura de pulso varia de zero até o
máximo, a potência também varia na mesma proporção.
Este princípio é usado justamente no controle PWM.
Microcontroladores e Robótica - FACAPE 26
Microcontroladores e Robótica - FACAPE
Módulo CCP – Modo PWM� O modo PWM permite utilizar sinais modulados em largura
de pulso.� Consiste em representar um valor pelo duty-cycle (tempo
em alto) de um trem de pulsos de frequência fixa.� Sua resolução máxima é de 10 bits.
� isto significa que 1023 corresponde a 100% de duty-cycle.� usando uma regra de três simples podemos determinar a quanto
corresponde 30%, 25%, 99%, etc.
� É chamada de modulação porque permite carregar uma informação (expressa no duty-cycle) em uma portadora (trem de pulsos).
� O PWM pode ser utilizado no acionamento de cargas DC, controle de motores, etc.
27
Microcontroladores e Robótica - FACAPE
Módulo CCP – Modo PWM
� O PWM precisa de uma base de tempo que dará a frequência do sinal.
� O módulo CCP utiliza o Timer2 para conseguir essa base de tempo para o PWM.
� Também é necessário que o pino RB3/CCP1 seja configurado como saída.
� Usaremos o modo PWM para o controle de velocidade do motor DC em um robô.
� Mais detalhes de configuração do modo PWM serão vistos durante a programação do módulo CCP na linguagem C.
28
Microcontroladores e Robótica - FACAPE
USART� A USART (Interface Serial Universal Síncrona/Assíncrona)
também chamada de SCI (Interface de Comunicação Serial), é um dispositivo interno para fazer comunicação serial com elementos externos como:� computadores� modens� terminais� memórias� conversores A/D e D/A
� A USART possui dois registradores de deslocamento:� TSR ⇒ responsável pela conversão paralelo/serial (transmissão).� RSR ⇒ responsável pela conversão serial/paralelo (recepção).
Esses dois registradores possibilitam a transmissão e recepção de dados simultânea (full-duplex no modo assíncrono). No modo síncrono, só é possível a comunicação half-duplex (transmissão e recepção alternada).
29
Microcontroladores e Robótica - FACAPE
USART� Os sinais transmitidos/recebidos pela USART fluem por dois
pinos externos do PIC16F628A: RB1 e RB2.� RB1 ⇒ atua como entrada (recepção de dados) no modo
assíncrono. E atua como entrada/saída de dados no modo síncrono.� RB2 ⇒ atua como saída (transmissão de dados) no modo
assíncrono e como saída de clock no modo síncrono.
� A USART faz uso do protocolo RS-232 para a comunicação serial de dados.
� Os níveis de tensão utilizados na comunicação RS-232 não são compatíveis com os níveis CMOS/TTL.
� Para conectar o microcontrolador a uma porta serial do computador é necessário utilizar conversores de nível.� Um dos mais conhecidos é o MAX232.
30
Microcontroladores e Robótica - FACAPE
Conversor Analógico-Digital� O conversor A/D converte uma grandeza analógica
(temperatura, luminosidade, etc.) em um valor digital (representação binária) proporcional a ela.� Esse valor depende diretamente da resolução do conversor e da
tensão de referência (Vref) utilizada na conversão, podendo variar de 0 a (2resolução – 1) unidades.
Equação de conversão de uma tensão de entrada Vin para um valor digital:
�������� �� ∗ �2
� � 1�
���_��� � ���_���
31
Microcontroladores e Robótica - FACAPE
Conversor Analógico-Digital
� O PIC16F628A não possui um conversor A/D.� O conversor A/D do PIC18F4550 possui 13 canais
analógicos multiplexados (AN0 a AN12) e uma resolução de 10 bits.
� Os pinos configurados como entrada analógica devem ser definidos como entrada através do registrador TRIS.
� Os registradores ADCON0 e ADCON1 são responsáveis pela configuração do conversor A/D do PIC18F4550.
� Mais detalhes sobre o uso do conversor A/D serão vistos durante a programação do PIC na linguagem C.
32
Microcontroladores e Robótica - FACAPE
Conversor Analógico-Digital
33
Microcontroladores e Robótica - FACAPE
Conversor Analógico-Digital
34
Microcontroladores e Robótica - FACAPE
Conversor Analógico-Digital
35
Microcontroladores e Robótica - FACAPE
Gravação do Microcontrolador� A gravação do microcontrolador PIC pode ser realizada
sem que o componente seja retirado da placa ou protoboard (gravação in-circuit ou ICSP).
� Essa gravação é feita de forma serial utilizando somente dois pinos: RB6/PGC (pino 12) para o clock e RB7/PGD (pino 13) para envio de dados.
� Além dos pinos RB6 e RB7, é necessário que o pino MCLR/VPP receba uma tensão de 13VDC ± 0.5V durante o processo de gravação.
� Também é necessário que o microcontrolador esteja devidamente alimentado, portanto VDD e VSS devem estar também conectados.
36
Microcontroladores e Robótica - FACAPE
Gravação do Microcontrolador
Gravador de PIC: K150 Software do gravador: microBrn
37
Gravação do Microcontrolador
Gravação in-circuit(ICSP)
Microcontroladores e Robótica - FACAPE 38
Simulação no Proteus� No ISIS Proteus é possível criar esquemas elétricos e
realizar simulações destes esquemas no próprio ambiente.
Microcontroladores e Robótica - FACAPE 39
Simulação no Proteus� Utilizaremos o Proteus pra realizar a simulação de qualquer
sistema microcontrolado antes de criá-lo na prática. Ex:
Microcontroladores e Robótica - FACAPE 40
� Como ferramentas para o desenvolvimento de aplicações para o PIC16F628A são usados o simulador Proteus, o ambiente de desenvolvimento MPLAB e um compilador C.
� O Proteus é um ótimo software de simulação de circuitos.
� Usaremos o MPLAB como meio para gravar o PIC.
� no interior do kit educacional no laboratório de hardware há um gravador de microcontroladores PIC chamado PICKIT2.
� Há muitos compiladores C para microcontroladores PIC, como: PCW, C18, MikroC, entre outros.
Microcontroladores e Robótica - FACAPE
Ferramentas de Desenvolvimento
41
Microcontroladores e Robótica - FACAPE
Ferramentas de Desenvolvimento
� O compilador C a ser usado no laboratório é o MikroC da Mikroelektronika.
� O MikroC é um dos compiladores mais adotados para a programação de microcontroladores PIC.
� Isso se deve ao fato dele gerar um firmware menor, ocupando menos espaço de memória no PIC.
� E outra vantagem do MikroC é sua total compatibilidade com o C padrão ANSI e a facilidade de programar em sua linguagem C, com uma curva de aprendizado mais curta.
� Ao programar em C, recomenda-se consultar o datasheetdo PIC16F628A, assim como o help do compilador.
42
Microcontroladores e Robótica - FACAPE
Bibliografia
� Desbravando o PIC – Ampliado e Atualizado para PIC16F628A – David José de Souza.
� Datasheet do PIC16F628A.
� Material online de Fábio B. de Souza –www.fbseletronica.wordpress.com
43