Программирование ATMega8-16PU с помощью Arduino UNO

VisualNT
Offline
Зарегистрирован: 27.03.2016

Подскажите пожалуйста, можно ли с помощью рабочей (оригинальной) Arduino UNO с залитым скетчем ArduinoISP прошить чистый контроллер ATMega8-16PU? И вообще, что нужно туда зашить и что нужно знать? Слышал про какие-то фьюзы (но что это - до конца так и не понял). Сначала хочу попробовать прошить Blink с использованием встроенного генератора. Поиском по форуму нашёл только статью: http://arduino.ru/forum/programmirovanie/kak-ozhivit-arduino-atmega8a. Можно ли прошивать контроллер ATMega8-16PU способом, изложенным здесь? Совместимы ли в этом случае ATMega8A и ATMega8-16PU?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

ГУГЛ! AVR фьюзы.

VisualNT
Offline
Зарегистрирован: 27.03.2016

С фьюзами разберусь, главное - как кристалл сам запрограммировать-то? Какая обвязка нужна - видел в даташите, а вот через какой интерфейс программировать - не знаю. Решил в Arduino UNO залить ArduinoISP, но у меня нету для обвязки хороших конденсаторов (для кварца). 

От фьюзов зависит кто будет тактовым генератором?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

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 полно. Не зацикливайтесь на этом сайте, тут в основном по платформе Ардуино.