FTDI Breakout с дополнительным разъемом ISP

12

TL; DR - Можно ли использовать шесть желтых контактов ISP в качестве обычного ISP?


Обычная коммутационная плата USB-TTL FTDI выглядит следующим образом:

USB-TTL FTDI Breakout Board

Недавно я наткнулся на вариант платы, показанный ниже. Однако для чего нужны дополнительные желтые контакты на этой плате? Они помечены провайдером.

Распределительная плата USB-TTL FTDI с ISP

Вот вид сзади:

Разделительная плата USB-TTL FTDI с задней панелью интернет-провайдера

Так могут ли они действительно использоваться в качестве стандартных ISP / ICSP?

AVR-ICSP

Тем не менее, согласно приведенной ниже диаграмме, на которой обозначены эти 6 контактов, я не уверен, что существует достоверная корреляция сигнальных линий.

USB-TTL FTDI Breakout board с провайдером с легендой

То есть будут ли работать CTS для MISO, RI для RST, DSR для SCK и DCD для MOSI? Или именно поэтому требуется специальная версия avrdude, на которую ссылается FT232RL: адаптер TTL USB-Serial 232 -? И ISP? - пост № 6 :

В качестве новой функции доступен 6-контактный заголовок ISP. С его помощью avrdude и avrftdi вы можете программировать загрузчики Atmels и Arduino. Необходима специальная версия avrdude с скомпилированным драйвером FTDI.

Однако предоставленная ссылка на эту версию avrdude с скомпилированным драйвером FTDI устарела.

В посте № 7 также говорится, что эти контакты фактически эквивалентны разъему X3, как это было на старых платах Arduino Dicimila / NG / Duemilanove .

Заголовок X3 на Diecimila

и те, которые (очевидно) могут быть использованы так же, как немного ударил SPI,

Подключение заголовка X3 к заголовку ISP на Diecimila

Следует отметить, что контакты RI, CTS, DCD и DSR (обозначенные RSD) доступны по бокам от оригинальной платы коммутации FTDI. Итак, обеспечивает ли коммутационная плата с заголовком ISP доступ к этим же сигналам с использованием другого заголовка?

Я немного запутался - неужели я только что обдумал это, и эта коммутационная плата - просто заголовок ISP / ICSP и соединитель FTDI, объединенный в одну плату (при использовании с соответствующей версией avrdude)? Или это не обычный заголовок провайдера? Я не могу найти какую-либо конкретную документацию, относящуюся к этому типу секционной доски, как указано в посте № 4 .

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

Greenonline
источник

Ответы:

14

На форуме Arduino есть ветка об этом - у кого-то был похожий вопрос.


Я нашел схему (ниже), которая не для этой платы, однако контакты заголовка помечены так же, как вы нашли, так что это похоже на правду.

Схема платы FTDI

Похоже, что заголовок используется для «режима синхронного сдвига битов», как описано здесь: режимы сдвига битов для FT232R и FT245R (Замечание по применению AN_232R-01, номер документа: FT_000339)


Фактически вы можете сконфигурировать этот заголовок как программиста SPI, как описано, например, в FT232R Bitbang Programmer .


Я сделал тест, поскольку у меня в ящике с запчастями была похожая доска:

Передняя панель FTDI

Он имел положение для 6-контактного разъема, похожего на ваш. Перевернув доску, мы видим, что они были помечены точно так же, как ваша:

FTDI плата назад

Я припаял заголовок (в желтом, чтобы быть последовательным), давая мне это:

Плата FTDI с заголовком

Я добавил белую точку, чтобы обозначить контакт 1 (видимый на краю), чтобы правильно подключить кабель.


Когда я попытался использовать доску, я получил следующее сообщение от avrdude:

avrdude: ошибка: нет libftdi или поддержки libusb. Установите libftdi1 / libusb-1.0 или libftdi / libusb и снова запустите configure / make

Таким образом, это должно было быть скомпилировано с нуля! Я использую Ubuntu 14.04, если вы пытаетесь следовать. :)


Скачать avrdude

Перейти на сайт http://www.nongnu.org/avrdude/

