Download - 10 Picmicro Osc Eeprom Reset Senaeng.com
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 178
Outros circuitos internosOscilador, EEPROM e Reset
Como se pode ver pela gura abaixo, o relgio pode ser gerado por um de dois osciladores internos:
Dois oscliadores internos
Um Oscilador Externo instalado na proximidade do microcontrolador, e ligado aos pinos OSC1 e OSC2.
chamado de externo, porque consiste em electrnica externa que gera o sinal de relgio e a estabilizao de
frequncia, tal como um cristal de quartzo, ressoador cermico ou resistncia-condensador.
O modo do oscilador escolhido por bits que so enviados durante a programao fsica, numa chamada
Palavra de Con gurao, ou Fusveis.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 179
O oscilador interno, consiste em dois osciladores internos separados:
O HFINTOSC um oscilador interno de alta-frequncia, que funciona a 8MHz. O microcontrolador pode
usar a fonte de relgio a essa velocidade, ou dividi-la com um divisor.
O LFINTOSC um oscilador interno de baixa-frequncia, que funciona a 31KHz. O seu relgio usado
para o Watch-dog e temporizadores Power-up, mas pode tambm ser usado como fonte de relgio para todo
o microcontrolador.
O relgio do sistema pode ser escolhido entre externo e interno, atravs do bit SCS - System Clock Select, do
registo OSCCON.
Registo OSCCON
O registo OSCCON controla o relgio de sistema, e as opes de seleco da frequncia. Contm os seguintes
bit:
Bits de seleco de frequncia, IRCF2-IRCF0
Bits de estado da frequncia, HTS e LTS
Bits de controlo do relgio do sistema, OSTA e SCS
IRCF2-IRCF0 - Bits de seleco da Frequncia do Oscilador Interno. A combinao destes bits determina a
taxa de diviso. A frequncia de relgio do oscilador interno tambm determinada desta forma.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 180
IRCF2 IRCF1 IRCF0 Frequency OSC.
1 1 1 8 MHz HFINTOSC
1 1 0 4 MHz HFINTOSC
1 0 1 2 MHz HFINTOSC
1 0 0 1 MHz HFINTOSC
0 1 1 500 kHz HFINTOSC
0 1 0 250 kHz HFINTOSC
0 0 1 125 kHz HFINTOSC
0 0 0 31 kHz LFINTOSC
OSTS - Bits de estado do Start-up Time-out do Oscilador. Indica que fonte de relgio est, no momento, em
uso. apenas de leitura.
1 - Oscilador externo em uso
0 - Um dos osciladores internos est em uso (HFINTOSC ou LFINTOSC)
HTS - bit de estado do HFINTOSC (125KHz - 8MHz). Indica se o oscilador de alta-frequncia est a
funcionar com estabilidade
1 - HFINTOSC est estavel
0 - HFINTOSC est instavel
LTS - bit de estado do LFINTOSC (31KHz). Indica se o oscilador de baixa-frequncia est a funcionar com
estabilidade
1 - LFINTOSC est estavel
0 - LFINTOSC est instavel
SCS - Bit de seleco do Relgio do Sistema. Determina qual o oscilador a usar como fonte de relgio
1 - O oscilador interno usado como fonte de relgio do sistema
0 - O oscilador externo usado como fonte de relgio do sistema
O modo do oscilador escolhido por bits que so enviados durante a programao fsica, numa chamada
Palavra de Con gurao, ou Fusveis.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 181
Modos de Relgio Externo
De maneira a habilitar o oscilador externo a funcionar a diferentes velocidades, e a usar diferentes componentes
para a estabilizao da frequncia, este pode ser con gurado por um de vrios modos.
A seleco do modo pode ser incluida junto com o software, no momento da escrita, ou ento pode ser ajustada
no software de programao no PC.
Durante a programao, os bytes da Palavra de Con gurao - Fusiveis, so escritos na memria ROM do
microcontrolador, e guardados em registos especiais, que no esto disponiveis para o o programador. com
base nestes bits, que o microcontrolador sabe o que fazer.
Con gurao dos Fusiveis do PIC
Modo EC - Oscilador Externo
O modo de relgio externo, EC, usa o relgio do sistema con gurado para oscilador externo. A frequncia
deste relgio ilimitada (0-20MHz).
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 182
Este modo tem as seguintes vantagens:
A fonte de relgio externo ligada ao pino OSC1, e o pino OSC2 est disponivel para I/O geral
possivel sincronizar o funcionamento do microcontrolador, com o resto da electrnica
Neste modo, o microcontrolador arranca o funcionamento assim que o sistema energizado
Se se parar o relgio externo temporariamente, o microcontrolador congela o funcionamento, deixando
todos os dados intactos. Assim que se restabelecer o relgio, o microcontrolador resume o funcionamento,
do ponto de onde parou, como se nada tivesse acontecido
Oscilador Externo em modo EC
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 183
Modo LP, XT ou HS - Oscilador Externo
Dois tipos diferentes de cristais de quartzo
Os modos LP, XT e HS, suportam o uso do oscilador interno, para con gurar a fonte de relgio. A frequn-
cia desta fonte determinada por cristais de quartzo, ou ressoadores cermicos, ligados aos pinos OSC1 e
OSC2.
Dependendo do tipo de cristal usado, escolher um dos seguintes modos:
Modo LP (Low Power - Baixa Potncia) - usado apenas para cristais de quartzo de baixa-frequncia. Este
modo foi desenhado para acolher cristais de 32.768KHz, normalmente usados para relgios de quartzo. So
simples de reconhecer, pela sua forma cilndrica, e o consumo de corrente a mais baixa de todos os modos.
Modo XT - usado para cristais de quartzo de frequncias at os 8MHz. O consumo de corrente mediano.
Modo HS (High Speed - Alta Velocidade) - usado para cristais quartzo de frequncias acima dos 8MHz. O
consumo de corrente o mais elevado.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 184
Esquema elctrico do Oscilador Externo, e de alguns componentes adicionais
Ressoador Cermico no modo XT ou HS
Ressoador cermico
Os ressoador cermicos tem caractersticas bastante similares aos cristais de quartzo. Por isso so ligados da
mesma maneira. Mas tem a vantagem de serem muito menos onerosos, no tendo to boa estabilidade de
frequncia como os cristais. So usados para frequncias de relgio entre os 100KHz e os 20MHz.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 185
Modo RC e RCIO - Oscilador Externo
H certamente muitas vantagens em usar elementos para estabilizao de frequncia. Mas, por vezes, so per-
feitamente desnecessrios.
su ciente que o oscilador funcione a uma frequncia no de nida, e a soluo mais simples e menos onerosa,
usar uma resistncia-condensador para fazer o oscilador funcionar.
H dois modos:
Modo RC:
Neste modo, o circuito RC ligado ao pino OSC1, como se
mostra na gura. O pino OSC2 tem na sua sada, a frequn-
cia do oscilador RC, dividido por 4. Este sinal pode ser usado
para calibrao, sincronizao ou outros.
Modo RCIO:
Similar ao anterior, com a diferena de que o pino OSC2
usado como um I/O geral
Em ambos os casos, recomendado usar componentes como mostram nas guras.
A frequncia deste oscilador calculada pela frmula f = 1 / T , onde:
f = Frequncia [Hertz]
T = R*C = constante de tempo [segundos]
R = Resistncia [Ohm]
C = Capacidade [Farad]
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 186
Modos de Relgio Interno
O oscilador interno consiste em dois osciladores separados, que podem ser escolhidos como fonte de relgio
do sistema:
O oscilador HFINTOSC calibrado de fbrica, e oscila a 8MHz. Esta frequncia pode ser ajustada pelo
programador, usado bits do registo OSCTUNE.
O oscilador LFINTOSC no calibrado de fbrica, e oscila a 31KHz.
Da mesma forma que o oscilador externo, o interno tambm pode funcionar em vrios modos. O modo selec-
cionado da mesma maneira que o oscilador externo - pelos bits da Palavra de Con gurao - Fusiveis.
Modo INTOSC - Oscilador Interno
Neste modo, o pino OSC1 est disponivel para I/O
geral, enquanto que o pino OSC2 tem disponivel a
frequncia de onscilao interna dividida por 4.
Modo INTOSCIO - Oscilador Interno
Neste modo, ambos os pinos OSC1 e OSC2 esto
disponiveis para I/O.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 187
Con gurao do Oscilador Interno
O oscilador interno consiste em dois circuitos separados.
1.
O oscilador interno de alta-frequncia HFINTOSC, est ligado a um divisor de frequncia. calibrado de
fbrica, e funciona a 8MHz. Usando o divisor, este oscilador pode ter na sua sada, uma de sete frequncias, que
podem ser escolhidas pelos bits IRCF2-IRCF0 do registo OSCCON.
O HFINTOSC ligado, escolhendo uma de sete frequncias (entre 125KHz e 8MHz), e activando o bit
SCS do OSCCON. Como se pode ver pela gura abaixo, toda a con gurao realizada pelos bits do registo
OSCCON.
Con guraes do Oscilador Interno
2.
O oscilador interno de baixa-frequncia LFINTOSC, funciona a 31KHz e no vem calibrado de fbrica.
activado, escolhendo esta frequncias (bits no OSCCON), e activando o bit SCS do mesmo registo.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 188
Modo de Arranque de Relgio a Duas-Velocidades
O Modo de Arranque de Relgio a Duas-Velocidades, usado para dar poupanas energticas adicionais,
quando o microcontrolador funciona em modo Sleep.
Quando con gurado no modo LP, XT ou HS, o oscilador externo vai estar desligado quando em Sleep, de
maneira a reduzir o consumo mdio energtico do microcontrolador.
Quando as condies para acordar esto reunidas, o microcontrolador no vai retomar o servio automatica-
mente, porque tem que aguardar que o sinal de relgio que estavel. Este atraso de exactamente 1024 pulsos.
Depois destes, o microcontrolador procede com a execuo do programa.
O problema que, quase sempre, so apenas umas poucas instrues executadas, antes de o microcontrolador
entrar em Sleep. Signi ca que, na maior parte do tempo, a energia desperdiada.
Este problema solucionado, usando o oscilador interno para a execuo do programa, enquanto os 1024
pulsos so contados. Seguidamente, e assim que o oscilador externo car estvel, vai automaticamente tomar o
lugar principal. Todo o processo habilitado, activando o bit IESO nos Fusiveis.
Fail-Safe Clock Monitor - FSCM - Monitor contra falhas de Relgio
O FSCM monitoriza o funcionamento do oscilador externo, e permite, ao microcontrolador, continuar a ex-
ecuo do programa, mesmo que o oscilador externo falhe por alguma razo. Neste caso, o oscilador interno
assume a operao.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 189
Monitor de Relgio contra falhas
O FSCM detecta a falha do oscilador, comparando as fontes de relgio Interna e Externa. Caso o oscilador
esterno demore mais de 2 milisegundos a chegar aos pinos do microcontrolador, a fonte de relgio mudada
automaticamente para o oscilador interno, que continua a operao, controlado pelos bits do OSCCON.
Quando o bit OSFIE do registo PIE2 estiver activo, uma interrupo gerada.
O relgio de sistema continuar a ser o interno, at que o oscilador externo retome o funcionamento. A tran-
sio feita automaticamente.
Este mdulo activado, pela con gurao do bit FCMEN nos Fusiveis, aquando da programao fsica do
microcontrolador.
Registo OSCTUNE
Quaisquer modi caes no registo OSCTUNE, afectam a frequncia HFINTOSC, mas no a LFINTOSC.
Tambm, no h indicao durante a operao, de que houve mudana.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 190
TUN4-TUN0 - Bits de Sintonizao da Frequncia. Pela combinao destes cinco bit, a frequncia do oscila-
dor de 8MHz varia. Desta maneira, as frequncias obtidas pelo divisor, tambm mudam.
TUN4 TUN3 TUN2 TUN1 TUN0 Frequncia
0 1 1 1 1 Mxima
0 1 1 1 0
0 1 1 0 1
. . . . .
. . . . .
0 0 0 0 1
0 0 0 0 0 Calibrado
1 1 1 1 1
. . . . .
. . . . .
1 0 0 1 0
1 0 0 0 1
1 0 0 0 0 Mnima
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 191
Memria EEPROM
A EEPROM no pertence, nem memria do programa (ROM FLASH), nem memria de dados (RAM),
mas sim a um grupo especial. Mesmo estas posies de memria no sendo facil e rapidamente acessiveis como
os outros registos, so de grande importncia pois, os dados da EEPROM, so permanentemente gravados. Os
dados da EEPROM podem ser alterados a qualquer momento. Devido a estas excepcionais qualidades, cada
byte de EEPROM valioso.
O PIC estudado neste manual tem 256 posies de EEPROM, controlados pelos bits dos seguintes registos:
EECON1 - registo de controlo
EECON2 - registo de controlo
EEDAT - grava dados prontos para ler/escrever
EEADR - grava endereo a ser acedido
No entanto, o EECON2 no um registo verdadeiro, pois no existe sicamente. apenas usado na sequncia
de escrita.
Os registos EEDATH e EEADRH, pertencem ao mesmo grupo de registos usados durante a escrita/leitura
da EEPROM. Ambos so udados, tambm, para escrita/leitura da memria do programa (ROM FLASH).
Como esta considerada uma zona de risco, pois no queremos inadvertidamente apagar o programa do mi-
crocontrolador, ca o aviso.
Registo EECON1
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 192
EEPGD - Bit de seleco de acesso memria de Programa ou EEPROM de Dados
1 - Acede memria de Programa, ROM FLASH
0 - Acede memria de Dados, EEPROM
WRERR - Flag de error na EEPROM
1 - A operao de escrita foi prematuramente terminada e um erro ocorreu
0 - A operao de escrita terminada
WREN - Bit de habilitao da escrita da EEPROM
1 - Escrita na EEPROM permitida
0 - Escrita na EEPROM proibida
WR - Bit de controlo da Escrita
1 - D incio escrita na EEPROM
0 - Escrita para a EEPROM est completa
RD - Bit de controlo da Leitura
1 - D incio leitura da EEPROM
0 - Leitura da EEPROM desactivada
Leitura da EEPROM
De modo a se poder ler da EEPROM, o seguinte procedimento dever ser executado:
Escrever um endereo (0x00 a 0xFF) no registo EEADR
Seleccionar o acesso EEPROM, pelo bit EEPGD no registo EECON1
Para ler a posio, activar o bit RD no mesmo registo
Os dados so armazenados no registo EEDAT, e prontos a serem usados.
O seguinte exemplo mostra a leitura da EEPROM:
1.
2.
3.
4.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 193
BSF STATUS,RP1 ;BCF STATUS,RP0 ; Access bank 2MOVF ADDRESS,W ; Move address to the W registerMOVWF EEADR ; Write addressBSF STATUS,RP0 ; Access bank 3BCF EECON1,EEPGD ; Select EEPROMBSF EECON1,RD ; Read dataBCF STATUS,RP0 ; Access bank 2MOVF EEDATA,W ; Data is stored in the W register
Escrita da EEPROM
De modo a escrever na EEPROM, deve escrever-se o endereo no registo EEADR, e depois o byte de dados
no registo EEDAT. Seguidamente necessrio fazer uma sequncia de segurana, para iniciar a escrita de cada
byte. As interrupes devem ser desligadas durante esta sequncia.
O seguinte exemplo mostra a escrita na EEPROM:
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 194
BSF STATUS,RP1BSF STATUS,RP0BTFSC EECON,WR1 ; Wait for the previous write to completeGOTO $-1 ;BCF STATUS,RP0 ; Bank 2MOVF ADDRESS,W ; Move address to WMOVWF EEADR ; Write addressMOVF DATA,W ; Move data to WMOVWF EEDATA ; Write dataBSF STATUS,RP0 ; Bank 3BCF EECON1,EEPGD ; Select EEPROMBSF EECON1,WREN ; Write to EEPROM enabledBCF INCON,GIE ; All interrupts disabledMOVLW 55h ; Required sequence startMOVWF EECON2MOVLW AAhMOVWF EECON2 ; Required sequence endBSF EECON1,WRBSF INTCON,GIE ; Interrupts enabledBCF EECON1,WREN ; Write to EEPROM disabled
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 195
Reset! Black-out, Brown-out ou Ruidos?
No Reset, o microcontrolador imediatamente pra o funcionamento, e limpa os seus registos.
O sinal de Reset pode ser gerado externamente a qualquer momento, pelo nivel lgizo 0 no pino MCLR. Se
necessrio, tambm pode ser gerado pela electrnica interna. O Power-on gera sempre um Reset. Nomeada-
mente, devido a vrios eventos que acontecem quando a fonte de alimentao est ligada (maus contactos de
interruptores, arcos elctricos, tenso a subir vagarosamente, estabilizao gradual da frequncia de relgio,
etc), necessrio forar um atraso de tempo, antes do microcontrolador iniciar o funcionamento.
Dois temporizadores internos - PWRT e OST, esto encarregados deste servio. O primeiro pode ser ligado/
desligado durante a execuo do programa.
Funciona da seguinte maneira:
Quando a fonte de alimentao alcana os 1.2-1.7V,
o circuito de Power-up pe o microcontrolador
em Reset, por aproximadamente 72 milisegundos.
Imediatamente a este temporizador ter terminado,
outro sinal de Reset gerado pelo Oscilador de
Start-up, que aguarda 1024 periodos do oscilador
de quartzo. Quando este atraso termina, marcado a
T Reset na gura, e o pino MCLR estiver a lgico 1,
o microcontrolador d incio execuo da primeira
instruo do programa. Atraso de Incio do Oscilador
H, ainda, mais dois Resets, que podem ocorrer durante o funcionamento, bem como no momento em que a
energia desligada.
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 196
Reset por Black-out - Falha de Energia Sbita
O Reset de Black-out acontece quando a energia de
alimentao desligada. Nesse caso, o microcontro-
lador no tem tempo para realizar nenhuma funo
imprevisivel, simplesmente porque a tenso cai
abruptamente abaixo do seu valor mnimo.
Por outras palavras, no possivel fazer nada quando
esta situao acontece.
Perda de Energia Sbita
Reset por Brown-out - Descida de Tenso Lenta e Gradual
Quando a tenso de alimentao desce lentamente,
tpico de sistemas alimentados a baterias, a electrni-
ca interna gradualmente pra o seu funcionamento,
e o chamado reset por brown-out acontece. Neste
caso, antes do microcontrolador parar a execuo do
programa, h uma grave perigo de que, circuitos que
trabalhem a uma tenso superior, comecem a trabal-
har de forma descontrolada. Esta problemtica, tam-
bm, pode causar alteraes fatais no programa em si,
porque est gravado na memria FLASH. Perda de Energia Gradual
-
microcontroladores PIC Outros Circuitos Internos
antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 197
Ruidos
Este um tipo especial de Reset por Brown-out, que
ocorre em ambientes industriais, quando a fonte de
alimentao oscila por um momento, e deixa cair o
seu valor abaixo do nvel mnimo.
Mesmo que curtos, estes ruidos na linha de alimenta-
o, podem causar problemas no funcionamento do
dispositivo.
Rudos
Pino de MCLR
Um nvel lgico 0 no pino MCLR, faz um Reset imediato. recomendado que seja ligado como mostra a
gura abaixo. A funo dos componentes adicionais, a de conseguir suster um estado lgico 1 puro, durante
o funcionamento normal.
De maneira a evitar qualquer erro que possa acontecer
com um Reset por Brown-out, este microcontrolador
tem incluido um sistema de defesa.
um circuito simples, mas e caz, que reage de cada
vez que a tenso de alimentao desce abaixo de 4V,
e se matm assim por mais de 100 microsegundos.
Nesse caso, este circuito gera um sinal de Reset e,
desde esse momento, todo o microcontrolador fun-
ciona como se tivesse sido acabado de ligar.