Easyelectronics.ru

Электроника для всех
Текущее время: 19 ноя 2019, 11:14

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 27 янв 2013, 02:38 
Старожил

Зарегистрирован: 19 ноя 2012, 19:52
Сообщения: 609
Сегодня полдня убил, пытаясь заставить работать avrdude через "-c ft232r" (в Linux). Так ничего не вышло. Но с помщью экстрасенсорики и матюков всё-таки удалось заставить дудку шить через "-c avrftdi" (avrftdi входит в официальный пакет avrdude [1]). Оставлю это здесь, может кому пригодится.

Косяк номер раз. Смотрим стандартный конфиг (/etc/avrdude.conf)
Код:
programmer                                                                                                                                   
  id    = "avrftdi";                                                                                                                         
  desc  = "FT2232D based generic programmer";                                                                                               
  type  = avrftdi;                                                                                                                           
  usbvid     = 0x0403;                                                                                                                       
  usbpid     = 0x6010;                                                                                                                       
  usbvendor  = "";                                                                                                                           
  usbproduct = "";                                                                                                                           
  usbdev     = "A";                                                                                                                         
  usbsn      = "";                                                                                                                           
#ISP-signals - lower ACBUS-Nibble (default)                                                                                                 
  reset  = 4;                                                                                                                               
  sck    = 1;                                                                                                                               
  mosi   = 2;                                                                                                                               
  miso   = 3;   

и ничего не правим. Разработчики avrdude наговнокодили так, что указанные пины (reset = 4, etc.) для avrftdi фиксированы, если их поменять -- работать не будет.

Косяк номер два. Не смотрите, что там написано "ACBUS". Разработчики просто пошутили и на самом деле имели в виду ADBUS.

Косяк номер три. Ликбеза по телепатии достаточно, чтобы понять, что reset это ADBUS3 (а не ADBUS4) и т. д. Разработчики avrdude считают с единицы, а FT2232 -- с нуля.

Соединили [2]. И, наконец,

Косяк номер четыре. При первом запуске avrdude (после втыкания ftdi-программатора) ничего не заработает. avrdude выдаст высокоинформативное сообщение "initialization failed, rc=-1", которое на русском означает, что надо попробовать ещё раз и всё заработает.

P.S. В командной строке к avrdude не надо указывать порт (-P). Он сам найдёт подключенный FTDI чип.

P.S. Чтобы можно было шить без прав рута, можно добавить правила в udev, чтобы FTDI чипы подключались с правами пользователя:
Код:
# VID/PID для FT2232
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", GROUP="users", MODE="0660"


_________________
[1] На ArchLinux придётся пересобрать avrdude самому со стандартным PKGBUILD, только предварительно установив libftdi и libusb. (Ключей, включающих avrftdi в configure я не нашёл; скорее всего он просто проверяет наличие указанных библиотек при компиляции и исключает avrftdi, если их нет. Официальная сборка как раз без avrftdi.)

[2] Я для удобства сделал жгутик для PinBoard.


_________________
UPD. Написал на баг-трекер avrdude. Оперативненько отреагировали. Сказали, что исправят косячные комменты и добавят информацию о том, что пины нельзя переназначать, ибо это связано с особенностью работы с MPSSE.

Также на трекере ArchLinux написал фич-реквест, чтобы официальную сборку делали с libftdi.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 мар 2013, 23:38 
Здравствуйте!

Зарегистрирован: 23 сен 2011, 21:48
Сообщения: 1
Огромное спасибо. Сам потратил четыре часа в попытках заставить его заработать. Я так понимаю, это вы им написали?
http://lists.gnu.org/archive/html/avrdu ... 00058.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 06 мар 2013, 08:04 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6274
Откуда: Челябинск
Надо же, надо попробовать. А если FTDI два? то через какую будет шить? Или канал можно ли там выбрать вообще?

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 06 мар 2013, 21:22 
Старожил

Зарегистрирован: 19 ноя 2012, 19:52
Сообщения: 609
DI HALT писал(а):
А если FTDI два? то через какую будет шить? Или канал можно ли там выбрать вообще?

Насколько я понял, он берёт первый попавшийся чип. Аргумент -P игнорируется, судя по коду.

С пинбордом у меня при включении в системе появляются два ком-порта, при программировании один забирается, второй остаётся.

