ARM MCU harici kristalden nasıl daha hızlı çalışır?


12

Bundan önce sadece basit 8 bit Atmel MCU'larla çalıştım ve geliştirme kartı şemalarımda sadece 12Mhz kristal olduğunu fark ettim, ancak MCU 100MHz'e kadar çalışıyor. (Bence varsayılan 80MHz. Eğlenmek için sadece bir kez daha yüksek yaptım. Kodda sadece basit bir satır var.)

Bunu nasıl yapıyor? Örneğin, bir Atmega328 neden kullanılan kristal hızında çalışıyor?


5
1) mHz, mili Hertz anlamına gelir, yani bir Hertz'in 1 / 1000'i, Mega Hertz'i ifade ederken MHz (büyük M) kullanın. 2) ne 8 Bit MCU? 3) Ne geliştirme kurulu? 4) ATMega 328 kristalin hızında çalışmak zorunda değildir, neyin mümkün olduğunu görmek için veri sayfasındaki saat bölümünü okuyun. 5) Bazı IC'lerde harici saat frekansını çarpmak için kullanılabilecek bir PLL vardır .
Bimpelrekkie

1
@Bimpelrekkie: Bu yorumun çoğu cevap. Bunun cevabını vermek ister misiniz?
JRE

12 MHz ile karşılaştırmak için VCO bölücü f ile çarpılır. Bu bir PLL frekans sentezi yapar.
Tony Stewart Sunnyskyguy EE75

@Bimpelrekkie zaten birisi benim için tamir etmiş gibi görünüyor. Atmel ve atmega328'den daha önce bahsetmiştim. ama bunun bir örneği olması önemli değil. afaik atmega328p adlı kullanıcının PPL'si yok mu? Çoğunlukla nasıl çarpacağınızı merak ediyordum. Neyse ki Marcus Muller zaten çok iyi açıkladı.
user3033693

bunu okuduğunuz bilgisayardaki işlemci muhtemelen 100Mhz referans saati veya daha yavaş kullanıyor, ancak çekirdek ghz'de çalışıyor.
old_timer

Yanıtlar:


28

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:

  1. 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
  2. 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.


1
Teşekkürler :) Bu çok iyi açıklıyor! Eğlenmek ya da aptalca hatalara odaklanmak yerine bana ne istediğimi söyledin. Disleksi ile dikkat etmek benim için bazı şeyler çok zor. Yazılarımı 2-3 kez oklasam bile, çok fazla marka özledim ya da yanlışlıkla kapitalizasyonu ihtiyacım olmayan yere koydum. İngilizce'den bahsetmemek benim ilk dilim değil.
user3033693

7
@AmyGamble İngilizceniz çok iyi! Bence senin görevin altında ilk yorum çok genç mühendis birimlerin büyük harf kullanımı unutma çünkü - daha sonra çok sorunlu olabilir :) Umarım cesaretini asla hissediyorum!
Marcus Müller

9

Bazı cihazlarda kristal frekansını daha yüksek frekanslarla çarpabilen bir PLL vardır. ATMega328'in PLL'si yoktur, kristali doğrudan kullanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.