10 picmicro osc eeprom reset senaeng.com

Upload: leandro-ribeiro

Post on 10-Oct-2015

33 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.