Arduinos neden 20MHz yerine 16MHz kristal ile gönderiyor?


33

Arduino panoları neden 20MHz yerine 16MHz kristal ile birlikte geliyor? Sonuçta, 20MHz'de çalışması için belirtilmişlerdir.

Sanırım daha yavaş çalışmanın birkaç avantajı var (daha az güç tüketimi, daha uzun ömür) ama bir şeyleri kaçırmalıyım.


1
Bu aynı zamanda eski Arduino Forumunda da sorulmuştu: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu

3
Bu% 25'lik uygulama hızı farkının uygun programlama ile birçok kez kazanılabileceğini unutmayın. Yine de herhangi bir IC'nin aşırı sınırlarından uzak durmaya çalışıyorum.
Tyblu

Yanıtlar:


29

Arduino Forumunda cevabı satın alırdım:

Orijinal ATmega8 Arduino, kullanılan ATmega 8 işlemci için en yüksek puanlı saat hızı olan 16MHz'de çalışıyordu. ATmega168'e "yükseltildiğinde" (20MHz'lik bir en yüksek cpu hızında), saat 16MHz'de (muhtemelen) kaldı çünkü tasarımcılar daha fazla insanın / kodun yeni bir saat oranıyla geriye dönük uyumluluk sorunları yaşayacağını düşünüyordu. % cpu performansı. Ben kesinlikle doğru olduğunu düşünüyorum ...


6

Aslında, duyduğum en iyi nedenlerden biri, UART'ın 16 MHz'de çalışırken, ancak 20 MHz'de çalışırken değil, 1 Mbit ve 2 Mbit hızlarıyla mükemmel bir şekilde eşleşebilmesidir. Robot servoların Dynamixel hattı gibi 1 ve 2 Mbit UART girişine sahip birkaç cihaz vardır.


5

Üçüncü bir nokta ise, ATmega168 ve ATmega328'in Düşük Güçlü Kristal Osilatörünün 16 MHz'nin üzerinde çalışmadığıdır. Bu yüzden, XTAL pinlerine bağlı 20 MHz kristaliniz varsa, daha fazla güç tüketecek (veya hiç kristal kullanmadan) Tam Salıncak Kristal Osilatörünü kullanmanız gerekir.

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.