LINUX.ORG.RU

Как подружить AVRDUDE и ft232r под linux


0

1

Имеется программатор на FT232RL пробую для начала через него считывать инфу о мк ATMEGA16 в консоли для этого набираю:

sudo avrdude -c ft245r -p m16 -P /dev/ttyUSB0

в ответ получаю

avrdude: invalid portname '/dev/ttyUSB0': use 'ft[0-9]+'

т.е. порт типа не тот, но

1) порт появляется по указанному пути при подключении именно программатора

lsusb его отображает так:

Bus 001 Device 011: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

2) мк рабочий, программатор тоже, т.к. через него программировал этот мк но под виндой в виртуал боксе, но хочется это делать без запуска vbox

3) если бы ругался при запуске только от пользователя, то можно было бы на права подумать, но то же самое выдаёт при запуске от root

Подскажите пожалуйста что необходимо ещё настроить, в сети в основном по поводу прав записи.

система xubuntu 14.04.3 adm64


Если тебе битбанг не нужен, то тогда не надо опцию -c ft245r ставить, а пользовать FT232 как UART. А если надо битбанг, то надо доставить ещё либ с сайта FTDI и указывать не /dev/ttyUSB0, а ft[0-9]+, как тебе подсказывает программа.

anonymous ()
Ответ на: комментарий от dima81

Как понимаю битбанг - это управление ногами напрямую, пока не нужно, надо вначале с программированием разобраться.

dima81 ()

Попробуй опцию -c ft232r, а не ft245r

curufinwe ★★★★★ ()
Ответ на: комментарий от dima81

Судя по описанию, там программатор, который работает методом bitbang. Ты его собрал сам или получил у кого-то? Если сам собрал, то может быть такая проблема, что ты собрал программатор на китайской подделке микросхемы FTDI, которая умеет не всё. Вообще я рекомендую купить готовый USBASP (с алиэкспресса за 1.5 - 3 бакса заказать можно) - для атмеги хватит и как запас сойдёт, заодно сможешь проверять, всё ли так сделал.

Возможно, информация отсюда тебе может помочь: http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspo...

Quasar ★★★★★ ()
Ответ на: комментарий от Old_Hamster

без патча не заведется

Ты ссылку посвежее не мог найти?

avrdude не умеет ft232rl

Откуда инфа? В курсе что буква «L» в конце обозначает? (datasheet, пункт 1.2.)

Old_Hamster, не слушай его, он похоже не знает о чём говорит. Твой программатор использует битбанг. Ставь либы и всё у тебя будет работать.

Там выше ссылку приводили на изиэлектроникс, там нормально, вроде, расписано. Ещё вот.

Единственное, что твоя FT232R должна быть перепрограммирована для использования битбанга, если ты раньше этого ещё не делал, хотя, если ты говоришь что под вендой пашет, то всё должно быть ок. Указывай для avrdude какой пин чему соответствует и вперёд.

anonymous ()
Ответ на: комментарий от anonymous

Откуда инфа?

Из личного опыта http://i.imgur.com/ly4sx2C.jpg http://i.imgur.com/K6DN0xI.jpg
Теоретики могут пройти в /dev/null

выше ссылку приводили на изиэлектроникс

где пишут о необходимости патчинга avrdude (без ссылок на исходники, только готовый win32 бинарник)

Old_Hamster ★★★ ()
Последнее исправление: Old_Hamster (всего исправлений: 2)
Ответ на: комментарий от Old_Hamster

Из личного опыта

Тогда сорри :)

Теоретики

Ну да. Avrdude'ом не пользовался. У меня просто свой велосипед на этой же микросхеме, поэтому и говорю. А оказывается...

libftdi, которую использует avrdude вместо кошерной libfd2xx, похоже что действительно не умеет в битбанг FT232R. Но это я тоже теоретизирую, исходя из информации на сайте.

Однако, программатор ТС'а всё-таки, похоже, не использует битбанг, судя по схеме на 5-й странице пдф'ки. А avrdude, похоже, как раз использует последовательный порт FT232R для программирования МК через ISP.

Поэтому, ТС'у, видимо, надо просто правильно указать пины и их полярность для avrdude и использовать ft0 вместо /dev/ttyUSB0.

В теории.

anonymous ()
Ответ на: комментарий от anonymous

В винде под виртуалкой проверил, всё работает. Скрин sinaprog прилагаю.

