Como implementar um gerador de tons DTMF (Dual-Tone Multiple Frequencies) usando qualquer microcontrolador da série AVR como o AT90S4414 da Atmel (www.atmel.com) que tenha PWM e SRAM. Como fazer isso está descrito num Application Note que pode ser obtido de forma completa no site da empresa.

Dentre as aplicações em que sinais DTMF são usados temos os telefones, servindo para transportar os sinais de discagem.

Nesse sinal são geradas duas freqüências simultâneas para gerar um sinal válido DTMF conforme mostra a tabela 1.


Tabela 1
Tabela 1

 

Por exemplo, quando a tecla 8 é pressionada são gerados sinais de 852 Hz e 1336 Hz, sendo eles transmitidos à estação remota para identificar esse numero como discado.

Para gerar os sinais superpostos que formam o DTMF são utilizadas as seguintes equações:


 

Onde a relação entre as amplitudes dos sinais deve ser:


 

O projeto proposto pela Atmel tem os seguintes destaques:

* Gera sinais senoidais usando PWM

* Combina diversas ondas senoidais no sinal DTMF

* Usa linguagem C de alto nível

* Usa código de 260 bytes de tamanho mais 128 bytes de tabela de constantes

* Usa tabelas lookup

 

Na figura 1 temos o circuito completo do gerador DTMF. Observe que nesse circuito o sinal excita diretamente um transdutor e que o teclado é matricial de 4 x 4. Nesse teclado estão incluídos os símbolos adicionais encontrados nos teclados telefônicos. .

O cristal usado é de 8 MHz para que, com a divisão utilizada na programação sejam gerados os sinais na tabela proposta. Detalhes sobre a programação podem ser obtidos no próprio application note da Atmel.

 

Figura 1
Figura 1

 

Para gerar sinais senoidais para os tons usando a função PWM, o que se faz é modular a largura dos pulsos segundo um padrão senoidal de modo que a média das tensões integradas na saída se altere justamente de acordo com essa função.

Assim, partindo de pulsos de largura pequena, essa largura vai aumentando até atingir o máximo para depois diminuir, até o final de um ciclo completo. Isso é mostrado na figura 2.

 

Figura 2
Figura 2

 

A freqüência pode ser dobrada se usarmos o esquema mostrado na figura 3, o qual é detalhado o Application Note.

 

Figura 3
Figura 3

 

No projeto final o gerador de tom é obtido a partir das saídas PWM de 8 bits (OC1A) e uma tabela que toma 128 amostragens cada uma com 7 bits.

O projeto foi desenvolvido com a ferramenta de desenvolvimento ADR STK500 que pode ser acessada no site www.ninenine.com.tw . Essa ferramenta conta com o editor, debugger e programador. A configuração para o projeto é mostrada na figura 4.

 

Figura 4
Figura 4

 

Essa ferramenta conta com um soquete ZIF para TQFP de 64 pinos, além de conector JTAG. O oscilador de 32 kHz está on-board e além disso existe uma porta RS-232 adicional.