ADC é um dispositivo eletrônico que converte os sinais analógicos em números digitais proporcionais à magnitude da tensão. Os chips ADC como ADC0804, ADC0809 etc., fornecem saída digital de 8 bits. O dispositivo controlador precisa de oito pinos para receber os dados de 8 bits (para obter mais detalhes sobre o ADC, consulte Usando o ADC embutido do AVR). Algumas aplicações precisam de ADCs de resolução mais alta (saída de dados digitais de 10 bits ou mais) para precisão dos dados.
O uso de ADCs paralelos é uma opção para tais aplicações. No entanto, o uso de ADC paralelo aumentará o tamanho do hardware, pois um ADC paralelo de 10 bits terá 10 linhas de saída. Além disso, talvez você precise usar um controlador com maior número de pinos. A outra opção é usar ADC serial, que necessita de menor número de pinos. Como os dados são transmitidos serialmente, a taxa de transferência de dados do ADC serial é baixa em comparação com o ADC paralelo. Eles podem servir como uma alternativa muito boa em aplicações onde a velocidade de transferência de dados não é um ponto crítico. Este artigo explora a interface do serial ADC0831 com ATmega16.
O ADC0831 é um ADC serial de canal único de 8 pinos que fornece saída de dados de 8 bits. A entrada pode ser do tipo de terminação única ou diferencial. Usando a opção de entrada diferencial, a conversão A/D pode ser realizada para dois níveis de tensão diferentes. A função de cada pino é descrita no seguinte tabela:
Fig. 2: Nome do pino e funções do serialADC0831
1. (Seleção de chip) – Para iniciar a conversão, é fornecido um valor de alto para baixo.
2. Vem (+) (Entrada Analógica Positiva) – Tensão positiva é aplicada neste pino. O intervalo de entrada para isso é de 0 a 5votls.
3. Vem (-) (Entrada analógica negativa) – Tensão negativa é aplicada neste pino.
4. GND (Terra) – Este pino está conectado ao terra do circuito.
5. Vreferência (Voltagem de referência) – Este pino é usado para definir a faixa de tensão de entrada do ADC.
6. CLK (relógio) – O pulso do clock é fornecido no pino CLK para sincronização.
7. DO (saída de dados) – Este pino é um pino de saída do ADC, os dados de saída serial estão disponíveis neste pino.
8. Vcc (fonte de alimentação) – Isso está conectado à fonte de alimentação de +5 volts.
Como funciona o ADC serial:
Fig. 3: Diagrama de blocos do ADC serial trabalhando com AVR
O diagrama acima mostra um sistema no qual o dispositivo ADC recebe dados analógicos do transdutor. O controlador é usado para controlar o ADC IC e processar os dados digitais convertidos. O sinal analógico é dado no pino Vem(+). No modo diferencial, tensão no pino Vem(+) deve ser maior que Vem(-) caso contrário, os dados de saída não serão gerados pelo ADC. A conversão de dados é iniciada dando um pulso alto para baixo no pino CS. No primeiro ciclo de clock, o ADC envia o bit '0' ao controlador que mostra que os bits seguintes são os bits de dados. O MSB dos dados convertidos é enviado primeiro. O diagrama de temporização do ADC0831 é mostrado abaixo.
Fig. 4: Diagrama de temporização do ADC0831 para comunicação serial no AVR
Objetivo: Converter a tensão de saída analógica do resistor variável em sinais digitais usando ADC0831 e exibi-la no LCD.
Descrição do circuito:
A conexão do ADC0831 com ATmega16 é mostrada no diagrama de circuito. A saída do resistor variável está conectada a Vem(+) e Vem(-) o pino está aterrado. Os pinos CS, CLK e DO do ADC estão conectados ao microcontrolador.
Etapas de programação:
1. Envie um pulso alto para baixo ao pino CS para inicializar a conversão.
2. Monitore o status do bit D0 até que ele fique baixo.
3. Envie um pulso de clock.
4. Receba os bits de dados do pino DO do ADC 0831.
5. Armazene os bits de dados em uma variável usando operação bit a bit.
Código-fonte do projeto
###
// Programa para interface serial ADC 0831 com microcontrolador AVR (ATMEGA 16)
###
Diagramas de circuito
Diagrama de circuito de como fazer interface serial-ADC0831 com microcontrolador AVR-ATmega16 |
Componentes do Projeto
- ATmega16
- LCD