![]() |
![]() |
|||||||||||||||
Компиляция AVRDude для FT232RL BitBang.
Автор: AV_K Как известно – 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.
Ссылки:
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |