Recursos especiais do PIC (parte 2)
Autor: Stephen da Silva Madeira | Publicado: 2017-02-15T17:49:00-02:00

Como prometido, continuo aqui com o último post sobre alguns módulos dos PICs. Lembrando novamente que estamos falando sobre o PIC18F2550/4550 mas isto se aplica a todos que tiverem. Confiram sempre o datasheet do seu microcontrolador para conferir o nome e função dos registradores. 

Fail-Safe Clock Monitor

No último post da série, falamos sobre o WDT e como ele pode nos ajudar quando o PIC "trava", mas e a causa deste travamento? Um estouro de pilha? Uma operação ilegal? Uma flutuação de tensão? Ruído na alimentação? Bem, em todos estes casos com certeza o WDT irá atuar e se for algo transiente, o PIC retoma à operação normal. Mas e se ele travou porque houve uma falha no seu Oscilador externo? Se deu defeito no capacitor ou no cristal do circuito de clock? Aí entra o FSCM pra salvar o dia.

&nbsp;Segundo o datasheet, "O   Fail-Safe   Clock   Monitor   (FSCM) permite ao microcontrolador continuar a operar na eventual falha do oscilador externo ao mudar automaticamente o clock do dispositivo para o bloco oscilador interno". Ao detectar uma falha no oscilador externo, o PIC gera uma interrupção (OSCFIF), muda o clock para o interno e limpa o WDT. Com a interrupção você pode optar por dois caminhos: entrar em um dos estados de gerenciamento de energia do PIC ou escolher a próxima fonte de clock.

No programa, tudo que envolver tempo terá que ser ajustado para o novo clock interno, ou você pode usar um cristal sempre da mesma frequência do clock interno escolhida (eu trabalharia com 8MHz).Para ativar este recurso, primeiro configure o registrador OSCCON selecionando o clock desejado em caso de falha e as interrupções (INTCON). Ative a interrupção pelo bit OSCFIE e a monitore pelo bit OSCFIF. Lembre-se de ativar o bit de configuração FCMEN (CONFIG1H).



Two-Speed Start-up

&nbsp;Este é o mais simples de todo: ative o bit de configuração IESO (CONFIG1H). Em modos de oscilador que usem um cristal (XT, HS, XTPLL e HSPLL), este recurso permite o microcontrolador rodar no clock interno até que o clock do cristal esteja estável. O sugerido é apenas que a primeira coisa que seu programa deve fazer é configurar o clock interno (escolher a velocidade) através do OSCCON. Assim que o clock do cristal estiver pronto, automaticamente o PIC muda sua fonte de clock para ele. É uma boa alternativa para o Power-Up Timer.



High/Low Voltage Detector

&nbsp;Este é o tipo de recurso que você quer ter ativado caso esteja alimentando seu circuito com bateria ou fontes que estejam sujeitas a flutuações de tensão. Este módulo é basicamente um comparador de tensão com sua referência ajustável. Quando a tensão no pino RA5 (HLVDIN) ficar acima ou abaixo do nível configurado, é gerada uma interrupção (HLVDIF). Este módulo é configurado pelo registrador HLVDCON. Importante ressaltar que cada vez que você ativa este módulo, ele leva um tempo para estabilizar, e para isto, há um bit que informa quando ele está pronto (IRVST). Segundo o datasheet, para usar ele você deve prosseguir da seguinte forma:

1. Desabilite o módulo limpando o bit HLVDEN (HLVDCON<4>).

2. Escreva o valor aos bits HLVDL3:HLVDL0 que selecionam a tensão de disparo do HLVD desejada.

3. Arme o bit  VDIRMAG para detectar uma tensão acima (VDIRMAG=1) ou abaixo (VDIRMAG=0) da tensão de disparo.

4. Habilite o módulo HLVD armando o bit HLVDEN.

5. Limpe a bandeira de interrupção do HLVD,    HLVDIF

(PIR2<2>),  que pode ter sido armada por uma interrupção anterior.

6. Habilite a interrupção do HLVD, se desejado,  armando os bits HLVDIE e  GIE/GIEH (PIE2<2>  and  INTCON<7>).  Uma interrução não será gerada até o bit IRVST estar armado.E pronto! O HLVD estará aí pra te ajudar a saber se uma tensão está abaixo ou acima de um valor desejado. Isto é muito útil pra monitorar a tensão da bateria que alimenta seu circuito, por exemplo.

 

 

Estes eram os últimos módulos que faltavam eu comentar. Sei que ficou parecendo estar tudo por cima mas a ideia era apresentar os módulos pra que vocês saibam da existência deles. Recomendo e muito lerem o datasheet para entenderem como eles funcionam e para como usá-los da melhor forma nos seus projetos. Tire sempre o máximo proveito do microcontrolador que você comprou!