Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIMER/PWM Module
-
Upload
fabio-souza -
Category
Engineering
-
view
69 -
download
1
Transcript of Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIMER/PWM Module
Fábio Souza2015
Microcontroladores ARM Cortex M0+Aplicação em robôs autoguiados
TPM - TIMER/PWM Module
Fábio Souza 2015
Objetivos
● Entender a estrutura interna do TPM;● Entender os modos de funcionamento;● Aprender a configura os registradores;● Utilizar o TPM como temporizador.● Utilizar o TPM para gerar sinal PWM.
2
Fábio Souza 2015
Introdução aos TimersOs Timers são periféricos utilizados para contagem, temporização, medida de largura de pulso e geração de sinais PWM.
Funcionando em paralelo com a CPU os timers incrementam seus contadores automaticamentes, através de um clock externo ou o próprio clock do sistema. Dependendo da sua configuração, e modo de funcionamento, ao final de sua contagem é sinalizado através de flags para tratamento por parte da CPU.
O KL25 possui 3 módulos de timers chamados de TPM.
3
Fábio Souza 2015
TPM - Timer/PWM ModuleCaracterísticas:● Clock selecionável;● Timer/contador de 16 bits;● Possui 6 canais que podem ser configurados como capture, output compare, ou
PWM.● Suporte para entrada de trigger para reset ou start;● Trigger para o hardware ao fim da contagem.
4
Fábio Souza 2015
Usando o TPM para gerar delay
Esses são os passos necessários para configurar o TPMx_CNT para gerar delays:● habilitar o clock para o TPM através do registrador SIM_SCGC6;● Selecionar a fonte de clock para o timer através do registrador
SIM_SOPT2;● Desabilitar o timer para fazer as configurações;● Carreagar o registrador TPMx_MOD com o valor desejado;● limpar o flag TOF;● Configurar preescaler;● Habilitar como contador crescente no resgistrador TMPx_SC;● Aguardar o flag TOF ir para HIGH;
7
Fábio Souza 2015
TPM como PWMO modulo TPM também pode ser utilizado para gerar sinais PWM - Pulse Width Modulation. Para geração de um sinal PWM usando o TPM deve-se seguir os seguintes passos:
● Habilitar o clock para o pino;● Configurar o GPIO para saida de sinal PWM;● Habilitar o clock para o TMP correspondente;● Selecionar a fonte de clock para o TPM;● Desabilitar TPM para a configuração;● Selecionar o modo de funcionamento do PWM através do registrador
TPMx_CnSC;● Configurar a frequência do sinal através do valor carregado em TPMx_MOD;● Carregar o valor do duty cycle no registrador TPMx_CnV;● habilitar clocck e configura PWM● Atualizar o duty cycle alterando o valor no TPMx_CnV
16
Fábio Souza 2015
Ativando o Clock para o PORTAntes de utilizar o pino deve-se ativar o clock para cada conjunto de porta. Isso é feito através do registrador:
SIM_SCGC5 (System Clock Gating Control)
17
Fábio Souza 2015
Configurando o pino para saida PWMOs pinos geralmente possuem diversas funções que são multiplexadas ao mesmo. Dessa forma é necessário configurar qual função vai ser utilizada. Para isso utiliza-se o registrador : Pin Control Register n (PORTx_PCRn).Para uso do pino como GPIO deve-se confirgurar o MUX. Conforme tabela na pagiana 161, do KL25 Sub-Family Reference Manual.
18
Fábio Souza 2015
Habilitando o clock para o TPM
19
System Clock Gating Control Register 6 (SIM_SCGC6)
Fábio Souza 2015
ExercícioGerar um sinal PWM de 1KHz e atualizar o valor do duty cycle com um potenciômetro de 0 a 100%.
27