oxoxonin писал(а):
Я так понимаю, это вы им написали?

Да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 17 мар 2013, 19:45 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 11:58
Сообщения: 679
Откуда: Курган
видать не всегда оно работает %(. gentoo amd64 = avrdude упорно не хочет ничего читать. rc=-1.

upd
шляпа какая-то. все выглядит так, как будто мк ничего не отвечает по линии MOSI. есть у кого-нибудь какие-нибудь мысли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 09 сен 2013, 23:14 
Только пришел

Зарегистрирован: 24 ноя 2011, 14:46
Сообщения: 10
в моей версии дудки
Код:
Version: 5.11.1-1

правила в udev уже прописаны

Но эта сволочь так и не хочет ничего прошивать или читать... Ни через sudo, никак вообще. Не хочется ради прошивки вертаться в винду.

Кто-то где-то говорил про патченную линуховую дудку. Может кто ткнуть ею мне мордой в лицо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 24 сен 2013, 22:01 
Здравствуйте!

Зарегистрирован: 24 сен 2013, 21:56
Сообщения: 3
Если кто-нибудь попадёт в эту тему, пытаясь понять, как прошить контроллер под MacOS, то надо вместо версии 5.11.1 собрать версию из svn командой
Код:
brew install avrdude --HEAD


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 24 сен 2013, 23:20 
Старожил

Зарегистрирован: 19 ноя 2012, 19:52
Сообщения: 609
ACE$
voldmar
Может дело в том, что готовые бинарники, которые вы использовали, были собраны без libftdi, libusb? Надо пересобрать самому и всё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 24 сен 2013, 23:54 
Здравствуйте!

Зарегистрирован: 24 сен 2013, 21:56
Сообщения: 3
caxap с ними, они в формуле в зависимостях написаны


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 02 окт 2013, 00:11 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
В 6.1 добавили комментарий, поправили опечатку в ADBUS, поправили нумерацию пинов. И, главное, работает с первого запуска.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 04 окт 2013, 12:57 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Еще одна интересность в 6.1 (транковая ветка). Можно переопределить пины и это работает. Только в 20 раз медленнее, чем на "стандартных" пинах...

Хм. Чуть погонял, ничего не понял. Запись (причем с проверкой!) очень быстрая. А вот просто чтение гораздо медленнее, чем на "стандартных" пинах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 23 ноя 2013, 22:47 
Здравствуйте!

Зарегистрирован: 23 ноя 2013, 22:38
Сообщения: 4
Доброго здоровья!
Из вышестоящих сообщений я не понял, удалось прошить AVR через FT232RL или получилось через FT2232D ?
Если получилось, то какая аппаратная конфигурация применена? То-есть, какие выводы FT232RL использованы?
С какой версией avrdude получилось? У меня avrdude version 5.11.1.
Если следует обновиться, то можно это делать не пересобирая из исходников?

_________________
Масло подорожало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 04 дек 2013, 21:07 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
voldmar писал(а):
Если кто-нибудь попадёт в эту тему, пытаясь понять, как прошить контроллер под MacOS, то надо вместо версии 5.11.1 собрать версию из svn командой
Код:
brew install avrdude --HEAD

Mac OS X 10.9, не работает :(
Код:
sh-3.2# avrdude -c avrftdi -P /dev/cu.usbserial-5c2B -p atmega8 -U flash:w:main.hex:i
E avrftdi_open(704): Error -5 occured: unable to claim usb device. Make sure the default FTDI driver is not in use

avrdude done.  Thank you.

Кто подскажет куда копать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 дек 2013, 01:24 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Алхимик писал(а):
Кто подскажет куда копать?


ls /dev/tty.* что говорит? Порты создаются? Если да, то sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext сделали?

Правда у меня 10.8.5...

Кстати. Сходу не увидел. Порт то не надо задавать. FTDI сам ищется на usb шине. Только драйвер серийного порта надо выгрузить, как я выше написал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 дек 2013, 06:22 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
Toshik1978 писал(а):
ls /dev/tty.* что говорит? Порты создаются? Если да, то sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext сделали?

Toshik1978, благодарю за быстрый ответ! :)
FTDIUSBSerialDriver.kext выгрузил. Ситуация не поменялась:
Код:
sh-3.2# avrdude -c avrftdi -P /dev/cu.usbserial-5c2B -p atmega8 -U flash:w:main.hex:i
E avrftdi_open(704): Error -5 occured: unable to claim usb device. Make sure the default FTDI driver is not in use

avrdude done.  Thank you.

Порты при подключении PB2 создаются исправно:
tty.usbserial-5c2A
tty.usbserial-5c2B
cu.usbserial-5c2A
cu.usbserial-5c2B

У кого ещё будут мысли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 дек 2013, 12:20 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Раз порты создаются, значит драйвер иначе называется. Портов быть не должно.
Посмотрите какие кексты есть с префиксом FTDI. Возможно я ошибся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 дек 2013, 12:39 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
Toshik1978 писал(а):
Раз порты создаются, значит драйвер иначе называется. Портов быть не должно.
Посмотрите какие кексты есть с префиксом FTDI. Возможно я ошибся.

Кроме этого никаких нет.
Я удалил сам кекст, теперь при подключении РВ2 порты создаются немного с другим названием: tty.usbserial-0000205CA


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 05 дек 2013, 17:36 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Ну вот Вам цитата :)

