Це не має нічого спільного з тим, що ядро є процесором ARM; йдеться про те, як працює тактова схема:
У багатьох системах, таких як мікроконтролери, радіочастотні мікросхеми, аудіо-мікросхеми,… вам потрібно генерувати більш швидкі тактові годинники, точні кратні деяким опорним годиннику (наприклад, зовнішній кристал).
Це можна зробити, маючи генератор, керований напругою (VCO), який можна регулювати за частотою, збільшуючи або зменшуючи керуючу напругу.
Тепер, встановивши будь-яку керуючу напругу, ви можете довести це до коливання на частоті приблизно в правій "кульці", але не на точному кратному вхідній частоті. Тим більше, VCO можуть бути трохи дрімотними, так що частота також буде нескінченно "блукати" всюди. Потрібно керувати цим генератором, порівнюючи його з опорним генератором.
Це можна зробити, використовуючи циклічну фазу . Ідея проста:
- Розділіть частоту, яка виходить з VCO на коефіцієнт ; це той фактор, що ми хочемо, щоб VCO був швидшим, ніж еталонний. Це легко: Наприклад, ви можете просто використовувати цифровий лічильник, який вважається N, і лише потім змінює висновок.N
- Порівняйте цей годинник з опорним годинником на . Якщо одна швидша за іншу, відповідно регулюйте частоту. Ви можете це зробити цифровим способом, просто XOR'ing обох годин - в ідеалі, якщо вони однакові, результат є постійним 0, але якщо один швидше, ніж інший, тоді буде зростати кількість разів XOR обох годин - 1; сповільнити або пришвидшити VCO відповідно.fVCO/Nfref
Наведене вище - це цикл керування, зафіксований на фазі - звідси і назва.
Для "багатих" мікроконтролерів, які мають багато периферійних пристроїв і, отже, вигідно мати декілька годин внутрішньо, звичайно мати принаймні 1 PLL. ATMega328 є дещо дивним у цьому відношенні: це відносно потужний, відносно периферійний мікроконтролер, який досі не має PLL.