Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

36
Configuração de Configuração de Periféricos Periféricos Microcontrolador Microcontrolador MC68HC908QT/QY MC68HC908QT/QY

Transcript of Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Page 1: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Configuração de Configuração de PeriféricosPeriféricos

Microcontrolador Microcontrolador MC68HC908QT/QYMC68HC908QT/QY

Page 2: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico de Periférico de TemporizaçãoTemporização

Existem três funções principais para o Existem três funções principais para o módulo temporizador de um módulo temporizador de um microcontrolador:microcontrolador:

Estouro de TempoEstouro de Tempo PWMPWM Modo Captura de EntradaModo Captura de Entrada

Page 3: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Esta função do periférico de temporização Esta função do periférico de temporização possibilita criar tempos determinados para possibilita criar tempos determinados para um certa tarefa ser realizada.um certa tarefa ser realizada.

Ex: Contagem de tempo de um relógio, Ex: Contagem de tempo de um relógio, atualização de display, varredura de portas, etcatualização de display, varredura de portas, etc

A configuração dessa função é realizada A configuração dessa função é realizada através dos registradores TSC, TMODH e através dos registradores TSC, TMODH e TMODL.TMODL.

Page 4: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

TSC (Timer Status and Control Register)TSC (Timer Status and Control Register)

Page 5: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Divisor de ClockDivisor de Clock

Page 6: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo TRST – Timer Reset BitTRST – Timer Reset Bit

0 = Sem Efeito0 = Sem Efeito 1 = Reseta o contador e limpa o divisor de clock1 = Reseta o contador e limpa o divisor de clock

TSTOP – Timer Stop BitTSTOP – Timer Stop Bit 1= Contador parado1= Contador parado 0 = contador ativo0 = contador ativo

TOIE – Hab. Interrupção de Estouro de TOIE – Hab. Interrupção de Estouro de TimerTimer 1 = Interrupção habilitada1 = Interrupção habilitada 0 = Interrupção desligada0 = Interrupção desligada

Page 7: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

TOF – Flag de Estouro de TimerTOF – Flag de Estouro de Timer 1 = Estouro de timer1 = Estouro de timer 0 = Contagem em progresso0 = Contagem em progresso

Registradores de Contagem

Page 8: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Registradores de Módulo de Contagem

Page 9: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

A freqüência de barramento do A freqüência de barramento do microcontrolador é equivalente a microcontrolador é equivalente a freqüência do clock externo dividido por 4.freqüência do clock externo dividido por 4.

Ex: Para um cristal de 20Mhz, a freqüência de Ex: Para um cristal de 20Mhz, a freqüência de trabalho é de 5Mhz. Desta forma o período de trabalho é de 5Mhz. Desta forma o período de ciclo de instrução é de 1 / 5Mhz = 200ns.ciclo de instrução é de 1 / 5Mhz = 200ns.

Page 10: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo Devido ao processador do microcontrolador ser de Devido ao processador do microcontrolador ser de

tecnologia CISC (Complex Instruction Set tecnologia CISC (Complex Instruction Set Computer), as instruções normalmente levam mais Computer), as instruções normalmente levam mais de um ciclo de clock para serem executadas.de um ciclo de clock para serem executadas.

Page 11: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Configuração da Interrupção por Tempo:Configuração da Interrupção por Tempo:

Ex: Com um cristal de 12.8Mhz deseja-se gerar Ex: Com um cristal de 12.8Mhz deseja-se gerar uma interrupção de tempo a cada 10ms.uma interrupção de tempo a cada 10ms.

Primeiro dividimos o clock por 4, ou seja, o clock Primeiro dividimos o clock por 4, ou seja, o clock de barramento é de 3.2Mhzde barramento é de 3.2Mhz

Sem dividirmos o clock, o período de ciclo de Sem dividirmos o clock, o período de ciclo de máquina será máquina será 1/3.2Mhz = 312.5ns 1/3.2Mhz = 312.5ns

Page 12: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Configuração da Interrupção por Tempo:Configuração da Interrupção por Tempo:

Quantas vezes de 312.5ns precisamos contar Quantas vezes de 312.5ns precisamos contar para obter 10ms?para obter 10ms?

Contagem = 10ms/312.5ns = 32000Contagem = 10ms/312.5ns = 32000

32000 em hexadecimal será 32000 em hexadecimal será 7D 00 7D 00

Page 13: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Configuração da Interrupção por Tempo:Configuração da Interrupção por Tempo:

