W jaki sposób ARM MCU działa szybciej niż zewnętrzny kryształ?

12

Więc wcześniej pracowałem tylko z prostymi 8-bitowymi MCU Atmel i zdałem sobie sprawę z mojego schematu na płytce programistycznej, że ma on tylko kryształ 12 MHz, ale MCU działa z częstotliwością do 100 MHz. (Myślę, że domyślnie jest to 80 MHz. Podniosłem go tylko raz dla zabawy. To tylko prosta linia w kodzie).

Jak to robi? Dlaczego na przykład Atmega328 działa z używaną prędkością kryształów?

użytkownik3033693
źródło
5
1) MHz oznacza milli Hertz, więc 1/1 000 herca, użyj MHz (wielka M), gdy masz na myśli Mega Hertz. 2) jaki 8-bitowy MCU? 3) Jaka tablica rozwojowa? 4) ATMega 328 nie musi działać z prędkością kryształu, przeczytaj sekcję taktowania w arkuszu danych, aby zobaczyć, co jest możliwe. 5) Niektóre układy scalone mają PLL, którego można użyć do zwielokrotnienia częstotliwości zegara zewnętrznego.
Bimpelrekkie
1
@Bimpelrekkie: Większość tego komentarza jest odpowiedzią. Czy chciałbyś odpowiedzieć na to pytanie?
JRE
Dzielnik VCO do porównania z 12 MHz zwielokrotnia f. Tak działa syntezator freq PLL.
Tony Stewart Sunnyskyguy EE75
@Bimpelrekkie wygląda na to, że ktoś już to naprawił. Wspomniałem już o Atmel i atmega328. ale to nie ma znaczenia, bo to przykład. afaik atmega328p nie ma licencji PPL? Byłem głównie ciekawy, jak możesz to po prostu pomnożyć. na szczęście Marcus Muller już to bardzo dobrze wyjaśnił.
user3033693
procesor w komputerze, na którym czytasz to, prawdopodobnie używa zegara odniesienia 100 MHz lub wolniej, ale rdzeń działa w ghz.
old_timer

Odpowiedzi:

28

Nie ma to nic wspólnego z rdzeniem będącym procesorem ARM; chodzi o to, jak działa układ zegarowy:

W wielu systemach, takich jak mikrokontrolery, układy RF, układy audio ... musisz wygenerować szybszy zegar, który jest dokładną wielokrotnością jakiegoś zegara odniesienia (na przykład zewnętrznego kryształu).

Osiąga się to dzięki oscylatorowi sterowanemu napięciem (VCO), który można regulować częstotliwością poprzez zwiększenie lub zmniejszenie napięcia sterującego.

Teraz, po prostu ustawiając dowolne napięcie sterujące, możesz ustawić, aby oscylowało ono z częstotliwością mniej więcej w odpowiednim „ballparku”, ale nie z dokładną wielokrotnością częstotliwości wejściowej. Zwłaszcza VCO mogą być nieco nieprzyjemne, więc częstotliwość będzie też nieustannie „wędrować” po całym miejscu. Musisz kontrolować ten oscylator, porównując go z oscylatorem odniesienia.

Sposobem na to jest zastosowanie pętli synchronizowanej fazowo . Pomysł jest prosty:

  1. Podziel częstotliwość wychodzącą z VCO przez współczynnik ; właśnie dlatego chcemy, aby VCO było szybsze niż referencyjne. Jest to łatwe: możesz na przykład po prostu użyć licznika cyfrowego, który liczy się do N, a dopiero potem zmienia wyjście.N
  2. Porównaj ten zegar z zegarem odniesienia w . Jeśli jeden jest szybszy od drugiego, odpowiednio dostosuj częstotliwość. Możesz to zrobić cyfrowo, po prostu XOR'ując oba zegary - idealnie, jeśli są one identyczne, wynikiem jest stała 0, ale jeśli jeden jest szybszy od drugiego, to będzie coraz więcej razy, gdy XOR obu zegarów wynosi 1; odpowiednio spowolnij lub przyspiesz VCO.fVCO/Nfref

Powyżej jest pętla kontrolna, zamknięta w fazie - stąd nazwa.

W przypadku „bogatych” mikrokontrolerów, które mają wiele urządzeń peryferyjnych i stąd korzyści płynące z posiadania wielu zegarów wewnętrznie, zwykle ma się co najmniej 1 PLL. ATMega328 jest pod tym względem nieco dziwny: to stosunkowo energochłonny, stosunkowo bogaty w peryferia mikrokontroler, który wciąż nie ma PLL.

Marcus Müller
źródło
1
Dziękuję :) To wyjaśnia to bardzo dobrze! Zamiast naśmiewać się lub skupiać na moich głupich błędach, powiedziałeś mi, o co oczywiście pytam. Niektórym bardzo trudno jest mi zwrócić uwagę na moją dysleksję. Nawet jeśli czytam mój post 2-3 razy, brakuje mi wielu marek lub przypadkowo umieszczam wielkie litery tam, gdzie nie muszę. Nie wspominając już, że angielski nie jest moim pierwszym językiem.
user3033693
7
@AmyGamble Twój angielski jest jednak bardzo dobry! Myślę, że pierwszy komentarz, jaki dostałeś pod postem, był taki, że bardzo wielu młodych inżynierów po prostu zapomniało o wielkich literach jednostek - co może stać się bardzo problematyczne później :) Mam nadzieję, że nigdy nie poczujesz się zniechęcony!
Marcus Müller
9

Niektóre urządzenia mają w sobie PLL, które mogą zwielokrotniać częstotliwość kryształu do wyższych częstotliwości. ATMega328 nie ma PLL, używa bezpośrednio kryształu.

Tylko ja
źródło