Usando Zilog Z8 encore e Z8 encore XP! 
Autor: André Pereira da Silva | Publicado: 2015-10-13T19:52:00-07:00


Zilog - Usando o Timer e PWM do Z8 encore XP! - Parte 1


















Vamos mostrar como usar o timer e PWM da linha Z8 Encore corretamente.





&nbsp; &nbsp; &nbsp; &nbsp;Olá, meus preciosos leitores, quanto tempo não escrevo aqui e já estava com saudades de vocês.&nbsp;



&nbsp; &nbsp; &nbsp; Para quem não sabe ando criando uma plataforma de desenvolvimento chamada ZILOGUITO e ainda é conceito (2015) e espero poder ter a ajuda de todos para que divulguem e usem a plataforma a fim de &nbsp;difundir meu trabalho e ajudar a mais pessoas a terem alternativas.&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Uma das coisas mais interessantes de se usar a linha Z8 encore e Z8 encore XP! é o fato de a gente poder gravar o micro com qualquer porta serial, seja física ou seja emulada com aqueles cabos conversores de USB-Serial e até mesmo gravar e desenvolver no linux 
usando o WINE para rodar o ZDSII da Zilog. Então vamos lá.&nbsp;






Características do TIMER do Z8 encore:



4 timers de 16 bits auto recarregáveis, ou seja, funcionam em ciclo.
Podem gerar eventos de timers.
Podem gerar pulsos de PWM e de contagem.
Prescaler programável de 1 a 128.
Aceitam função captura e comparação.
Pino de entrada de sinal para timer e sinal de capitura.
Interrupção por evento do timer.&nbsp;&nbsp;






- A figura a seguir mostra como é a arquitetura interna do TIMER do Z8 encore!&nbsp;







Operação do TIMER dos microcontroladores Z8 Encore!&nbsp;




&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Como dito antes, os timers dos microcontroladores Z8 Encore! são de 16 bits. A tabela a seguir apresenta os valores de recarga, prescaler e duração que podem ser ajustados de acordo com os mínimos e máximos da contagem do Timer








  

    Tipo de estouro do timer
    Recarga do timer  
    Valor do prescaler
    Duração
  

    Baixo valor
    0001H  
    1
    1 período de clock
  

    Alto valor
    0000H  
    128
    1 fclock*128*65536
  


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NOTA : quando o timer alcança o valor FFFFH, ele vai a 0000H e continua a contar.
&nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; O timer do Z8 Encore! pode ser configurado para funcionar em diferentes modos. A equação usada para calcular os parâmetros requeridos dos diferentes modos esta descrita a seguir. Para saber mais, a documentação de especificação do produto da linha Z8 encore (PS0176, PS0197, PS0199) pode ser encontrada no site da Zilog em www.zilog.com.



Modo contínuo.



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;No modo contínuo, o período de estouro do timer é determinado pela seguinte equação:&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Período de estouro do modo contínuo = (valor de recarga x prescale)/freq. do &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sistema(em Hz).



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Nesse modo o contador resseta para 0001H depois de chegar ao valor de recarga e, então, &nbsp; &nbsp; &nbsp; &nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;continua contando.&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Uma representação típica da saída de sinal e da interrupção gerada durante o modo contínuo e funcionamento é ilustrado na figura a seguir :&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 





&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; O modo contínuo pode gerar uma forma de onda quadrada que pode ser aplicada em qualquer aplicação de tempo real. Entretanto não está limitada a somente aplicações desse tipo.&nbsp;


Modo one-shot.



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; No modo one-shot, o estouro e determinado pela seguinte equação :&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Período do estouro no modo one-shot = ((valor de recarga - valor de início) x &nbsp; &nbsp; &nbsp; &nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prescale)/freq. do sistema (em Hz).



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nesse modo o contador de recarga resseta para 0001H depois de alcançar o valor de recarga e o timer é desabilitado automaticamente.O modo one-shot pode gerar um pulso de gatilho atrasado&nbsp;


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;