Desta forma chegamos a seguinte configuração:Desta forma chegamos a seguinte configuração: TSC = 40hTSC = 40h TMODH = 7DhTMODH = 7Dh TMODL = 00hTMODL = 00h

Ou seja:Ou seja: MOVMOV #$7D,TMODH#$7D,TMODH (Obs: Sempre deve-se (Obs: Sempre deve-se MOVMOV #$00,TMODL#$00,TMODL configurar o reg. configurar o reg.

TMODHTMODH MOVMOV #$40,TSC#$40,TSC antes de TMODL)antes de TMODL)

Page 14: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Estouro de TempoEstouro de Tempo

Configuração da Interrupção por Tempo:Configuração da Interrupção por Tempo:

Exercícios (casos críticos):Exercícios (casos críticos): Encontre as configurações de tempo Encontre as configurações de tempo

(TSC,TMODH e TMODL) para as seguintes (TSC,TMODH e TMODL) para as seguintes configurações:configurações:

A) Cristal = 12.8Mhz, int. de tempo de 5 segundosA) Cristal = 12.8Mhz, int. de tempo de 5 segundos B) Cristal =12.8Mhz, int. de tempo de 2 us.B) Cristal =12.8Mhz, int. de tempo de 2 us.

Page 15: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWM (Modulação porPWM (Modulação porlargura de Pulso)largura de Pulso)

Permite gerar PWMs em dois modos, com Permite gerar PWMs em dois modos, com buffer e sem buffer.buffer e sem buffer.

Page 16: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Modo com Buffer – Utiliza os 2 canais de Modo com Buffer – Utiliza os 2 canais de timer para realizar 1 PWM.timer para realizar 1 PWM.

Modo sem Buffer – Permite a geração de 1 Modo sem Buffer – Permite a geração de 1 PWM por canal de timer.PWM por canal de timer.

Page 17: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Microcontrolador utilizado:Microcontrolador utilizado:

Canais de Tempo

Page 18: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Registradores de configuração do PWM:Registradores de configuração do PWM:

Page 19: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Page 20: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM CHxF – Bit da flag do canalCHxF – Bit da flag do canal

Torna-se 1 durante os eventos do canalTorna-se 1 durante os eventos do canal

CHxIE – Habilita interrupção do canal CHxIE – Habilita interrupção do canal quando setado, ou seja, quando igual a 1.quando setado, ou seja, quando igual a 1.

TOVx – Toogle on Overflow.TOVx – Toogle on Overflow. Inverte o nível do pino do canal quando ocorrer Inverte o nível do pino do canal quando ocorrer

uma interrupção de tempo.uma interrupção de tempo.

CHxMax – Aciona o Duty Cycle máximo do CHxMax – Aciona o Duty Cycle máximo do canal enquanto estiver setado.canal enquanto estiver setado.

Page 21: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Page 22: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Como inicializar o PWM:Como inicializar o PWM:1.1. No registrador TSC:No registrador TSC:

1.1. Parar a contagem através do bit TSTOP;Parar a contagem através do bit TSTOP;

2.2. Resetar a contagem e o divisor de clock através do Resetar a contagem e o divisor de clock através do bit TRST;bit TRST;

2.2. Escrever o valor do período do PWM nos Escrever o valor do período do PWM nos registradores TMODH e TMODL;registradores TMODH e TMODL;

3.3. Escreva nos registradores TCHxH e TCHxL o Escreva nos registradores TCHxH e TCHxL o valor da largura de pulso;valor da largura de pulso;

Page 23: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

1.1. No registrador de Canal (TSCx) configure No registrador de Canal (TSCx) configure os bits específicos para a seleção do modo os bits específicos para a seleção do modo de operação do PWM.de operação do PWM.

2.2. No registrador TSC limpe o bit TSTOP para No registrador TSC limpe o bit TSTOP para iniciar a contagem.iniciar a contagem.

1.1. MOVMOV #$XX,TMODH#$XX,TMODH

2.2. MOVMOV #$XX,TMODL#$XX,TMODL

3.3. MOVMOV #$XX,TCHxH#$XX,TCHxH

4.4. MOVMOV #$XX,TCHxL#$XX,TCHxL

5.5. MOVMOV #$XX,TSCx#$XX,TSCx

6.6. MOVMOV #$XX,TSC#$XX,TSC

Page 24: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Como alterar a largura de pulso em um Como alterar a largura de pulso em um PWM sem Buffer:PWM sem Buffer:

