Mengapa Arduino mengirim kristal w / 16MHz bukannya 20MHz?


33

Mengapa papan Arduino mengirimkan kristal w / 16MHz alih-alih 20MHz? Mereka spec'ed untuk beroperasi pada 20MHz, setelah semua.

Saya kira ada beberapa keuntungan untuk berjalan lebih lambat (konsumsi daya yang lebih rendah, umur yang lebih panjang), tetapi saya harus kehilangan sesuatu.


1
Ini juga ditanyakan di Forum Arduino lama: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu

3
Perhatikan bahwa celah kecepatan aplikasi 25% ini dapat diperoleh berulang kali dengan pemrograman yang benar. Saya mencoba untuk menjauh dari batas ekstrim IC mana pun.
tyblu

Jawaban:


29

Saya akan menerima jawabannya di Forum Arduino:

ATmega8 Arduino asli berjalan pada 16MHz, yang merupakan kecepatan clock berperingkat teratas untuk cpu ATmega8 yang digunakan. Ketika "ditingkatkan" ke ATmega168 (dengan kecepatan cpu 20MHz atas), jam dibiarkan pada 16MHz (mungkin) karena perancang berpikir bahwa lebih banyak orang / kode akan memiliki masalah kompatibilitas mundur dengan laju jam baru daripada akan mendapat manfaat dari tambahan 25 % kinerja CPU. Saya tentu berpikir mereka benar ...


6

Sebenarnya, salah satu alasan terbaik yang pernah saya dengar adalah bahwa UART dapat dengan sempurna menyamai 1 Mbit dan 2 Mbit rate ketika berjalan pada 16 MHz, tetapi tidak ketika berjalan pada 20 MHz. Ada sejumlah perangkat yang memiliki input UART 1 dan 2 Mbit, seperti garis Dynamixel dari servos robot.


5

Poin ketiga adalah bahwa Oscillator Kristal Daya Rendah dari ATmega168 dan ATmega328 tidak berfungsi di atas 16 MHz. Jadi jika Anda memiliki kristal 20 MHz yang terhubung ke pin XTAL, Anda harus menggunakan Oscillator Kristal Ayun Penuh yang akan mengkonsumsi lebih banyak daya (atau tidak menggunakan kristal sama sekali).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.