Цитата:
The VCP driver is provided as part of the kernel in OSX 10.9, therefore no driver installation is required to
create a virtual COM port in Mavericks. If D2XX operation is desired, then the built-in VCP driver must be
disabled before the D2XX driver can be used. To do this, the relevant kext file needs to be renamed by
following the procedure below:

Start a terminal session (Go > Applications > Utilities > Terminal) and copy/paste the following text to
the command prompt:

cd /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins
sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled
sudo touch /System/Library/Extensions

As an alternative, the kextunload command can be used instead of copying the kext directory:

sudo kextunload –b com.apple.driver.AppleUSBFTDI

The kextunload and kextunload commands can be run in any directory.

Reboot the system once the above commands have been executed.


Ссылка на D2XX не важны. Важен механизм.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 06 дек 2013, 14:42 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
Сделал по инструкции, задизейблил AppleUSBFTDI.kext и выкинул FTDIUSBSerialDriver.kext.
Ситуация немного изменилась но не принципиально:
Код:
sh-3.2# avrdude -c avrftdi -p atmega8 -U flash:w:main.hex:i

E avrftdi_program_enable(878): 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.

Может ещё у кого будут идеи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 06 дек 2013, 15:33 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Как раз теперь принципиально изменилось. Это значит, что программатор найден, но не видится чип. Т.е. проблема уже в подключении ftdi к atmega8.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 07 дек 2013, 10:01 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
Toshik1978 писал(а):
Как раз теперь принципиально изменилось. Это значит, что программатор найден, но не видится чип. Т.е. проблема уже в подключении ftdi к atmega8.

Тут как раз всё хорошо.
Под виндой шьёт как миленький.
Скажу больше на макоси стоит Parallels в нём винда - шьёт замечательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 07 дек 2013, 20:33 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Тогда пас. На 10.8.5 все отлично и под макосью, и под vmware.
Навскидку, libusb, libusb1, libftdi1 - все стоит? avrdude с ними собран?

P.S. Как знал, что ну ее, эту 10.9 :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 08 дек 2013, 11:28 
Только пришел

Зарегистрирован: 04 дек 2013, 17:55
Сообщения: 16
Toshik1978 писал(а):

Навскидку, libusb, libusb1, libftdi1 - все стоит? avrdude с ними собран?

Таких библиотек не нашёл.
Я ставил вот этой командой дудку:
Код:
brew install avrdude --HEAD

Разве она не ставит сразу всё?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 08 дек 2013, 13:38 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Честно - не знаю. Я через макпорты работаю. Там по дефолту ничего не ставится. Даже через варианты на дудку не накатывают патчи нужные.
Так что в итоге поставил из портов libusb0, libusb1, libelf. Потом руками с github собрал и поставил libftdi1. И руками собрал из svn и поставил дудку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прошивка AVR с помощью avrdude через F2232 (avrftdi) в Linux
СообщениеДобавлено: 11 дек 2013, 14:20 
Только пришел

Зарегистрирован: 29 сен 2013, 01:54
Сообщения: 23
Вот еще что подумалось. А под виндой как шьете? Дудкой, которую DI HALT выкладывал? Так там пины другие используются. Точно дело не в подключении?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB