Яйцебот 2

 

290312 002

3D принтер "Люмен"

 

lumen sm

3D сканер

 

3dscan

ЧПУ Выжигатель

 

woodburner

Контроллер Lumentino

 

lumentino sm

Заливка бутлоадера

Пришла пора заняться программированием микроконтроллера.

Большинство прошивок для 3D Reprap принтеров написаны на языке Arduino, построенном на Си. Существует одноименная среда разработки, которая позволяет писать программы с использованием большого количества библиотек и заливать их в микроконтроллер. Заливка происходит посредством USB интерфейса вашего устройства. Т.е. отдельный программатор не требуется. Это значительно облегчает процесс отладки принтера. Однако для того, чтобы задействовать процедуру загрузки прошивки в микропроцессор посредством USB, нам надо один раз прошить микроконтроллер, залив в него специальный загрузчик - бутлоадер. И для этого нужен программатор.

Программатор может быть как покупной, так и самодельный.

Придерживайтесь следующей последовательности:

  • Отключите все соединения, включая питание.
  • Вставьте ATMEGA 644 в гнездо, контролируя правильность установки. Небольшая метка на контроллере должна стремиться к центру платы.
  • Подключите свой программатор. Проверьте правильность подключения.
  • Подключите программатор к компьютеру.
  • Подключите коннектор питания к плате, но не включайте.

Для программирования, необходимо настроить программное обеспечение Arduino IDE:

  • Скачайте и установите Arduino IDE.
  • Скачайте и распакуйте Gen7 Arduino IDE Support 2.0 package.
  • Найдите в скачанном архиве каталог Gen7 и скопируйте его в каталог hardware Arduino IDE. Там же лежат инструкции по данной установке.
  • Запустите Arduino IDE.
  • Следуйте в меню Menu - Tools - Board, убедитесь, что добавилось 6 новых пунктов Gen7, отличающихся по модели микроконтроллера и тактовой частоте.

 

для Linux

 

cd hardware/tools
./avrdude -C ./avrdude.conf -c ?  # ищет ваш программатор, напр. "avrispv2" 
### For the ATmega644:
# write fuses
./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644 -P /dev/ttyACM0 \
    -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m
# upload bootloader
./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644 -P /dev/ttyACM0 \
    -B 1 -U flash:w:../Gen7/bootloaders/Gen7/bootloader-<your variant>.hex
# lock the bootloader
# this gives an expected "verification error 0xcf != 0x0f"
> -p atmega644 -P /dev/ttyACM0 \
    -B 1 -U lock:w:0xCF:m
### For the ATmega644P:
# like above, but swap "-p atmega644" with "-p atmega644p"
### For the ATmega1284P:
# like above, but swap "-p atmega644" with "-p atmega1284p"
### For an USB programmer:
# like above, but swap "-P /dev/ttyACM0" with "-P usb" 
				

 

для Windows
Создайте пустой файл create.bat и поместите в него следующие строки:

 

cd hardware\tools\avr\bin 
avrdude -C ..\..\etc\avrdude.conf -c ?  
# ищет ваш программатор, напр. "avrispv2"  
### For the ATmega644: 
# write fuses 
avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \    
-B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m 
# upload bootloader 
avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \     
-B 1 -U flash:w:..\..\..\Gen7\bootloaders\Gen7\bootloader-<your variant>.hex 
# lock the bootloader 
# this gives an expected "verification error 0xcf != 0x0f" 
avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \     
-B 1 -U lock:w:0xCF:m  
### For the ATmega644P: 
# like above, but swap "-p atmega644" with "-p atmega644p" 
### For the ATmega1284P: 
# like above, but swap "-p atmega644" with "-p atmega1284p"
@pause

Далее вам нужно отредактировать данный файл в соответствии с используемым программатором, портом, микропроцессором, прошивкой.
Жирным шрифтом выделены места, которые следует корректировать.

Пример работающего bat-файла для Windows.


После того, как все отредактировано, сохраните файл. Скопируйте его в корневой каталог Arduino IDE.
Включите питание платы микроконтроллера.
Запустите созданный bat-файл. Результатом должен быть запрограммированный бутлоадер. Иногда после заливки прошивки выдается сообщение, что изменены фьюзы, и надо принять решение, оставить так или перезаписать, после чего программа виснет. Просто закройте ее и повторите заново. Обычно со 2-го раза все проходит.

Следующий этап - проверка работы бутлоадера.

 

  • Скачайте тестовую прошивку.
  • Запустите Arduino IDE.
  • Следуйте в меню Menu - Tools - Board, найдите и выберите пункт Gen7 из 6-ти новых пунктов. Выбирайте тот, который подходит вам по модели микроконтроллера и тактовой частоте.
  • Зайдите в меню Menu - Tools - Serial Port, выберите соответствующий порт.
  • Откройте скачанный файл SetupTest.pde.
  • Нажмите кнопку "Upload"

    Через секунду-две вы увидите на темном фоне что-то типа этого:

 

Binary sketch size: 2142 bytes (of a 63488 byte maximum)
					

 

После чего все завершится с надписью "Done uploading" прямо над текстовым полем.

Теперь можно убедиться, что тестовая прошивка работает. Она выполняет несколько действий:

  • Передает по USB порту результат своей работы - откройте Serial monitor, вы должны увидеть соответствующий текст.
  • После 3-4 секунд после запуска, программа устанавливает сигнал PSU активным, мигает несколько раз светодиодом HEATER1, после чего снова выключает PSU. Чтобы светодиод работал, должно быть подключено 12В к схеме управления нагревателями.
  • Данная последовательность будет повторяться каждый раз после нажатия кнопки сброса.

В зависимости от реализации схемы сброса на вашем преобразователе USB-TTL возможно потребуется производить ручной сброс для инициализации процедуры прошивки. Для этого после появления надписи

Binary sketch size: 2142 bytes (of a 63488 byte maximum)
					

нужно кратковременно нажать кнопку "Reset" на плате микроконтроллера. 

Что касается заливки рабочей прошивки. Прошивок разных много, и все они разные. В Люмене используется Teacup.