Timers do DSP TMS320F2812

Nos artigos anteriores foram apresentados os principais módulos do DSP, registradores e os módulos GPIO. Neste artigo serão apresentados o timers do DSP e as configurações necessárias para gerar interrupções periódicas. É importante lembrar que o DSP possui timers de propósito geral nos módulos EVA e EVB que podem ser utilizados para gerar sinais PWM, contador de pulsos, entre outras aplicações.

 

 

Operação dos Timers do DSP TMS320F2812

 

O DSP possui três timers de 32 bits. Os timers 1 e 2 são geralmente utilizados pela Texas para aplicações de tempo real. Já o timer 0 pode ser utilizado para propósitos gerais. Na Figura 1 é mostrado o diagrama de registradores e sinais utilizados nesses módulos.

 

CPU Timers do DSP TMS320F2812.
Figura 1: CPU Timers do DSP TMS320F2812.

 

É importante destacar que os timers são habilitados após o reset. Esses módulos têm como clock o sinal SYSCLKOUT, isto é, o clock da CPU. A cada pulso de clock o registrador contador é decrementado. Além dos contadores de 32 bits, é possível, via configuração, dividir o clock de entrada, alterando o comportamento do módulo em função dos pulsos de clock. Outra função é o carregamento automático do registrador contador após um estouro.

 

 

Interrupções

 

Os três timers podem gerar sinais de interrupção. O timer 0 tem o sinal de interrupção conectado ao bloco PIE, enquanto os outros 2 são conectados aos canais INT13 e INT14. Isso é ilustrado na Figura 2.

 

CPU Timers e seus respectivos sinais de interrupção.
Figura 2: CPU Timers e seus respectivos sinais de interrupção.

 

Para o timer 0 é necessário especificar a fonte de interrupção selecionada para o sinal INT1. Isso é realizado no registrador PIEIER1. Como mostrado na Figura 3, o Timer 0 corresponde à fonte de interrupção 7 (bit 6) de INT1.

 

Tabela de interrupções do PIE.
Figura 3: Tabela de interrupções do PIE.

 

 

Registradores de controle

 

A operação do timer é controlada pelo registrador TIMERxTCR (Figura 4). Para desativar o timer é necessário alterar o bit TSS, definindo seu valor igual a 1. O bit TRB é responsável por ativar o recarregamento automático do registrador TIMERxTPR e TIMERxPRD. Além disso, o bit TIE habilita a geração de sinal de interrupção quando o contador é decrementado até zero. A flag que indica a ocorrência desse evento é denominada TIF. Os bits FREE e SOFT determinam o comportamento do timer quando o mesmo está em depuração.

 

Registrador de controle TCR
Figura 4: Registrador de controle TCR

 

O registrador TIMERxTPR é dividido em duas partes: PSC (bits 15~8, CPU-Timer Prescale Counter) e TDDR (bits 7~0, CPU-Timer Divide-Down). O TDDR contém a quantidade de pulsos de clock necessários para que o contador seja decrementado. Assim, o PSC é decrementado a cada pulso de SYSCLKOUT, quando é igual a zero, um pulso é gerado para decrementar o contador de 32 bits (TIMERxTIM/TIMH). Os registradores de controle de todos os timers são mostrados na Figura 5.

 

Registradores de controle.
Figura 5: Registradores de controle.

 

 

Exemplo de aplicação

 

O exemplo a seguir configura o timer 0 para gerar interrupções a cada 1 ms. Para isso, os registradores TIMER0PRD/PRDH foram configurados com a quantidade de pulsos necessários para atender o período especificado. Assim, considerando clock de 150MHz e o timer0 sem divisor de clock, são necessários 150MHz/1000Hz pulsos para contabilizar 1 ms. Quando o contador chega a zero, uma interrupção é gerada. Para tal, o vetor de interrupção do timer zero (localizado no endereço 0xD4C) foi configurado com o endereço da rotina de interrupção INT1_ISR. Além dessas configurações, o canal INT1 foi configurado para selecionar a fonte de interrupção INT1.7. Isso foi configurado no registrador PIEIER1.

 

Obs: Programa criado no CCSv7 (CCS Project - Empty ), usando o compilador TI v17.3.0.STS.

 

 

 

Referências

 

TMS320F2812 - 32-bit Digital Signal Controller with Flash

Outros artigos da série

<< Entradas e Saídas Digitais do DSP TMS320F2812
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Fernando Deluno Garcia
Fascinado por computação, especialmente na interface entre hardware e software, me engajei na área de sistemas embarcados. Atuo com desenvolvimento de sistemas embarcados e sou docente da Faculdade de Engenharia de Sorocaba.Para mais informações: https://about.me/fdelunogarcia

Deixe um comentário

avatar
 
  Notificações  
Notificar