Questo non ha nulla a che fare con il core che è un processore ARM; riguarda il funzionamento dei circuiti di clock:
In molti sistemi come microcontrollori, chip RF, chip audio, ... è necessario generare un clock più veloce che sia un multiplo esatto di un clock di riferimento (ad esempio un cristallo esterno).
Puoi farlo avendo un oscillatore controllato in tensione (VCO) che puoi regolare in frequenza inserendo o diminuendo una tensione di controllo.
Ora, semplicemente impostando qualsiasi tensione di controllo, è possibile far oscillare questa frequenza approssimativamente nel giusto "ballpark", ma non ad un multiplo esatto della frequenza di ingresso. Soprattutto, i VCO possono essere un po 'lenti, quindi anche la frequenza "vagherà" continuamente in tutto il luogo. È necessario controllare quell'oscillatore confrontandolo con l'oscillatore di riferimento.
Il modo per farlo è utilizzando un loop a fase bloccata . L'idea è semplice:
- N
- fVCO/Nfref
Quanto sopra è un circuito di controllo, bloccato nella fase di - da qui il nome.
Per i microcontrollori "ricchi", che hanno molte periferiche e quindi traggono vantaggio dall'avere più clock internamente, è normale avere almeno 1 PLL. ATMega328 è un po 'strano al riguardo: è un microcontrollore relativamente assetato di energia e relativamente ricco di periferiche che non ha ancora un PLL.