Установка другой прошивки на Arduino

12

Можно ли обновить прошивку на Arduino, чтобы он мог выполнять больше задач, таких как изменение пониженного или пониженного напряжения для обеспечения большей вычислительной мощности. Для этого вам, скорее всего, придется заново прошить сам чип, так как это будет сделано?

JVarhol
источник
2
Большинство новых функций обеспечивается библиотеками и программированием. О каких "дополнительных вещах" ты говоришь?
Доктор
Что сказал TheDoctor, что вы подразумеваете под большим количеством вещей? Кроме того, что вы имеете в виду под "прошивкой"? Программное обеспечение / ОС на борту?
hichris123
Должен ли я просто удалить вопрос
JVarhol
@JVarhol Если вы можете сделать это яснее, нет, держите это. Просто объясните нам, о чем именно вы думаете ...
hichris123
Я знаю, что вы можете установить новую прошивку на USB-последовательный чип, чтобы он мог эмулировать клавиатуру
TheDoctor

Ответы:

7

Чтобы ответить на вопрос, касающийся «прошивки» на микроконтроллере ATmega328p, используемого в большинстве плат Arduino:

На ATmega вообще нет прошивки, кроме загрузчика. Программы, которые вы пишете, работают непосредственно на оборудовании.

Существуют определенные настройки «предохранителей», которые устанавливаются с помощью программатора ISP . Однако их всего 24 (три байта), и они в основном относятся к низкоуровневой конфигурации, и я не думаю, что вы спрашиваете:
введите описание изображения здесь

Существует также загрузчик , который представляет собой небольшую программу, которая находится в отдельном сегменте программной памяти MCU и позволяет ему обновляться при запуске (так программируются все ардуино). Тем не менее, он запускается только в течение короткого периода времени при запуске и полностью удаляется из памяти после перехода MCU к основной программе.

Наконец, на большинстве плат Arduino есть вспомогательные микроконтроллеры (ATmega16U2 / 8U2), которые используются в качестве последовательных USB-интерфейсов, которые можно обновлять, чтобы они вели себя по-разному (например, эмулировали клавиатуру / мышь), но, опять же, это на самом деле не является изменением. к ядру процессора, так что считается ли он «установкой другой прошивки», зависит от того, как вы определили arduino.

На самом деле, я настоятельно рекомендую ознакомиться с таблицей ATmega328P . Это документация для MCU, которая в основном образует «Arduino». Он должен учитывать то, что кажется ошибочным.

Коннор Вольф
источник
5

Обратите внимание на приведенную ниже таблицу, в отношении вашего недостаточного / избыточного напряжения устройства для другой F_CPU, указывает взаимосвязь. В результате вы обнаружите, что большинство Arduino работают при 5 В и тактовой частоте 16 МГц. Пока есть несколько вариантов 3.3В, которые работают на 8МГц.

Freq против Vcc

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

Следовательно, можно делать то, что вы просите. Тем не менее, вы обнаружите, что основные ограничения библиотеки влияют. Отклонение соотношения затрат и выгод к цели. И тогда, вероятно, можно было бы оставить Stock IDE и основные библиотеки более подходящим для makefile методом.

mpflaga
источник
Очевидно, его можно разогнать до 20 МГц
TheDoctor
@TheDoctor - это не разгон. ATmega328p рассчитан на 20 МГц. Arduinos фактически разогнаны до 16 МГц.
Коннор Вольф
@FakeName да, я имел в виду, что вы можете модифицировать плату Arduino, чтобы иметь необходимый резонатор для настройки на 20 МГц
TheDoctor
О, еще одна заметка. Вы можете вообще превышать охранную операционную площадь без крупных проблем. У меня есть несколько плат, работающих на 16 МГц с рельсами 3,3 В без проблем. Они могут иметь проблемы со стабильностью при экстремальных температурах, но, кажется, работают в основном нормально при комнатной температуре.
Коннор Вольф