Встановлення іншої прошивки на Arduino


12

Чи можливо оновити прошивку на Arduino, щоб вона могла робити більше речей, таких як зміни підниження / перенапруги, щоб забезпечити більше процесорної потужності. Для цього вам, швидше за все, доведеться перезавантажити мікросхему, то як би це було досягнуто?


2
Більшість нових функціональних можливостей надаються бібліотеками та програмуванням. Про які "більше речей" ви говорите?
TheDoctor

Що сказав TheDoctor, що ви маєте на увазі під собою більше речей? Крім того, що ви маєте на увазі під "прошивкою"? Програмне забезпечення / ОС на борту?
hichris123

Чи потрібно просто видалити запитання
JVarhol

@JVarhol Якщо ви можете зробити це зрозумілішим, ні, збережіть це. Просто поясніть нам, що саме ви думаєте про ...
hichris123

Я знаю, що ви можете встановити нову прошивку на USB-послідовний чіп, щоб вона могла наслідувати клавіатуру
TheDoctor

Відповіді:


7

Щоб відповісти на аспект Вашого запитання щодо "вбудованого програмного забезпечення" на MCU ATmega328p, який використовується на більшості плат Arduino:

У ATmega прошивки зовсім немає, крім завантажувача. Програми, які ви пишете, працюють безпосередньо на апаратному забезпеченні.

Існують певні настройки "запобіжника", які встановлюються програмістом провайдера . Однак їх всього 24 (три байти), і вони значною мірою стосуються конфігурації низького рівня, і це не те, що я думаю, що ви запитуєте:
введіть тут опис зображення

Є також Bootloader - це невелика програма, яка сидить в окремому сегменті програмної пам'яті MCU і дозволяє їй оновитись при запуску (саме так запрограмовані всі ардуїно). Однак при запуску він працює лише короткий проміжок часу і повністю вилучається з пам'яті після переходу MCU до основної програми.

Нарешті, на більшості плат arduino є допоміжні MCU (ATmega16U2 / 8U2), які використовуються як USB-послідовний інтерфейс, які можна оновити, щоб поводитись по-різному (наприклад, емуляція клавіатури / миші), але знову ж таки, це насправді не є зміною для основного процесора, тому чи вважається це "встановленням іншої прошивки", залежить від того, як ви визначаєте arduino.

Дійсно, я настійно рекомендую читати таблицю даних ATmega328P . Це документація для MCU, яка в основному формує "Arduino". Він повинен вирішити те, що здається помилковим уявленням.


5

Зверніть увагу на нижню діаграму, що стосується вашого перенапруження пристрою для різного F_CPU, вказує на взаємозв'язок. В результаті ви виявляєте, що більшість пробіжок Arduino працює на 5В і тактовою частотою 16 МГц. Хоча є деякі варіанти 3.3V, які працюють на частоті 8 МГц.

Freq vs Vcc

Однак основна бібліотека, що надається з IDE, зазвичай має конкретну #, якщо для обох швидкостей F_CPU 8 і 16 МГц, не використовуючи формулу в більшості місць.

Отже, можна робити те, що ви просите. Однак ви знайдете основні обмеження бібліотеки, які впливають. Співвідношення співвідношення витрат і вигод відповідно до самого наміру. І тоді, ймовірно, можна було б залишити біржові IDE та основні бібліотеки для більш методу makefile.


Мабуть, його можна розігнати до 20 мГц
TheDoctor

@TheDoctor - це не розгін. ATmega328p оцінюється в 20 МГц. Arduinos фактично знижений до 16 МГц.
Вонор Коннор

@FakeName так, я мав на увазі, що ви можете змінити плату Arduino, щоб мати дозвільний резонатор для настройки на 20 мГц
TheDoctor

О, ще одна сторона. Як правило, ви можете перевищити безпечну зону експлуатації без основних проблем. У мене є декілька плат, що працюють на 16 МГц з 3.3V рейками без проблем. Вони можуть мати проблеми зі стабільністю при екстремальних температурах, але, здається, вони працюють нормально при кімнатній температурі.
Вонор Коннор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.