Обсуждаем контроллеры компании Atmel.
Вс сен 25, 2016 06:57:39
Всем доброго дня! У меня валяется парочку Ардуин: Arduino Uno, Arduino NANO. У обоих из них atmega328. Мне интересно, как можно залить нормальный HEX-файл? И возможно-ли потом вернуть всё как было?
Читал на разных сайтах, как-то там вскользь написано. Хотелось-бы услышать мнение людей, которые уже это делали. Хотя и запороть не страшно, стоит копейки у китайцев)))))
Вс сен 25, 2016 07:59:31
Заливай, кто-ж не даёт? В последних версиях CVAVR (3.10-3.12) специально есть такая функция (Upload to Arduino).
Кстати, усыпил mega8 в асинхронном режиме?
Вс сен 25, 2016 08:06:33
Кроме встроенного в CVAVR модуля есть самостоятельные программы типа XLoader или UpLoader. Сделаны на основе дудки. Не гробят встроенный загрузчик.
Вс сен 25, 2016 11:39:53
Vov123 писал(а):Кстати, усыпил mega8 в асинхронном режиме?
Нет)))))
Вс сен 25, 2016 11:40:53
А с AVR Studio 4 залить можно? Ну или SinaProg?
Вс сен 25, 2016 12:05:04
vem566 писал(а):...есть самостоятельные программы типа XLoader или UpLoader. Сделаны на основе дудки. Не гробят встроенный загрузчик.
Кстати да, нашел статью на
GetChip
Вс сен 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 писал(а):Читал на разных сайтах, как-то там вскользь написано. Хотелось-бы услышать мнение людей, которые уже это делали. Хотя и запороть не страшно, стоит копейки у китайцев)))))
Ну я это делал. Прошивайте на здоровье, ничего Вы не запорите.
Вс сен 25, 2016 12:38:24
Понятно, что Ардуино это МК с обвязкой) А как быть со Фьюзами?
Вс сен 25, 2016 13:21:16
Через программатор можете ставить такие фьюзы, какие Вам нужны в данный момент. Потом, если будет надо, в Arduino IDE через пункт меню "Записать загрузчик" - автоматически прошиваются ардуиновсике фьюзы и загрузчик. А если нет программатора, но есть вторая ардуина - в неё можно загрузить скетч Arduino ISP (эмулятор программатора) - и прошивать ней как обычным программатором.
Вс сен 25, 2016 13:33:38
Про фьюзы прикольно рассуждаете, как-будто кварцы собрались на платке менять.
К тому-же платка с IDE рассчитана на 16МГц
Последний раз редактировалось
Vov123 Вс сен 25, 2016 13:36:20, всего редактировалось 1 раз.
Вс сен 25, 2016 13:35:43
А может надо будет затактировать от внутреннего осциллятора на малой частоте. Ну и во фьюзах не только тактирование настраивается.
К тому-же платка с IDE рассчитана на 16МГц
Топикстартёр написал, что хочет использовать AVR Studio 4, там частоту МК можно указать любую через F_CPU. Да и в Arduino IDE можно при желании поменять.
Последний раз редактировалось
Jeka_M Вс сен 25, 2016 13:45:39, всего редактировалось 5 раз(а).
Вс сен 25, 2016 13:37:23
Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????
Вс сен 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
Вс сен 25, 2016 13:48:40
Dr. Alex писал(а):Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????
А ещё подачу пряников и лимонада!
Вс сен 25, 2016 13:52:26
Ага, и гарячий шоколад с моккачино)
Вс сен 25, 2016 14:21:03
Vov123 писал(а):Dr. Alex писал(а):Ну вы интересные! А что, фьюзами только КВАРЦ выставляется?????
А ещё подачу пряников и лимонада!
Из того, что может ещё пригодиться:
1) CKOUT - Использовать PORTB0 как выход тактового генератора
2) EESAVE - Не стирать EEPROM при выполнении команды "Стереть Кристалл"
3) WDTON - Включить сторожевой таймер
4) BODLEVEL - Brown-out Detection, система контроля питания.
Ну и если отказываемся от загрузчика, надо бы убрать фьюз
BOOTRST (После сброса начинать работу с сектора загрузки).
Вс сен 25, 2016 14:36:03
Jeka_M писал(а):Ну и если отказываемся от загрузчика, надо бы убрать фьюз BOOTRST
Вооооот, а потом восстановить можно?
Вс сен 25, 2016 15:42:54
Можно. Опять же: либо вручную, либо "автоматически" через запись загрузчика из Arduino IDE. Это обычный фьюз, от других не отличается.
Вс сен 25, 2016 23:24:21
В сухом остатке и получается, что фьюзы можно и не трогать вообще, и забыть о них.
Чтобы использовать вывод PORTB, опять же придётся проводить изменения в плате, другие изменения в обычной практике используются редко.
Пн сен 26, 2016 08:27:31
а по умолчанию деление частоты на 8 отключено?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.