Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIMER/PWM Module

265 views

Published on

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.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIMER/PWM Module

  1. 1. Fábio Souza 2015 Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados TPM - TIMER/PWM Module
  2. 2. 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
  3. 3. Fábio Souza 2015 Introdução aos Timers Os 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
  4. 4. Fábio Souza 2015 TPM - Timer/PWM Module Caracterí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
  5. 5. Fábio Souza 2015 TPM - Timer/PWM Module Fontes de Clock 5
  6. 6. Fábio Souza 2015 TPM - Timer/PWM Module Digrama de blocos 6
  7. 7. 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
  8. 8. Fábio Souza 2015 Habilitando o clock para o TPM System Clock Gating Control Register 6 (SIM_SCGC6) 8
  9. 9. Fábio Souza 2015 Selecionando a fonte de clock System Options Register 2 (SIM_SOPT2) 9
  10. 10. Fábio Souza 2015 Desabilitando o clock Status and Control (TPMx_SC) 10
  11. 11. Fábio Souza 2015 Carregado o valor de MOD Modulo (TPMx_MOD) 11
  12. 12. Fábio Souza 2015 Limpar Flag TOF Status and Control (TPMx_SC) 12
  13. 13. Fábio Souza 2015 Habilitar Timer Status and Control (TPMx_SC) 13
  14. 14. Fábio Souza 2015 Exemplo - TIMER_TPM 14
  15. 15. Fábio Souza 2015 Exercício Fazer o LED piscar com a frequência de 5 Hz. 15
  16. 16. Fábio Souza 2015 TPM como PWM O 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
  17. 17. Fábio Souza 2015 Ativando o Clock para o PORT Antes 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
  18. 18. Fábio Souza 2015 Configurando o pino para saida PWM Os 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
  19. 19. Fábio Souza 2015 Habilitando o clock para o TPM 19 System Clock Gating Control Register 6 (SIM_SCGC6)
  20. 20. Fábio Souza 2015 Fonte de Clock 20 System Options Register 2 (SIM_SOPT2)
  21. 21. Fábio Souza 2015 Desabilitar o TPM 21 Status and Control (TPMx_SC)
  22. 22. Fábio Souza 2015 Configura modo do PWM Status and Control (TPMx_SC) 22
  23. 23. Fábio Souza 2015 Configura modo do PWM Channel (n) Status and Control (TPMx_CnSC) 23
  24. 24. Fábio Souza 2015 Definir a frequência do PWM Modulo (TPMx_MOD) 24
  25. 25. Fábio Souza 2015 Duty Cycle Channel (n) Value (TPMx_CnV) 25
  26. 26. Fábio Souza 2015 Exemplo - PWM_TPM 26
  27. 27. Fábio Souza 2015 Exercício Gerar um sinal PWM de 1KHz e atualizar o valor do duty cycle com um potenciômetro de 0 a 100%. 27
  28. 28. Fábio Souza 2015 Exemplo - PWM_LIB Verificar o uso de funções para configuração do PWM. Refazer exercício anterior usando a biblioteca. 28

×