Modo contador.



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; No modo contador o número de transições na entrada do timer que ocorre no início do timer é definido na seguinte equação:&nbsp;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Transições na entrada no modo contador = (Valor atual do contador - valor de início ).



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Neste modo, o contador conta um evento externo até o valor de recarga, então resseta para 0001H e depois continua contando. Uma representação típica da saída gerada durante o modo de funcionamento do contador é ilustrado a seguir :&nbsp;


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; No modo contador é contado pulsos ou eventos externos. A entrada de sinal para o timer vem desses pulsos externos.&nbsp;


Modo PWM.


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; O período PWM é definido pela seguinte equação : &nbsp;Período PWM (em s) = (valor de recarga x valor do prescale)/freq. sistema em Hz.

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Se TPOL ( um bit de controle que seleciona a polaridade da porta I/O do registro de controle do timer ) é setado em zero, o ciclo da saída de tempo alto PWM para o período total é calculado como se segue :&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ciclo PWM (em %) = valor de recarga - valor PWM x 100/valor de recarga&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nota: O valor PWM tem de ser menor que o valor de recarga.&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Se TPOL é setado em 1, o ciclo ativo PWM é calculado da seguinte forma :&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ciclo PWM (em %) = valor PWM x 100 / valor de recarga .

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A figura a seguir ilustra bem esse fato :&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; 



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; O modo PWM é largamente usado em aplicações de sistema de controle. Por exemplo, em sistema de controle de servomotores, mudando o ciclo ativo do PWM, podemos mudar a &nbsp; &nbsp;&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; velocidade do motor.


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;

Modo captura.&nbsp;


&nbsp; &nbsp;&nbsp;No modo de captura, o tempo decorrido do timer que inicia os eventos de captura pode ser &nbsp;calculado pela seguinte equação:&nbsp;



&nbsp; &nbsp;&nbsp;Tempo decorrido de captura(s) = ((valor de captura - valor inicial) x prescale)/freq. sistema (Hz)&nbsp;



&nbsp; &nbsp;O modo de captura pode ser usado para calcular o intervalo de tempo entre dois eventos sucessivos, o que pode ser usado para desenvolver um medidor de intervalo de tempo.&nbsp;


Modo comparador.


No modo comparador, a entrada é constantemente comparada com um evento específico dinâmico de modo a que gera uma interrupção sempre que um valor é alcançado. Então o timer zera a contagem depois de auto re-setar. O modo comparador pode ser definido pela seguinte equação:&nbsp;

Tempo do modo de comparador =((valor do comparador - valor inicial) x &nbsp;prescale)/freq. sistema(Hz)

A figura a seguir mostra a saída e a interrupção gerada no modo comparador :&nbsp;



Modo Gated.


No modo gatilho, o timer só conta se um sinal na entrada estiver em modo ativo ou nível alto.Quando o timer alcança o valor de recarga, ele re-seta para 0001H e então zera a contagem. E se a função alternativa de saída do timer estiver ativa, o pino de saída do timer muda de estado (alto ou baixo) no re-set do timer.

A entrada de sinal para o timer nesse modo é o sinal de pulso onda quadrada. Este modo pode ser usado para medir o desliga/liga do timer que em retorno, pode medir a frequência do pulso de entrada. &nbsp;

Modo captura/compara.


No modo captura/compara, o início do tempo decorrido do timer para os eventos de captura do timer, pode ser calculado pela seguinte equação:&nbsp;

Tempo no modo captura/compara = ((valor de captura - valor inicial) x prescaler)/ freq. do sistema(Hz).



Bem! Com essas informações já dá para saber quais opções de uso do timer da linha Z8 encore e Z8 encore XP! podem satisfazer seus projetos. No próximo post, falaremos dos registradores usados nessas configurações de modo a ficar bem claro como acionar cada opção, até lá !&nbsp;