Например TDA7294

РадиоКот > Статьи

Компиляция AVRDude для FT232RL BitBang.

Автор: AV_K
Опубликовано 06.04.2017.
Создано при помощи КотоРед.

Как известно – AVRdude (дуда) - популярная консольная программа с открытым исходным кодом для программирования AVR контроллеров. Поддерживает значительное количество программаторов как самодельных так и промышленных, простейших и сложных. От версии к версии разработчики устраняют баги в программе и дополняют поддержкой новых мк и программаторов. На данный момент доступна версия 6.3. Так как программа относится к категории свободного ПО, то модернизировать ее могут и сами разбирающиеся в программировании пользователи или другие разработчики. Как правило исправления и дополнения публикуют в виде патчей (patch-files) с расширением patch или diff, в которых содержатся отличия от оригинальных файлов исходника. Применение этих файлов и есть пропатчивание или патчинг, после которого следует компиляция. Необходимость компиляции avrdude возникла когда хотел применить конвертер USB/UART на FT232RL в качестве хорошо известного BitBang-программатора.

 

Готовая avrdude-6.3 с официального сайта,  а так же дуда из состава Arduino IDE крайней версии , как оказалось, не поддерживают BitBang и предлагают это сделать самим пользователям, установив необходимые библиотеки и скомпилировать.

Ссылки на готовую дуду с поддержкой BitBanga смог найти только для версий 5.8-5.10 5-7-летней давности, поэтому решил собрать avrdude-6.3 самостоятельно. На сайте был обнаружен патч для поддержки BitBanga от Алексея Решетникова, применение которого заменяет библиотеку libusb на ft2xx как более стабильную. Компиляция осуществлялась в известном MinGW. Поскольку все это делалось впервые и познания в программировании весьма скромные, то без “танцев и плясок с бубном” не обошлось. О том как получилось скомпилировать avrdude для BtBanga решил поделиться с теми кому интересен этот процесс.

      Установка MinGW.
 
      1. Скачиваем установщик MinGW и запускаем его.
 
     
      2. Установщик создаст на диске папку MinGW, загрузит и запустит MinGW Installation Manager:

 

3. Отмечаем  ПКМ первые два пункта основных компонентов MinGW и последний из списка. В меню Installation выбираем пункт Apply Changes.  Далее  Apply. Начнётся  загрузка  компонентов.

 

 

4. По окончании загрузки будет сообщение о завершении и загруженные компоненты отметятся зеленым квадратом.  Закрываем Manager.

 

Установка драйверов для FT232RL.

1. Качаем с официального сайта FTDI крайнюю версию драйвера и распаковываем в папку, например: С:/FT232RL_drivers.

2. Втыкаем конвертер (программатор) в USB и  устанавливаем скаченные драйвера для USB Serial Converter   и USB Serial Port . Если драйвера уже установлены – обновляем.

 

 

Подготовка к компиляции.

1. Запускаем оболочку MinGW (C:/MinGW/msys/1.0/msys.bat),  что создаст home директорию: C:/MinGW/msys/1.0/home/[username],

где [username] – папка с именем компьютера.

2. Скачиваем  исходник AVRDude, достаем из архива папку Avrdude-6.3 и помещаем в папкуC:/MinGW/msys/1.0/home/ [username].

3. Скачиваем  патч для FT232, предоставленный Алексеем Решетниковым, распаковываем и помещаем в ту же папку, например:

 

 

4. Копируем файлы из папки драйверов:  ftd2xx.h в папку C:/MinGW/include; i386/ftd2xx.lib в папку С:/MinGW/lib.

Компиляция.

В командной строке MinGw32 пишем  команды и следим за их выполнением . Вводить команды следует внимательно, без ошибок. При ошибочном вводе, компилятор укажет на это, но может и зависнуть, если пропустить какой ни будь символ.  Ранее введенные команды можно выбрать стрелками вверх/вниз и повторить  после исправления.

 

 

cd avrdude-6.3

for file in ../patch-*.diff; do patch –p0 < $file; done # патчинг исходников avrdude

aclocal

autoconf

autoreconf –i –f                     #Устраняет ошибку несоответствия версий libtool

./configure LIBS=”-lftd2xx”

 По окончании конфигурации увидим следующее:

 

 

make                # Выполняется несколько минут         

 

 

По окончании  в папке avrdude-6.3 появятся файлы avrdude.exe и avrdude.conf.

strip avrdude.exe       #удаляет в файле служебные символы, за счет чего уменьшается размер файла раза в 3.

Проверка:

avrdude -v

 

Далее работу BinBanga можно проверить с  подключенным контроллером из какой ни будь оболочки avrdude типа Барномат (Burn-O-Mat ) или Avrdudess. Из списка программаторов выбираем "FT232R Synchronous BitBang". Подключение согласно указанному в конфиге (avrdude.conf):

programmer

  id    = "ft232r";

  desc  = "FT232R Synchronous BitBang";

  type  = "ftdi_syncbb";

  connection_type = usb;

  miso    = 1;  # RxD

  sck       = 0;  # TxD

  mosi    = 2;  # RTS

  reset   = 4;  # DTR

;

где числа – номера портов (0-7 можно менять)регистра ввода/вывода FT232RL. Чтобы после программирования мк использовать UART (Rx и Tx) рекомендуют другое универсальное подключение:

programmer

  id    = "ft232r";

  desc  = "FT232R Synchronous BitBang";

  type  = "ftdi_syncbb";

  connection_type = usb;

  miso    = 6;  # DCD

  sck      = 5;  # DSR

  mosi    = 3;  # CTS

  reset   = 7;  # RI

  buff     =~ 4;  # DTR

;   

Эту запись вставить в конфиг вместо выше приведенной или дополнить с другим именем.

Tx и Rx соединяют с Rx и Tx мк соответственно. Что бы использовать UART после программирования следует передернуть USB или использовать кнопку RESET, подключенную к одноименному выводу FT232RL.

buff – сигнал для буфера (если есть 74HC125 и др.), если используется буфер на 74HC126 или  аналогичный, признак инверсии сигнала “ ~ “  следует удалить.  При использовании буфера линия RESET подключается напрямую к одноименной линии мк, а не через буфер.

Скорость программирования зависит от параметра “ –B “ – период тактирования в мкс. По умолчанию = 100 мкс. Наибольшую скорость записи удалось получить при параметре “ –B 10 “, приблизительно одинаково, что и  при заливке через бутлоадер на скорости 115200 Бд. 30 Кбайт пишется за 12-13 сек.

Далее следует отметить, что после завершения работы с мк, программатор линию RESET оставляет в 0, поэтому запуск мк возможен только после отсоединения этого вывода. Может быть кому то нужно , что бы программатор “отпускал” линию RESET (установил в 1) после  программирования автоматически. Это можно сделать путем доработки исходника  ft245r_ftd2xx.c, который образуется после патчинга в папке Avrdude-6.3. Следует внести пару строк в функцию ftd2xx_disable и продолжить компиляцию:

 

В архиве пропатченная дуда -6.3 не только для BitBanga, но и для ScratchMonkey  программатора на Arduino Nano.

 

Ссылки:

  1. Compiling avrdude with MinGW/MSYS.
  2. Avrdude 5.10 with ftdi bitbang on linux.
  3. http://suz-avr.sblo.jp/article/33907127.html

 

 

 

 

 

 

 

 

 

 

 


Файлы:
Avrdude-BitBang


Все вопросы в Форум.


ID: 2502

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

16 5 6