Я скачал версию 6.3 источник: http://download.savannah.gnu.org/releases/avrdude/avrdude-6.3.tar.gz

Установите libusb и libftdi

Перед компиляцией мне пришлось взять libusb и libftdi:

sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libftdi-dev

Скомпилировать avrdude

Теперь мы делаем avrdude после распаковки архива и перехода в его папку:

./configure --enable-libusb --enable-libftdi
make

Найти правильную конфигурацию

Внутри avrdude.confфайла, который поставляется с avrdude, который я обнаружил (после некоторых размышлений), это, кажется, правильная запись:

# see http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
# Note: pins are numbered from 1!
programmer
  id    = "arduino-ft232r";
  desc  = "Arduino: FT232R connected to ISP";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 3;  # CTS X3(1)
  sck   = 5;  # DSR X3(2)
  mosi  = 6;  # DCD X3(3)
  reset = 7;  # RI  X3(4)
;

Сопоставление выводов с числами работает следующим образом ... Из упомянутого выше PDF-файла о режиме битового взрыва мы имеем следующую таблицу с аннотациями синего цвета:

Выводы в режиме Bit Bang

Числа относятся к битовому номеру (то есть в диапазоне от 0 до 7) в байте данных с разделенными битами. Из более ранней схемы видно, что, например, MISO в заголовке ICSP подключен к CTS на FT232RL. Таким образом, MISO - это бит данных 3, который мы сообщаем avrdude в приведенной выше конфигурации. Точно так же SCK - это бит данных 5 и так далее.

Я попытался проверить, как это:

./avrdude -C avrdude.conf -carduino-ft232r -pm328p  -v

Исправить разрешения

Я получил ошибку прав доступа, которая была исправлена ​​путем создания файла в папке с /etc/udev/rules.d/именем 71-FTDI.rules. Внутри это:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666"

Номера могут отличаться для вашей доски. Вам нужно найти поставщика и идентификатор продукта. В Ubuntu вы можете делать lsusbи видеть (среди прочего):

Bus 003 Device 061: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
                       ^^^^ ^^^^

Обратите внимание на два шестнадцатеричных числа, которые копируются в файл правил.

После этого сообщите системе перезагрузить правила:

sudo udevadm control --reload-rules

Затем отключите и снова подключите плату FTDI, чтобы она заметила новые разрешения.

Обнаружение тестовой доски

Наконец, строка выше avrdude работает и читает чип:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD

avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done.  Thank you.

Я подключил мой к ATmega328P.


Пример, связанный с Diavolino

Программирование Atmega328P

Как только мы достигнем этого, вы просто подключите плату FTDI к вашей целевой плате с помощью прямого кабеля.


Резюме

Плата FTDI, которую вы имеете (и ту, что у меня есть), может быть использована в качестве программатора ICSP для микросхем AVR, как описано выше. Таким образом, простая плата может быть как преобразователем USB в последовательный порт, так и программистом ICSP.

Я вижу похожие платы, продающиеся на eBay примерно за 5 долларов, так что это, вероятно, довольно дешевый вариант программирования.

Ник Гаммон
источник
Спасибо Ник. Да, эта тема на форумах Arduino - это та, на которую я ссылался в своем вопросе, но не совсем понятно, как ее использовать, - но она с пользой указывала на заголовочный блог X3. Вторая ссылка, которую вы предоставляете, кажется, расширяет эту тему еще больше, отлично, спасибо. Тем не менее, до сих пор нет блога, специально написанного для этой конкретной доски, что странно.
Greenonline
Я считаю, что если вы сделаете это, вы будете разговаривать с FTDI как USB-устройство и больше не будете использовать API последовательного порта операционной системы, поэтому могут возникнуть дополнительные проблемы установки / драйвера / разрешения в зависимости от того, какую систему вы используете для хостинга Это. Более способные части FTDI FT4232H / FT2232H / FT232H часто используются таким образом, как JTAG-интерфейсы для более продвинутых процессоров.
Крис Страттон
3
Смотрите исправленный ответ. Я получил свою плату, чтобы работать программистом ICSP.
Ник Гэммон
1
Фантастическая, отличная работа. Это документация, за которой я был.
Greenonline