2 Comentários

Biblioteca de Software de Watchdog Timer para FRDM-KL25Z

Biblioteca de GPIO

Olá caro leitor, tudo bem? Continuando com a série de artigos “Biblioteca de Software para a FRDM-KL25Z”, neste artigo trataremos sobre o Watchdog Timer. Será apresentado o conceito básico sobre Watchdog, usando o princípio de funcionamento do periférico na Freedom Board KL25Z. Por fim, oferecemos a biblioteca desenvolvida e uma aplicação para a demonstração.

Introdução Watchdog Timer

Watchdog vem do inglês "cão de guarda", sendo uma ferramenta que tem como objetivo o monitoramento do sistema. É uma ferramenta tanto de software como de hardware. O objetivo principal é monitorar o funcionamento do sistema. Esse monitoramento é feito por meio de um “Timer”, que precisa ser reiniciado periodicamente. Caso esse temporizador não seja reiniciado, o Watchdog “Reseta” o sistema.

Para implementar um bom algoritmo de Watchdog Timer, sugiro o artigo do “Felipe Lavrati” “Servindo Watchdog adequadamente”, onde ele apresenta a maneira correta de se desenvolver um bom Watchdog e também disponibiliza o código fonte de sua biblioteca.

Computer Operating Properly (COP) Watchdog

O COP é o periférico de Watchdog Timer que esta presente no microcontrolador do Freedom Board KL25Z. O COP funciona conforme qualquer outro Watchdog, uma vez ativado, o seu temporizador precisa ser reiniciado. Se a aplicação falhar em redefinir o “Timer” do COP, o mesmo força o microcontrolador reiniciar.

Toda vez que o microcontrolador é reiniciado, o valor do registrador “System Reset Status Register 0 (RCM_SRS0)” é alterado. Com isso é possível verificar se quem provocou o Reset foi o Watchdog. Na figura a seguir são apresentados os detalhes do registrador.

Detalhes do registrador System Reset Status Register 0 (RCM_SRS0)
Figura 1 - Detalhes do registrador System Reset Status Register 0 (RCM_SRS0)
Descrição do bit WDOG
Figura 2 - Descrição do bit WDOG

Para redefinir a contagem do temporizador do COP, e evitar que o microcontrolador seja reiniciado, é necessário escrever os valores 0x55 (85) e 0xAA (170) (nesta sequência) no registrador “Service COP Register (SIM_SRVCOP)”. A seguir é apresentada imagem detalhada do registrador.

Descrição do registrador Service COP Register (SIM_SRVCOP)
Figura 3 - Descrição do registrador Service COP Register (SIM_SRVCOP)

Configurando o COP Watchdog

Para ativar e configurar os parâmetros do "Computer Operating Properly", é utilizado o registrador “COP Control Register (SIM_COPC)”. Esse registrador possui os seguintes parâmetros para configurações:

  • COPT - COP Watchdog Timeout: Define o valor de temporizador;
  • COPCLKS - COP Clock Select: Seleciona a fonte de “Clock” do periférico;
  • COPW - COP Windowed Mode: Define o modo de operação do periférico.

A seguir temos uma imagem que detalha os parâmetros do registrador “COP Control Register (SIM_COPC)”.

Detalhes do registrado “COP Control Register (SIM_COPC)”
Figura 4 - Detalhes do registrado “COP Control Register (SIM_COPC)”
Descrição dos parâmetros do registrador “COP Control Register (SIM_COPC)”
Figura 5 - Descrição dos parâmetros do registrador “COP Control Register (SIM_COPC)”

O periférico COP Watchdog permite diferentes possibilidades de configurações, para atender requisitos de diversos tipos de aplicações. A figura a seguir traz todas as configurações disponíveis no microcontrolador:

Tabela com as opções de configurações do COP
Figura 6 - Tabela com as opções de configurações do COP

Biblioteca Desenvolvida

Código fonte:

Aplicação de Demonstração 

A aplicação de teste criada para utilizar a biblioteca desenvolvida é bem simples, consistindo em: algoritmo para piscar o LED vermelho, ativar o COP Watchdog e no “Loop Infinito” ficar incrementando um contador. Caso o valor da diretiva de compilação REFRESH_WHATDOG esteja com valor verdadeiro (REFRESH_WHATDOG > 0). O temporizador do Watchdog é reiniciado, assim evitando que o microcontrolador seja “Resetado”. Caso o valor da diretiva de compilação (REFRESH_WHATDOG = 0) seja falso, o microcontrolador será reiniciado periodicamente.

Nota: Para o funcionamento do Watchdog é necessário alterar o valor da macro "DISABLE_WDOG" para zero, que se encontra no arquivo "system_MKL25Z4.h", pois o registrador COP Control Register (SIM_COPC) só pode ser escrito uma única vez. Conforme é mostrado na figura a seguir:

Todos os bits neste registro podem ser gravados apenas uma vez após um reset.
Figura 7 - Todos os bits neste registro podem ser gravados apenas uma vez após um reset.

Código Fonte da Aplicação 

Conclusão 

Neste artigo apresentei mais um item da biblioteca de software para a Freedom Board KL25Z, utilizando o periférico Watchdog. O código fonte apresentado neste artigo esta disponível no Github. O Watchdog quando bem empregado, é uma ferramenta essencial para obter um sistema estável, protegendo que a aplicação fique presa em um estado indeterminado. E fica aqui o meu convite a você caro leitor, que se interessou pelo assunto, a contribuir com o projeto, testando e aperfeiçoando a biblioteca de software apresentada.

Saiba mais

Introdução aos sistemas embarcados e microcontroladores

Servindo Watchdog adequadamente

Referências

Watchdog timer for KL26

Reference Manual

Library-FRDM-KL25Z

Robolivre

Outros artigos da série

<< Biblioteca de Software de DMA para FRDM-KL25Z
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Biblioteca de Software de Watchdog Timer para FRDM-KL25Z
Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Vinicius Kawakami
25/10/2018 12:20

Olá Evandro, acompanho os seus artigos sobre a FDRM-KL25Z e são sempre muito bem explicados. Obrigado por compartilhar seus conhecimentos!
Você tem intensão de criar alguma biblioteca para comunicação USB, principalmente para modo Host_CDC? Estou com dificuldade de implementar comunicação USB entre duas FRDM!

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 

Soluções inteligentes para acionamento de MOSFETs/IGBTs com família STDRIVE

Data: 08/10 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link