Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
umento
1.0 O PIC18F452
1.1 Tipos de Capsulamentos
1.2 Estrutura Interna do PIC18F452
1.3 Descrio das funes dos pinos do PIC18F452
Memria do PIC18F452
Osciladores
o
o
o
o
o
o
1.0 O clock
1.1 Osciladores: Cristal e Ressonador
1.2 Cristal de Oscilao RC
1.3 Modo HSPLL
1.4 Ciclos de Mquina
1.5 Reset
Bits configurations
1.9 CCP2MX
2.0 BKBUG (debug)
2.1 LVP (Low Voltagem Programming)
2.2 STVREN (Stack Full/Underflow Reset Enable Bit)
O PIC18F452
O PIC18F452 um microcontrolador que possui memria do tipo
FLASH, que nos representa uma grande facilidade em
desenvolvimentos de projetos e prottipos pois no requer apaglo atravs de luz-ultravioleta como as verses antigas que
utilizavam EEPROM.
microcontrolador de 40 pinos;
memria de programa FLASH de 32K ( 16384 bytes
words)
Unhaced Usart
Permite at 100 000 ciclos de escrita e leitura na
memria de programa Flash
Tipos de encapsulamentos:
As primeiras verses do PIC eram baseadas em encapsulamentos do tipo
DIP40, hoje os dipositivos de 40 pinos ainda so muito comuns, porm de
acordo com a aplicao e os perifricos internos presentes no Chip eles podem
ser encontrados em diversos encapsulamentos como:
DIP Dual In-line Pin
PLCC Leadless Chip Carrier.
TQFP
Pino
(DIP)
Funo
/MCLR/VPP
Tipo
entrada entrada
Descrio
entrada
entrada
I/O 5
RA3 / AN3 / Vref+ entrada entrada
I/O 6
RA4 / T0CKI
entrada entrada
I/O entrada 7
RA5/AN4/SS/LVDIN
entrada entrada
I/O 33 RB0 / INT0
entrada
I/O 34 RB1 / INT1
entrada
I/O 35 RB2 / INT2
entrada
baixa do A/D
entrada e sada de uso geral / entrada do
conversor AD3 / entrada de referncia
Alta do A/D
entrada e sada de uso geral / entrada de
clock timer0
entrada e sada de uso geral / entrada do
conversor AD4 / entrada de seleo SPI,
detector de baixa voltagem.
I/O
26 RC7/RX/DT
19 RD0/PSP0
I/O - I/O
20 RD1/PSP1
I/O - I/O
21 RD2/PSP2
I/O - I/O
22 RD3/PSP3
I/O - I/O
27 RD4/PSP4
I/O - I/O
28 RD5/PSP5
I/O - I/O
29 RD6/PSP6
I/O - I/O
30 RD7/PSP7
I/O - I/O
RE0/RD/AN5
I/O
RE1/WR/AN6
I/O
10 RE2/CS/AN7
I/O
12 ,
GND
31
11,
VCC
32
alimentao negativo
alimentao positivo
Tipos de Memrias
No PIC18F452 encontramos trs tipos de memrias:
Memria de Programa
A memria de programa utilizada em nosso microcontrolador do tipo FLASH
(sufixo "F") que permite ser gravada/apagada no minimo 1000 vezes. Este tipo
de memria utilizada ideal para ser utilizada em desenvolvimento de projetos
e at mesmo em produtos finais.
Podemos perceber que a memria de programa do PIC18F452 iniciase no endereo 0000h e atinge o valor mximo de 7FFFH, ou seja , 32767K
byte (32Kbyte).
Nota:
No podemos confundir de forma alguma memria de
programa e memria de dados. Sabemos que memria de
programa onde nosso programa estar gravado, enquanto
memria de dados onde os valores de nossas variveis sero
salvas temporariamente.
O endereo inicial 0000h chamado de vetor de reset. A instruo
de programa que estiver nesse endereo de memria ser a primeira a ser
executada pelo processador do PIC. Sempre que energizarmos ou resetarmos
o microcontrolador, o contador de programa PC apontar sempre para este
primeiro endereo da memria.
Em seguida temos os endereos 0008h e 0018h. Estes endereos
so chamados de vetores de interrupo. (veremos mais adiante em nosso
curso sobre esses vetores de interrupo).
Em seguida temos os endereos 0008h e 0018h. Estes endereos so
chamados de vetores de interrupo. (veremos mais adiante em nosso curso
sobre esses vetores de interrupo).
Vamos exemplificar um processo de gravao na memria de programa do
PIC.
Acompanhe o programa exemplo de programa abaixo:
/Este programa tem por funo alterar o estado dos 8 pinos do PORTB do PIC
em intervalos de 1 segundo.
void main() {
TRISB = 0;
// configura o portB como sada
PORTB = 0x00;
// coloca zero em todos os pinos do portB
do {
PORTB = 0xFF;
// coloca um em todos os pinos do portB
Delay_ms(1000); // delay de 1 segundo (1000 ms)
PORTB = 0x00;
// Coloca zero em todos os pinos do portB
Delay_ms(1000); // delay de 1 segundo
} while(1);
}
Ao compilarmos o programa acima com o mikroC teremos como resultado o
seguinte cdigo de mquina (descrito somente algumas linhas do cdigo
gerado;
O Clock
1. LP
2. XT
3. HS
4.
5.
6.
7.
8.
ressonador
HS + PLL
RC
RCIO
EC
ECIO
low-power cristal
cristal ou ressonador
High-Speed cristal (cristal de alta velocidade) ou
High-Speed cristal ou ressonador com PLL habilitada
Resistor / Capacitor externo
Resistor / Capacitor externo com pino de I/O
Clock externo
Clock exteno com pino de I/O
cristal de quartzo
Ressonador
cermico
Circuito de Oscilao RC
Este o tipo de oscilador mais simples que existe e tambm o mais barato,
mas, por outro lado, o menos preciso, variando muito a tenso de trabalho,
temperatura e tolerncias. O circuito RC deve ser ligado conforme a figura
abaixo:
Modo HSPLL
HSPLL na verdade um modo em que podemos multiplicar o valor da
freqncia de entrada do cristal oscilador por 4. ideal para ambientes em que
o dispositivo no pode gerar EMI (interferncia Eletromagntica). Este modo
deve ser habilitado nos "fusveis de configuraes" no momento em que
formos gravar o chip.
Por exemplo:
Caso venhamos conectar ao PIC um cristal de 10 MHz entre os pinos OSC1 e
OSC2 e ativarmos o modo HSPLL no momento em que gravarmos o chip, o
PIC passa a operar a 40 MHz, executando as instrues internas em 10MHz
(10 MIPS - milhes de instrues por segundo), pois a frequncia real de
operao do seu microcontrolador : Fosc / 4.
Para representar os bits de configurao de nosso microcontrolador, iremos
utilizar um software gratuito de gravao de microcontroladores PIC disponvel
na internet, chamado WinPIC800. (www.winpic800.com).
Nota: No programa Winpic800 podemos definir o tipo de oscilador utilizado no
PIC atravs do seguinte setup:
Oscilador
oscilador switch
enable
power up timer
brown out detect
brown out voltage
watchdog timer
watchdog postscaler
ccp2mx
stack overflow enable
low voltage program
0x1FFF
desabilitado
BKBUG (debug)
Atravs desse bit , podemos habilitar o modo DEBUGGER no
PIC. Nesse modo possivel emular um programa no prprio
projeto eletrnico. Emular consiste no processo de junto com o
computador, testar passo a passo o funcionamento do programa
que est rodando no microcontrolador. Se esta opo estiver
ativa, os pinos de gravao RB6 e RB7 deixam de funcionar
como I/O's; caso contrrio, o funcionamento desses pinos fica
normal. Faz necessrios a utilizao de equipamentos de
debugao fornecidos pela Microchip, ou outras empresas para
realizar esta operao.
voltar para o topo da pagina
LVP (Low Voltagem Programming)
Quando o PIC gravado, acionado uma tenso de 12Vcc no
pino MCLR. Se a opo LVP estiver ativa, para gravar o PIC
basta ter nivel lgico 1 no pino RA5. Esta opo ideal para
aplicaes em campo onde dificil encontrar tenses de 12V
disponvel em determinados equipamentos.
voltar para o topo da pagina
STVREN (Stack Overflow Reset Enable Bit)
O PIC18F452 possui internamente 31 endereos de pilha.
Quando habilitamos esse bit STVREN, toda vez que
ultrapassarmos o limete da pilha (ocorrer overflow) o
microcontrolador ser resetado.
voltar para o topo da pagina
rea de Protees contra leitura e escrita
Ciclos de mquina
A contagem de tempo no medida diretamente pela freqncia de oscilao do cristal e
sim atravs do que chamamos de CICLO DE MQUINA.
Internamente no microcontroladores PIC a freqncia do cristal dividida por 4, o que nos
resulta que a freqncia real de trabalho :
Concluimos ento que nosso microcontrolador PIC com cristal de 8MHz esta
trabalhando efetivamente a 2MHz, ou seja , cada instruo de programa leva
0,5 us para ser executada.
Nota: Temos que lembrar que nosso microcontrolador em
estudo pode operar com cristal oscilador de at 40MHz, disso
nos resulta em 10MHz a freqncia mxima de trabalho
permitida por esse chip.
Freqncia de trabalho real = 40MHz / 4 => 10MHz
Reset
Sempre que ligamos ou energizamos nosso circuito microcontrolado
interessante que o PIC seja resetado, para isso necessria a insero de um
circuito eletrnico bem simples, mas capaz de realizar esse procedimento que
costumamos chamar de POWER ON RESET.
Alm disso interessante que exista um boto para que o usurio possa
reiniciar o sistema sempre que for necessrio (reset manual), a seguir
indicamos um exemplo de circuito para o reset.