Встановлення іншої прошивки на 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.