Программирование Atmega 1284p.
Многие при сборке 3D принтера испытывают затруднение в
программировании Atmega 1284p. Версии Arduino IDE ниже 1.0 не поддерживают эту
микросхему, а версии 1.0 и выше выдают ошибки при компиляции прошивки. Кто еще
только собирается приобрести комплект электроники, задумайтесь о приобретении Atmega
644p. Свой принтер я собирал с Atmega 644p, но понадобилось собрать пару
комплектов электроники и при покупке компонентов выяснилось, что микроконтроллер Atmega 1284p приобрести легче
(644p менее распространен) да и на сайте RepRap написано, что
микроконтроллеры 644p и 1284p идентичны по пинам и отличаются объемом памяти. Но
на деле оказалось что1284p пока плохо поддерживается средой Arduino IDE . Поиск
в интернете вывел на несколько блогов (один из них здесь), где рассказывалось как люди решали эту
проблему но мне эти варианты не помогли. После 4 дней танцев с бубном мной был
найден выход из сложившейся ситуации, о нем я хочу рассказать.
В первую очередь надо
поставить фьюзы и прошить бутлоадер. У меня программатор СТК200 и бутлоадер в Atmega 644p я прошивал программой
PonyProg, а потом через
Arduino IDE компилировал и прошивал прошивку Marlin. С Atmega 1284p возникли
проблемы уже на первом этапе - PonyProg не поддерживает
Atmega 1284p. Пришлось попробовать подружить свой программатор с Arduino IDE. Ранее мне уже попадалась статья
как это сделать. Оказывается, среда Arduino IDE знает много программаторов с
разным типом подключения. Нужно использовать Arduino1.0 и выше. Тех, у кого программатор СТК200 хочу обратить
внимание, что их там два типа: СТК200 и Pony СТК200. Отличаются они применением в
схеме 8 пина COM порта
После изменения файла programmers.txt получаем:
.
После изменения файла programmers.txt получаем:
.
Далее ставим фьюзы и прошиваем бутлоадер. Перед прошивкой нужно проверить фьюзы в файле arduino\hardware\sanguino\boards.txt. В моем случае кварцевый резонатор и фьюзы: low_fuses=0xFF, high_fuses=0xDC, extended_fuses=0xFD.