суббота, 17 сентября 2016 г.

AVR-программатор в Linux

Как собрать программатор, как им пользоваться, и пара ошибок.

 Программатор "Пять проводков"



Очень хорошо процесс расписан в этом блокноте:
и подробно описано тут:
http://mehatroniks.com/devices/programmers/9-programmator-iz-5-provodkov-dlya-mikrokontrollerov-avr.html
Описано хорошо, НО если решите шить определите какая схема правильная!!

К сожалению, моей дотошности не хватило на программатор "Пять проводков" и у меня не заработало.

Я столкнулся с проблемой, что при тесте мне пишет вот такое сообщение:
$ avrdude -c dapa -n -p m8

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
Первая мысль проверить наличие LPT в системе. Начать лучше с BIOS.
Далее можно протестировать порт используя светодиод.
http://jumptuck.com/2011/11/14/python-parallel-port-control/ - тут написано как подать сигнал из python на lpt. У меня как и у автора статьи понадобилось потыкать модули ядра:
sudo rmmod lp
sudo modprobe ppdev
После работы с модулями, тест просто сделать в python-shell. Пример для python2 и необходим модуль python-parallel. Светодиод нужно подключить к D0(pin2) и GND(pin18).

import parallel
parPort = parallel.Parallel()
parPort.setData(0x01) #зажечь светодиод
parPort.setData(0x00) #потушить светодиод

 Программатор AVR через Arduino

Тут всё получилось с первого раза. Не смотря на сопельный монтаж, всё заработало и радостно замигало светодиодами. Внимательно идём по пунктам: http://robocraft.ru/blog/3063.html.
Обращаю внимание, что схему программатора подключаем к уже прошитой Ардуино. Скетч "ArduinoISP" идёт в комплекте с IDE.
Тестирование должно выдать -
$ avrdude -c avrisp -P /dev/ttyACM0 -b 19200 -n -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
Это тоже плохо. Скорее всего, при попытках программировать по lpt я испортил fuse-биты.

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

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