Чому Arduinos постачає кристал w / 16 МГц замість 20 МГц?


33

Чому плати Arduino поставляють кристал w / 16 МГц замість 20 МГц? Зрештою, вони призначені для роботи на частоті 20 МГц.

Я думаю, що є кілька переваг, щоб працювати повільніше (менша витрата електроенергії, довший термін експлуатації), але мені, мабуть, щось не вистачає.


1
Про це також запитали на старому форумі Arduino: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240016311
vicatcu

3
Зауважте, що цей розрив у швидкості застосування 25% можна отримати багато разів за допомогою правильного програмування. Я намагаюся триматися подалі від будь-яких крайніх меж ІС.
tyblu

Відповіді:


29

Я б вирішив відповісти на форумі Arduino:

Оригінальний ATmega8 Arduino працював на частоті 16 МГц, що було найвищою номінальною тактовою частотою для використовуваного процесора ATmega8. Коли "оновлено" до ATmega168 (з максимальною швидкістю процесора 20 МГц), тактовий годинник залишився на рівні 16 МГц (ймовірно), тому що дизайнери думали, що більше людей / коду матимуть проблеми з сумісністю з новою тактовою частотою, ніж виграють додаткові 25 % продуктивності процесора Я, звичайно, думаю, що вони мали рацію ...


6

Власне, одна з найкращих причин, про які я чув, - це те, що UART може ідеально відповідати швидкості 1 Мбіт і 2 Мбіт при роботі на 16 МГц, але не при роботі на 20 МГц. Існує ряд пристроїв, які мають 1 та 2 Мбіт UART-входи, наприклад лінія Dynamixel сервоприводів роботів.


5

Третій момент полягає в тому, що кристалічний осцилятор низької потужності ATmega168 і ATmega328 не працює вище 16 МГц. Отже, якщо у вас є підключений до XTAL штифт кристал 20 МГц, вам доведеться використовувати кристалічний генератор Full Swing, який буде споживати більше енергії (або зовсім не використовувати кристал).

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