Fábio Souza2015
Microcontroladores ARM Cortex M0+Aplicação em robôs autoguiados
Conversor Analógico/digital - ADC
Fábio Souza 2015
Objetivo● Entender o funcionamento do ADC do KL25Z;● Aprender a configurar os registradores;● Ler o valores de conversão.
2
Fábio Souza 2015
IntroduçãoO conversor A/D é utilizado para leitura de grandezas analógicas, tais como: temperatura, pressão, umidade, etc.
A maioria dos microcontroladores possuem internamente um conversor A/D. Este conversor, quando habilitado, faz a leitura da sinal analógico e o converte para um valor digital, possibilitando a manipulação de um sinal do mundo real no mundo digital do microcontrolador.
A resolução do conversor A/D é dada por:
3
Fábio Souza 2015
Caracteristicas do ADC do KL25● ADC de aproximação sucessivas com 16 bits de resolução● 4 pares de entras diferencial e 24 canais ● Modos de operação:
○ Diferencial com 16-bit, 13-bit, 11-bit, e 9-bit de resolução;○ Entrada simples com 16-bit, 12-bit, 10-bit, ou 8-bit de resolução
● Conversão simples ou contínua;● Tempo de amostragem e velocidade de conversão configuráveis;● Media por hardware;● Entrada de clock configurável;● Sensor de temperatura● Tensão de Referência selecionável;● Modo de auto calibração.● etc.
4
Fábio Souza 2015
Diagrama de blocos
5
Fábio Souza 2015
Canais disponíveis na FRDM - KL25Z
6
Fábio Souza 2015
RegistradoresADC Status and Control Registers 1 (ADC0_SC1A)ADC Status and Control Registers 1 (ADC0_SC1B)ADC Configuration Register 1 (ADC0_CFG1)ADC Configuration Register 2 (ADC0_CFG2)ADC Data Result Register (ADC0_RA)ADC Data Result Register (ADC0_RB)….Para verificar todos os registradores, acesse a página 461 do KL25 Sub-Family Reference Manual.
7
Fábio Souza 2015
Sequência para configuração e Leitura1. Configurar o pino para entrada analógica
2. Habilitar o Clock do módulo ADC0 através do registrador SIM_SCGC6;
3. Configurar a fonte de trigger através do registrador ADC0_SC2;
4. Selecionar a resolução e clock através do registrador ADC0_CFG1;
5. Selecionar canal para conversão no registrador ADC0_SC1A;
6. Aguardar o fim da conversão através do bit COCO, do ADC0_SC1A;
7. Quando COCO for para nivel “ALTO”, ler o valor da conversão no ADC0_RA;
8. para uma nova conversão repetir passos de 5 a 7;
8
Fábio Souza 2015
Habilitando o ClockAntes de utilizar o conversor AD é necessário habilitar o clock. O Clock é habilitado no registrador:System Clock Gating Control Register 6 (SIM_SCGC6)
9
Fábio Souza 2015
Configurando a fonte de Trigger
Status and Control Register 2 (ADC0_SC2)
10
Fábio Souza 2015
Configurando o Clock
ADC Configuration Register 1 (ADCx_CFG1)
11
Fábio Souza 2015
Selecionando a Resolução
ADC Configuration Register 1 (ADCx_CFG1)
12
Fábio Souza 2015
Aguardar o fim da Conversão
ADC Status and Control Registers 1 (ADC0_SC1A)
13
Fábio Souza 2015
Lendo o Resultado da Conversão
ADC Data Result Register (ADC0_RA)
14
Fábio Souza 2015
Exemplo
Configurando:
Leitura:
15
Fábio Souza 2015
ExercícioAlterar a resolução de leitura para: 16, 10 e 8 bits.
16
Fábio Souza 2015
ReferênciasComplete pin out description on FRDM-KL25Z User's Manual :http://www.freescale.com/files/32bit/doc/user_guide/FRDMKL25ZUM.zip
Kinetis L Peripheral Module Quick Reference:http://www.freescale.com/files/32bit/doc/quick_ref_guide/KLQRUG.pdf
17
Top Related