TIM Timer Interface Module

Pubblicità

Sharing is caring!

Pubblicità

 

Il TIM è un timer a due canali che fa da riferimento per le funzioni di input capture, output compare e PWM.

 

Caratteristiche

 

  • Due canali di input capture/output compare;
  • Generatore di PWM;
  • Clock del TIM programmabile con sette diverse frequenze con un prescaler;
  • Modo di funzionamento in free-running o in up-count;
  • TIM counter stop e reset
  • Architettura espandibile fino a 8 canali

 

 

Pin associati al TIM

 

Il TIM sfrutta due pin della porta D:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Descrizione del funzionamento

 

Il componente centrale del TIM è un contatore a 16bit che può funzionare in free-running o in up-counter

Al TIM sono associati due registri: TM0DH:TM0DL che sono rispettivamente i bit più significativi e quelli meno significativi del contatore a 16bit.

Il software potrà andare a leggere il contatore in qualsiasi momento tramite questi due registri.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Registri associati al TIM

 

 

Prescaler del TIM

 

La sorgente di clock del TIM può essere programmata tramite un prescaler che divide la frequenza. Per la selezione si usano i bit PS(2:0) nel registro di configurazione TSC.

 

Input Compare

 

In questa modalità di funzionamento il TIM cattura il valore del contattore e lo mette nei due registri TCHxH:TCHxL quando avviene un fronte nel pin di ingresso del canale utilizzato.

Il fronte può essere programmato per essere di salita o di discesa.

L’input compare può generare un interrupt.

Questa funzione può essere utile nel caso in cui si voglia misurare la durata di un’ evento esterno

 

 

Output Compare

 

In questa modalità il TIM può generare un fronte nel pin di output del canale quando il TIM e uguale al contenuto dei due registri di output compare.

L’output compare può generare un’interrupt.

Questa funzione è utile per creare timer di tipo software o misurare eventi impostando delle ruotine apposite.

 

PWM Pulse Width Modulation

 

In questa modalità il TIM può generare un segnale in uscita del pin di tipo PWM cioè in modulazione della frequenza del segnale:

 

 

come si vede dalla rappresentazione del segnale la durata del pulse viene definita tramite output compare, mentre il periodo viene definito dal valore nei registri del TIM,infatti per ottenere il PWM si lavora in toggle-on-overflow, in questo modo di lavoro il timer si resetta ogni volta che il contattore supera un certo valore definito nei registri.

La frequenza del PWM viene definita dal prescaler del TIM.

Il PWM viene molto utilizzato per comandare motori in corrente continua.

 

Procedura di configurazione del PWM

 

Passo 1. Nel registro TSC:

         1. fermare il contatore settando il bit di stop TSTOP

         2. Resettare il contatore settando il bit TRST

Passo 2. Nei registri TM0DH:TM0DL, scrivere il valore del periodo

         del PWM

Passo 3. Nei registri TCHxH:TCHxL scrivere il valore del pulse

Passo 4. Nel registro TSCx (x = canale)

1.    Settare il valore nei registri MSxB:MSxL

2.    Settare il bit TOVx: toggle-on-overflow

3.    Settare i bit ELSxB:ELSxA a 0:1 per avere in uscita un fronti di salita alla comparazione o 1:0 per avere fronti di discesa alla comparazione

Passo 5. Nel registro TSC cancellare il bit di stop.

 

 

 

 

 

Registro TSC

 

 

bit 7 — TOF overflow flag bit

         Questa è una flag scrivibile o leggibile che si setta  

         quando il contatore arriva $0000 superando il valore

         contenuto nei registri modulo TIM

         1: il TIM ha superato il valore del modulo TIM

         0: il TIM non ha superato il valore del modulo TIM

 

bit 6 — TOIE TIM Overflow Interrupt Enabled Bit

         1: Abilita l’interrupt all’overflow

         0: Disabilita l’interrupt all’overflow

 

bit 5 — TSTOP TIM stop bit

         1: Il contatore è disabilitato

         0: il contatore è abilitato

        

bit 4 — TRST TIM Reset Bit

         Questo è un bit di sola scrittura che quando viene

         settato resetta sia il TIMER che il PRESCALER

         1: Prescaler e TIM vengono cancellati

         0: No effect

bit 2:0 — Prescaler select bit

         Settando in modo opportuno questi bit si può scegliere il           

          valore del prescaler

         seguire la seguente tabella:

 

 

 

 

 

 

Registri TCNTH:TCNTL

 

Questi due registri contengono il valore del timer, il TCNTH gli 8 bit più significativi, mentre il TCNTL gli 8 bit meno significativi.

 

 

        

TIM Counter Module Register (TMODH:TMODL)

 

Questi registri scrivibili e leggibili contengono il valore massimo che può raggiungere il contatore, infatti quando il TIM supera questo valore avviene un’interrupt.

 

 

Pubblicità
shares
%d blogger hanno fatto clic su Mi Piace per questo: