Quelle non sono le uniche frequenze disponibili per i segnali PWM. Tuttavia, sono le frequenze determinate dal prescaler applicato (che è possibile modificare facilmente come descritto di seguito).
Ognuna delle 3 coppie di pin PWM è legata a un timer, ognuno dei quali ha una propria frequenza di base, come segue:
- I pin 5 e 6 sono accoppiati su timer0, con frequenza base di 62500Hz
- I pin 9 e 10 sono accoppiati su timer1, con frequenza base di 31250Hz
- I pin 3 e 11 sono accoppiati su timer2, con frequenza base di 31250Hz
Quindi ogni set di pin ha un numero di valori prescaler che possono essere scelti, che divideranno la frequenza di base di quella coppia di pin. I valori prescaler disponibili sono:
- I pin 5 e 6 hanno valori prescaler di 1, 8, 64, 256 e 1024
- I pin 9 e 10 hanno valori prescaler di 1, 8, 64, 256 e 1024
- I pin 3 e 11 hanno valori prescaler di 1, 8, 32, 64, 128, 256 e 1024
Le diverse combinazioni producono frequenze diverse in un dato pin PWM. Si noti che il timer 2 (legato ai pin 3 e 11) ha più valori prescaler disponibili, risultando in più frequenze disponibili.
Ora, perché il timer 2 è diverso, questa è una domanda separata.
Modifica: ecco un elenco di possibili frequenze PWM per pin (da questo articolo ):
Per i pin 6 e 5 (OC0A e OC0B):
- Se TCCR0B = xxxxx001, la frequenza è 64kHz
- Se TCCR0B = xxxxx010, la frequenza è 8 kHz
- Se TCCR0B = xxxxx011, la frequenza è 1kHz (questa è l'impostazione predefinita dal bootloader Diecimila)
- Se TCCR0B = xxxxx100, la frequenza è 250Hz
- Se TCCR0B = xxxxx101, la frequenza è 62,5 Hz
Per pin 9, 10, 11 e 3 (OC1A, OC1B, OC2A, OC2B):
- Se TCCRnB = xxxxx001, la frequenza è 32kHz
- Se TCCRnB = xxxxx010, la frequenza è 4 kHz
- Se TCCRnB = xxxxx011, la frequenza è 500Hz (questa è l'impostazione predefinita dal bootloader Diecimila)
- Se TCCRnB = xxxxx100, la frequenza è 125Hz
- Se TCCRnB = xxxxx101, la frequenza è 31,25 Hz
TCCRnB
è dove si impostano i bit prescaler per il timer n
, sostituendoli n
con 0, 1 o 2, a seconda del timer che si desidera impostare. Se non sei ancora sicuro delle operazioni bit per bit, leggi questo tutorial di matematica bit .
Le mie fonti:
Si noti che sembra esserci divergenza in quelle fonti sul fatto che i pin 9 e 10 abbiano lo stesso comportamento di 5 e 6 o 3 e 11, ma si ottiene comunque l'idea. Sto leggendo il datashet per provare a capire quale sia corretta o se questa è una differenza tra le schede.