Як ARM MCU працює швидше, ніж зовнішній кристал?


12

Тому до цього я працював лише з простими 8-бітовими мікросхемами Atmel, і я зрозумів, що на моїх схемах плати розвитку є лише 12 МГц кристал, проте MCU працює на частоті до 100 МГц. (Я думаю, що за замовчуванням є 80 МГц. Я лише один раз зробив це для задоволення. Це просто простий рядок у коді.)

Як це робити? Чому, наприклад, Atmega328 працює з використаною швидкістю кристала?


5
1) МГц означає мілі Герц, так що 1/1000-та Герца, використовуйте МГц (величина М), коли ви маєте на увазі Мега Герц. 2) що 8 біт MCU? 3) Яка рада розвитку? 4) ATMega 328 не повинен працювати зі швидкістю кристала, прочитайте розділ про тактовану таблицю, щоб побачити, що можливо. 5) Деякі ІМС мають PLL, який можна використовувати для множення зовнішньої тактової частоти.
Bimpelrekkie

1
@Bimpelrekkie: Більшість цього коментаря - це відповідь. Чи хотіли б ви відповісти на це?
JRE

Дільник VCO для порівняння з 12 МГц закінчується множенням f. Ось що робить частотний синтезатор PLL.
Тоні Стюарт Сунніскігуй EE75

@Bimpelrekkie схоже, що хтось це вже виправив за мене. Я вже згадував Atmel та atmega328. але це не має значення, як це є прикладом. afaik atmega328p не має PPL? Мені найбільше цікаво, як можна просто просто примножити його. на щастя, Маркус Мюллер уже дуже добре це пояснив.
користувач3033693

Процесор на комп'ютері, на якому ви це читаєте, швидше за все, використовує опорний тактовий сигнал 100 МГц або повільніше, але ядро ​​працює в ГГц.
old_timer

Відповіді:


28

Це не має нічого спільного з тим, що ядро ​​є процесором ARM; йдеться про те, як працює тактова схема:

У багатьох системах, таких як мікроконтролери, радіочастотні мікросхеми, аудіо-мікросхеми,… вам потрібно генерувати більш швидкі тактові годинники, точні кратні деяким опорним годиннику (наприклад, зовнішній кристал).

Це можна зробити, маючи генератор, керований напругою (VCO), який можна регулювати за частотою, збільшуючи або зменшуючи керуючу напругу.

Тепер, встановивши будь-яку керуючу напругу, ви можете довести це до коливання на частоті приблизно в правій "кульці", але не на точному кратному вхідній частоті. Тим більше, VCO можуть бути трохи дрімотними, так що частота також буде нескінченно "блукати" всюди. Потрібно керувати цим генератором, порівнюючи його з опорним генератором.

Це можна зробити, використовуючи циклічну фазу . Ідея проста:

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

Наведене вище - це цикл керування, зафіксований на фазі - звідси і назва.

Для "багатих" мікроконтролерів, які мають багато периферійних пристроїв і, отже, вигідно мати декілька годин внутрішньо, звичайно мати принаймні 1 PLL. ATMega328 є дещо дивним у цьому відношенні: це відносно потужний, відносно периферійний мікроконтролер, який досі не має PLL.


1
Дякую :) це дуже добре пояснює! Замість того, щоб розважитись або зосередитись на моїх дурних помилках, ви просто сказали мені, що я, очевидно, прошу. Деякі речі мені ДУЖЕ важко звернути увагу на мою дислексію. Навіть якщо я читаю свою публікацію 2-3 рази, я пропускаю багато марок або випадково ставлю великі літери там, де мені не потрібно. Не кажучи вже про англійську - це не моя перша мова.
користувач3033693

7
@AmyGamble ваша англійська дуже гарна, проте! Я думаю, що перший коментар, який ви отримали під своєю посадою, був через те, що дуже багато молодих інженерів просто забувають про капіталізацію підрозділів - що згодом може стати дуже проблематичним :) Я сподіваюся, що ви ніколи не почуватиметеся не змученими!
Маркус Мюллер

9

Деякі пристрої мають у своєму розпорядженні PLL, який може примножувати частоту кристала на більш високі частоти. У ATMega328 немає PLL, він використовує кристал безпосередньо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.