1.1. Quando mudando a largura de pulso para um Quando mudando a largura de pulso para um valor menor, escreva o novo valor dentro da valor menor, escreva o novo valor dentro da interrupção de comparação de saída;interrupção de comparação de saída;

2.2. Quando mudando a largura de pulso para um Quando mudando a largura de pulso para um valor maior, escreva o novo valor dentro da valor maior, escreva o novo valor dentro da interrupção de estouro de tempo.interrupção de estouro de tempo.

Page 25: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

PWMPWM

Como alterar a largura de pulso em um Como alterar a largura de pulso em um PWM com Buffer:PWM com Buffer:

Quando selecionado o modo com buffer, os dois Quando selecionado o modo com buffer, os dois canais são interligados, estando o PWM ativo canais são interligados, estando o PWM ativo inicialmente no canal zero.inicialmente no canal zero.

Para alterar a largura de pulso, o usuário deve Para alterar a largura de pulso, o usuário deve escrever o novo valor nos registradores do canal escrever o novo valor nos registradores do canal inativo, por exemplo, na primeira alteração, os inativo, por exemplo, na primeira alteração, os novos valores serão escritos em TCH1H e novos valores serão escritos em TCH1H e TCH1L.TCH1L.

Page 26: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Captura de EntradaCaptura de Entrada

Neste modo, quando ocorre uma borda de Neste modo, quando ocorre uma borda de descida, borda de subida ou ambas descida, borda de subida ou ambas (dependendo da configuração), o (dependendo da configuração), o microcontrolador copia o conteúdo do microcontrolador copia o conteúdo do registrador de contagem TCNTH:TCNTL para registrador de contagem TCNTH:TCNTL para os registradores do canal, TCHxH:TCHxL.os registradores do canal, TCHxH:TCHxL.

Exemplo de aplicação: Decodificação de Exemplo de aplicação: Decodificação de tempos em controles RF, determinação de tempos em controles RF, determinação de velocidade através de sensores na roda, etc.velocidade através de sensores na roda, etc.

Page 27: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

O microcontrolador utilizado possui 4 canais de O microcontrolador utilizado possui 4 canais de A/D, como pode ser verificado em sua configuração A/D, como pode ser verificado em sua configuração de pinos:de pinos:

Page 28: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

Tempo de conversão:Tempo de conversão:

Ou seja, com um clock de A/D de 1 Mhz, cada conversão irá demorar o tempo de 16 ciclos de 1us, totalizando 16us para uma conversão.

Neste caso, a máxima taxa de amostragem é de 62,5 Khz.

Page 29: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

Divisão do clockDivisão do clock

Page 30: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

ConfiguraçãoConfiguração

Page 31: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

ConfiguraçãoConfiguração

Page 32: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

ConfiguraçãoConfiguração

AIENAIEN Bit de habilitação da interrupção do conversor Bit de habilitação da interrupção do conversor

Analógico Digital.Analógico Digital.

COCO – Conversion CompleteCOCO – Conversion Complete Torna-se 1 quando uma conversão se completa.Torna-se 1 quando uma conversão se completa.

ADCO – Habilita Conversão continuaADCO – Habilita Conversão continua

Page 33: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Periférico ConversorPeriférico ConversorAnalógico / DigitalAnalógico / Digital

Aonde podemos verificar o valor convertido?Aonde podemos verificar o valor convertido?

Page 34: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Interrupção ExternaInterrupção Externa

• IRQF1 – Torna-se 1 quando uma interrupção estiver pendente

• ACK1 – Escrever 1 para este registrador limpa o flag de interrupção

• IMASK1 – Escrever 1 para esse bit desliga a interrupção externa

• MODE1

• 1 = interrupção tanto para borda de descida, quanto para nível lógico baixo.

• 0 = Interrupção somente em borda de descida

Page 35: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Interrupção de TecladoInterrupção de Teclado

• IRQF1 – Torna-se 1 quando uma interrupção estiver pendente

• ACK1 – Escrever 1 para este registrador limpa o flag de interrupção

• IMASK1 – Escrever 1 para esse bit desliga a interrupção de teclado

• MODE1

• 1 = interrupção tanto para borda de descida, quanto para nível lógico baixo.

• 0 = Interrupção somente em borda de descida

Page 36: Configuração de Periféricos Microcontrolador MC68HC908QT/QY.

Interrupção de TecladoInterrupção de Teclado

• KBIE5-KBIE0 – Habilita a interrupção de teclado para os pinos PTA5-PTA0.

• AWUIE – Não é utilizado para teclado