Программирование ATMega8-16PU с помощью Arduino UNO
- Войдите на сайт для отправки комментариев
Вс, 27/03/2016 - 10:52
Подскажите пожалуйста, можно ли с помощью рабочей (оригинальной) Arduino UNO с залитым скетчем ArduinoISP прошить чистый контроллер ATMega8-16PU? И вообще, что нужно туда зашить и что нужно знать? Слышал про какие-то фьюзы (но что это - до конца так и не понял). Сначала хочу попробовать прошить Blink с использованием встроенного генератора. Поиском по форуму нашёл только статью: http://arduino.ru/forum/programmirovanie/kak-ozhivit-arduino-atmega8a. Можно ли прошивать контроллер ATMega8-16PU способом, изложенным здесь? Совместимы ли в этом случае ATMega8A и ATMega8-16PU?
ГУГЛ! AVR фьюзы.
С фьюзами разберусь, главное - как кристалл сам запрограммировать-то? Какая обвязка нужна - видел в даташите, а вот через какой интерфейс программировать - не знаю. Решил в Arduino UNO залить ArduinoISP, но у меня нету для обвязки хороших конденсаторов (для кварца).
От фьюзов зависит кто будет тактовым генератором?
Atmega может работать и прошиваться вообще без обвязки (правда в "тепличных условиях", если рядом нет сильных электромагнитных помех и помех по питанию). С завода по-умолчанию тактирование настроено на внутренний RC-осциллятор, поэтому кварц не нужен. Фьюзами можно переключить на внешний кварцевый резонатор.
Написать скетч и прошить можно через ту же Arduino IDE (Файл -> Загрузить с помощью программатора), но сначала нужно добавить поддержку Atmega8. Прошивать загрузчик не обязательно, по желанию. Смотря чем потом прошивать МК: программатором или USB-UART переходником.
Если есть готовый файл с прошивкой (hex), можно прошить через консольную утилиту Avrdude, или через многочисленные графичесчкие оболочки к ней (такие как SinaProg, Avrdude Prog, PonyProg и другие).
С фьюзами надо обязательно разобраться и прошивать их внимательно и с осторожностью (можно случайно залочить МК). Фьюзы, если по-простому, это биты настройки микроконтроллера. Меняются только программатором. Фюзами в том числе настраивается источник тактирования. Из среды Arduino IDE нужные фьюзы выставляются только при записи загрузчика, они настраиваются для работы микроконтроллера в составе платы Ардуино (т.е. внешний кварц, загрузчик и т.д.). Вручную фьюзы можно менять с помощью консольной Avrdude или графических оболочек к ней.
Если в качестве программатора использовать другую ардуино - то загрузить в неё скетч ArduinoISP (уже есть в комплекте Arduino IDE). За более подробными иснтрукциями в гугл, статей и информации полно.
По поводу отличия Atmega8-16PU от Atmega8A-PU. Atmega8-16PU более старая версия. По хорошему, надо брать даташиты и смотреть чем отличаются. Возможно различия небольшие: уменьшено потребление, новый тех.процесс и т.д. Погугли, вот например уже спрашивали - http://forum.easyelectronics.ru/viewtopic.php?f=4&t=10278 ; http://vrtp.ru/index.php?showtopic=20528 ; http://forum.primuss3.com/viewtopic.php?f=14&t=213
Ди и вообще, статей в интернете по микроконтроллерам AVR полно. Не зацикливайтесь на этом сайте, тут в основном по платформе Ардуино.