Обсуждаем контроллеры компании Atmel.
Ответить

Залить в Arduino HEX

Вс сен 25, 2016 06:57:39

Всем доброго дня! У меня валяется парочку Ардуин: Arduino Uno, Arduino NANO. У обоих из них atmega328. Мне интересно, как можно залить нормальный HEX-файл? И возможно-ли потом вернуть всё как было?
Читал на разных сайтах, как-то там вскользь написано. Хотелось-бы услышать мнение людей, которые уже это делали. Хотя и запороть не страшно, стоит копейки у китайцев)))))

Re: Залить в Arduino HEX

Вс сен 25, 2016 07:59:31

Заливай, кто-ж не даёт? В последних версиях CVAVR (3.10-3.12) специально есть такая функция (Upload to Arduino).
Кстати, усыпил mega8 в асинхронном режиме?

Re: Залить в Arduino HEX

Вс сен 25, 2016 08:06:33

Кроме встроенного в CVAVR модуля есть самостоятельные программы типа XLoader или UpLoader. Сделаны на основе дудки. Не гробят встроенный загрузчик.

Re: Залить в Arduino HEX

Вс сен 25, 2016 11:39:53

Vov123 писал(а):Кстати, усыпил mega8 в асинхронном режиме?
Нет)))))

Re: Залить в Arduino HEX

Вс сен 25, 2016 11:40:53

А с AVR Studio 4 залить можно? Ну или SinaProg?

Re: Залить в Arduino HEX

Вс сен 25, 2016 12:05:04

vem566 писал(а):...есть самостоятельные программы типа XLoader или UpLoader. Сделаны на основе дудки. Не гробят встроенный загрузчик.

Кстати да, нашел статью на GetChip

Re: Залить в Arduino HEX

Вс сен 25, 2016 12:22:44

Dr. Alex писал(а):А с AVR Studio 4 залить можно? Ну или SinaProg?
Конечно можно, а почему Вы засомневались? Ардуино - это тупо распаянный на плате AVR с обвязкой.

Dr. Alex писал(а):Мне интересно, как можно залить нормальный HEX-файл?
HEX-файл для Ардуино не отличается от HEX-файла для AVR, почему читай выше.

Dr. Alex писал(а):И возможно-ли потом вернуть всё как было?
Вернуть что? Единственное отличие платформы Ардуино от голого AVR - наличие загрузчика в МК. Он нужен только для того, чтобы загружать прошивку через USB (USB-UART преобразователь на плате). Если есть программатор - оно нафиг не нужно. А если вдруг понадобится, то загрузчик прошивается в один клик из Arduinо IDE.

Dr. Alex писал(а):Читал на разных сайтах, как-то там вскользь написано. Хотелось-бы услышать мнение людей, которые уже это делали. Хотя и запороть не страшно, стоит копейки у китайцев)))))
Ну я это делал. Прошивайте на здоровье, ничего Вы не запорите.

Re: Залить в Arduino HEX

Вс сен 25, 2016 12:38:24

Понятно, что Ардуино это МК с обвязкой) А как быть со Фьюзами?

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:21:16

Через программатор можете ставить такие фьюзы, какие Вам нужны в данный момент. Потом, если будет надо, в Arduino IDE через пункт меню "Записать загрузчик" - автоматически прошиваются ардуиновсике фьюзы и загрузчик. А если нет программатора, но есть вторая ардуина - в неё можно загрузить скетч Arduino ISP (эмулятор программатора) - и прошивать ней как обычным программатором.

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:33:38

Про фьюзы прикольно рассуждаете, как-будто кварцы собрались на платке менять.
К тому-же платка с IDE рассчитана на 16МГц
Последний раз редактировалось Vov123 Вс сен 25, 2016 13:36:20, всего редактировалось 1 раз.

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:35:43

А может надо будет затактировать от внутреннего осциллятора на малой частоте. Ну и во фьюзах не только тактирование настраивается.

К тому-же платка с IDE рассчитана на 16МГц
Топикстартёр написал, что хочет использовать AVR Studio 4, там частоту МК можно указать любую через F_CPU. Да и в Arduino IDE можно при желании поменять.
Последний раз редактировалось Jeka_M Вс сен 25, 2016 13:45:39, всего редактировалось 5 раз(а).

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:37:23

Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:37:59

Открываем файл: Arduino\hardware\arduino\avr\boards.txt (у меня (XP) в C:\Program Files\)

Примерно для UNO:

uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0x05
...
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.board=AVR_UNO
uno.build.core=arduino
uno.build.variant=standard

но как Jeka_M написал, если компилируете программа с помощи Arduino IDE (через "Записать загрузчик"), ручной ввод фьюзы не нужен.

В папки проекта будет 2 файла: Примерно

Blink.ino.standard.hex и Blink.ino.with_bootloader.standard.hex

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:48:40

Dr. Alex писал(а):Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????


А ещё подачу пряников и лимонада! :shock:

Re: Залить в Arduino HEX

Вс сен 25, 2016 13:52:26

Ага, и гарячий шоколад с моккачино)

Re: Залить в Arduino HEX

Вс сен 25, 2016 14:21:03

Vov123 писал(а):
Dr. Alex писал(а):Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????

А ещё подачу пряников и лимонада! :shock:

Из того, что может ещё пригодиться:
1) CKOUT - Использовать PORTB0 как выход тактового генератора
2) EESAVE - Не стирать EEPROM при выполнении команды "Стереть Кристалл"
3) WDTON - Включить сторожевой таймер
4) BODLEVEL - Brown-out Detection, система контроля питания.

Ну и если отказываемся от загрузчика, надо бы убрать фьюз BOOTRST (После сброса начинать работу с сектора загрузки).

Re: Залить в Arduino HEX

Вс сен 25, 2016 14:36:03

Jeka_M писал(а):Ну и если отказываемся от загрузчика, надо бы убрать фьюз BOOTRST

Вооооот, а потом восстановить можно?

Re: Залить в Arduino HEX

Вс сен 25, 2016 15:42:54

Можно. Опять же: либо вручную, либо "автоматически" через запись загрузчика из Arduino IDE. Это обычный фьюз, от других не отличается.

Re: Залить в Arduino HEX

Вс сен 25, 2016 23:24:21

В сухом остатке и получается, что фьюзы можно и не трогать вообще, и забыть о них.
Чтобы использовать вывод PORTB, опять же придётся проводить изменения в плате, другие изменения в обычной практике используются редко.

Re: Залить в Arduino HEX

Пн сен 26, 2016 08:27:31

а по умолчанию деление частоты на 8 отключено?
Ответить