Всем привет, нужно решить бытовую проблемку, починить таймер на микроволновке. В наличии две Уно и жменя пустых Мега328. Сначала думал, просто вставить пустую Мегу в Уну и прошить ее, но чем затык- нет кварцов на 16 (в пути), есть только на 4Мгц, таймер он и от внутреннего генератора сможет работать, не велика сложность. Но вот как, максимально просто, выставить битфьюзы. Без програматоров и прочего Linux, вроде как прошить загрузчик должно как то помочь, но что и как редактировать? Я понимаю что вопрос чайниковый, но просто в данный момент нет возможности читаь статьи и вникать в суть (в будущем займусь вплотную), просто нужен совет типа "делай так", "жим сюда" Сформулирую задачу : Залить скетч в Uno, проверить работоспособность, выставить фьюзы наработу от внутреннего генератора, переставить Мегу в устройство, радоваться всоей крутости.
Вряд ли напрямую через Arduino IDE возможно прописать фьюзы на работу от внутреннего генератора, только если в файле boards.txt (C:\Program Files (x86)\Arduino\hardware\arduino\avr) в ручную попытаться изменить частоту, вставить пустую Мегу, заместо штатной в UNO, и прошить загрузчик через Arduino IDE, но не факт что сработает. После обязательно вернуть все изменения в boards.txt на место. Но есть ещё способ прошить через ISP. 1. Подключаем Mega328 к UNO, как на первом рисунке из этой статьи (VCC, GND, MOSI, MISO, SCK, RESET - смотрим распиновку в Datashet на Atmega328), при этом родную Mega328 из UNO лучше вынуть. Т.е. просто воспользуемся программатором Arduino UNO. 2. Находим в сети и скачиваем программу AVRDude 3.3 3. Выбираем нужный МК - Atmega328 4. Выставляем во вкладке "Fuses" программатор AVR ISP mkll. Сами фьюзы от встроенного генератора выставляем, воспользовавшись данным онлайн-калькулятором. 5. После выбора МК, программатора и нужных фьюзов жмем кнопку "программирование" из вкладки "Fuses", должно получится и выскочить сообщение об успешной прошивке и установки фьюзов. После можно таким же способом заливать скетчи, но в формате HEX, т.е. пишите обычный скетч в Arduino IDE, компилируете, лезете в папку Temp (C:\Users\Jan\AppData\Local\Temp) ищите нужный скомпилированный файл HEX (можно сортировать по дате), дальше также через AVRDude прошиваете (указываете путь до HEX). Вауля у вас рабочий код на Mega328 с частотой от встроенного генератора. Если шить напрямую через Arduino IDE, фьюзы вновь собьются и установятся по умолчанию - 16 МГц. На первое время должно помочь. Далее Вы знаете, приедут кварцы на 16 МГц, можно напрямую через IDE шить, надеюсь помог P.S. Пути к папкам могут не совпадать с вашими, зависит куда установлена ваша IDE. Фьюзы выставляются конкретно под каждый чип Атмега, нельзя просто "выставить фьюзы на работу от внутреннего генератора, переставить Мегу в устройство, радоваться всей крутости." По сути даже если прошить напрямую через Arduino IDE без внешнего генератора, Atmega328 заработает и даже будет выполнять код, но таймеры будут работать некорректно, 1 секунда может стать 8 секунд или около того.
Лучше сразу прошить бутлоадер под нужный проц и имеющийся кварц. Конструктор и фьюзбиты здеся http://tinyurl.com/ovjxh9a
Вот так сразу гуссарским наскоком не вышло, но в итоге все получилось. Как подключить https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard внизу. Внимание, для прошивки загрузчика и скетча нужны разные подключения Видео с пояснениями (с кучей ненужной "воды"), смысл такой, сначала прошить скетч програматора, а затем выбрать конфиг без кварца и вшить загрузчик. Работает ТОЛЬКО в версии 1.0.1, все то же самое в 1.7.7 не работало. А вот и результат, несколько "перемычечно", ну да ладно. Кстати, почему то на индикаторе видны призрачные знаки во время работы, не знаю с чем связанно, может сам индикатор кривой.