[img]скрин sinaprog[/img]

Old_Hamster Вы пишете, что

надо указать правильно пины.

Для этого взял строки из конфига под виндой и вставил в их в конфиг /etc/averdude.conf

programmer
  id    = "usbbit";
  desc  = "USBBit - simple and fast USB-SPI programmer based on FT232R(L/Q) ( Circuits and Support - http://reddylab.eu/rclab/ )";
  type  = "ftdi_syncbb"; # Добавлено мной
#  type  = ft245r;  изначально включено отключил, т.к. не знает про такое
  connection_type = usb; # Добавлено мной
#			= 0;  # TXD [ 1  PIN FT232RL ]
#			= 1;  # RXD [ 5  PIN FT232RL ]
  sck  		= 2;  # RTS [ 3  PIN FT232RL ]
#  gates  	= 3;  # CTS [ 11 PIN FT232RL ] изначально включено отключил, т.к. ругается на ошибку синтаксиса
  miso		= 4;  # DTR [ 2  PIN FT232RL ] 
  reset   	= 5;  # DSR [ 9  PIN FT232RL ]
  mosi  	= 6;  # DCD [ 10 PIN FT232RL ]
#    	 	= 7;  # RI  [ 6  PIN FT232RL ]
;

Так же Вы писали, что

использовать ft0 вместо /dev/ttyUSB0

Указывал для этого в настройках ft0.

При различных комбинациях получаю (показан один из вариантов):

/usr/bin/avrdude -C /etc/avrdude.conf -p m16 -P ft0 -c ft232r  -U hfuse:r:/tmp/hfuse7895538982568261105.hex:r -U lfuse:r:/tmp/lfuse3495890323898848089.hex:r 

avrdude: Device is not responding to program enable. Check connection.
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude done.  Thank you.

dima81 ()
Ответ на: комментарий от dima81

Забыл написать, что конечно же avr8-burn-o-mat запускаю через sudo.

dima81 ()
Ответ на: комментарий от dima81

gates = 3; # CTS [ 11 PIN FT232RL ] ... ругается на ошибку синтаксиса

Судя по схеме этим пином включается, собственно, «режим программирования».

А если так?

programmer
  id    = "ftdi";
  desc  = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
  type  = serbb;
  reset = ~7; # pin 3 on FT232, тильда переворачивает фазу
  sck   = ~4; # pin 2 on FT232
  mosi  = ~3; # pin 1 on FT232
  miso  = ~8; # pin 11 on FT232
;

Ну или там свои пины подставь. Только мне непонятно, что надо для -P тога подставлять. Если у тебя программатор такой, как в пдф, то P̅R̅O̅G̅ всё-таки надо как-то коротнуть на землю.

anonymous ()
Ответ на: комментарий от dima81

* все ниже написанное справедливо для патченного avrdude

programmer
  id    = "apu2";
  desc  = "APU-2 with 74hc125";
  type  = ft245r;
  miso  = 4;  # выв. 2 ft232rl 
  sck   = 2;  # выв. 3 ft232rl
  mosi  = 6;  # выв. 10 ft232rl
  reset = 5;  # выв. 9 ft232rl
  buff  = ~3; # выв. 11 ft232rl
;

* для непатченного avrdude > 6.0.1 можно попробовать type = ftdi_syncbb; (не проверял)

* avrdude -c apu2 -P ft0 и т.д.

Old_Hamster ★★★ ()
Последнее исправление: Old_Hamster (всего исправлений: 1)
Ответ на: комментарий от Old_Hamster

Заработало )). Огромное спасибо!!!

sudo avrdude -C ~/.avrdude/avrdude.conf -c APU-2 -P ft0 -p m16
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9403
avrdude: safemode: Fuses OK (H:FF, E:D9, L:E4)
avrdude done.  Thank you.

Как я понимаю всё отлично, теперь можно двигаться дальше в изучении программирования мк в linux?

dima81 ()
Ответ на: комментарий от dima81

Может кому из новичков пригодится

programmer
  id    = "APU-2";
  desc  = "FT232RL with 1e9403";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 4;  # выв. 2 ft232rl 
  sck   = 2;  # выв. 3 ft232rl
  mosi  = 6;  # выв. 10 ft232rl
  reset = 5;  # выв. 9 ft232rl
  buff  = ~3; # выв. 11 ft232rl

dima81 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.