Bunun çekirdeğin bir ARM işlemci olmasıyla bir ilgisi yok; saat devresi nasıl çalışır?
Mikrodenetleyiciler, RF çipleri, ses çipleri gibi birçok sistemde, bazı referans saatlerinin (örneğin, harici bir kristalin) tam katı olan daha hızlı bir saat oluşturmanız gerekir.
Bunu, bir kontrol voltajını azaltarak veya azaltarak frekansta ayarlayabileceğiniz voltaj kontrollü bir osilatöre (VCO) sahip olarak yapabilirsiniz.
Şimdi, herhangi bir kontrol voltajı ayarlayarak, kabaca sağ "ballpark" da bir frekansta salınmasını sağlayabilir, ancak giriş frekansının tam katında değil. Özellikle, VCO'lar biraz sürüklenebilir, böylece frekans her yerde sürekli olarak "dolaşır". Osilatörü referans osilatör ile karşılaştırarak kontrol etmeniz gerekir.
Bunu yapmanın yolu bir Faz-Kilitli Döngü kullanmaktır . Fikir basit:
- VCO'dan çıkan frekansı faktörüne bölün ; VCO'nun referanstan daha hızlı olmasını istediğimiz faktör budur. Bunu yapmak kolaydır: Örneğin, N olarak sayılan ve ancak çıktıyı değiştiren bir dijital sayaç kullanabilirsiniz.N
- Bu saatini adresindeki referans saat ile . Biri diğerinden daha hızlıysa, frekansı buna göre ayarlayın. Bunu her iki saati de sadece XOR'leyerek dijital bir şekilde yapabilirsiniz - ideal olarak, eğer özdeş iseler, sonuç sabit 0'dır, ancak biri diğerinden daha hızlıysa, Her iki saatin XOR'u 1'dir; VCO'yu yavaşlatabilir veya hızlandırabilirsiniz.fVCO/Nfref
Yukarıdaki ad, bu nedenle ad aşamasına kilitlenmiş bir kontrol döngüsüdür.
Çok sayıda çevre birimine sahip olan ve bu nedenle dahili olarak birden fazla saat bulundurmaktan faydalanan "zengin" mikrodenetleyiciler için, en az 1 PLL'ye sahip olmak normaldir. ATMega328 bu açıdan biraz garip: Hala bir PLL'si olmayan nispeten güç aç, nispeten çevresel açıdan zengin bir mikro denetleyici.