17
Fábio Souza 2015 Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados Conversor Analógico/digital - ADC

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Embed Size (px)

Citation preview

Page 1: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza2015

Microcontroladores ARM Cortex M0+Aplicação em robôs autoguiados

Conversor Analógico/digital - ADC

Page 2: 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

Page 3: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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

Page 4: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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

Page 5: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Diagrama de blocos

5

Page 6: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Canais disponíveis na FRDM - KL25Z

6

Page 7: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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

Page 8: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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

Page 9: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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

Page 10: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Configurando a fonte de Trigger

Status and Control Register 2 (ADC0_SC2)

10

Page 11: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Configurando o Clock

ADC Configuration Register 1 (ADCx_CFG1)

11

Page 12: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Selecionando a Resolução

ADC Configuration Register 1 (ADCx_CFG1)

12

Page 13: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Aguardar o fim da Conversão

ADC Status and Control Registers 1 (ADC0_SC1A)

13

Page 14: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Lendo o Resultado da Conversão

ADC Data Result Register (ADC0_RA)

14

Page 15: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

Exemplo

Configurando:

Leitura:

15

Page 16: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

Fábio Souza 2015

ExercícioAlterar a resolução de leitura para: 16, 10 e 8 bits.

16

Page 17: Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor Analógico/Digital - ADC

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