Timers do DSP TMS320F2812

Olá, caro leitor! Confira neste artigo como configurar os timers do DSP TMS320F2812 para gerar interrupções periódicas, criando sinais PWM, contadores, etc.

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

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

Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H