среда, 26 февраля 2014 г.


Программирование 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 получаем:
.

Далее ставим фьюзы и прошиваем бутлоадер. Перед прошивкой нужно проверить фьюзы в файле arduino\hardware\sanguino\boards.txt. В моем случае кварцевый резонатор и фьюзы:  low_fuses=0xFF, high_fuses=0xDC, extended_fuses=0xFD.

Выбрать нужную плату:


 Дальше загрузить прошивку, но не через USB, а через тот же программатор:


Иногда программа выдает ошибку верификации, но прошивка работает исправно. Следует отметить, что перед перепрошивкой желательно стирать память полностью во избежание появления ошибок.



Комментариев нет:

Отправить комментарий