И на плате Марсоход2 и на плате Марсоход3 стоит программатор MBFTDI построенный на базе USB чипа FT2232H. Микросхема двухканальная, поэтому программатор позволяет одновременно загружать проекты в ПЛИС через JTAG по одному каналу передачи и по второму каналу организовавать связь с ПЛИС через последовательный COM-порт (до 12Мбит/сек).
В отличии от платы Марсоход2, программатор платы Марсоход3 можно переключить в режим синхронного ФИФО. В этом случае скорость передачи данных через USB между ПЛИС и компьютером может быть существенно выше.
Микросхема FT2232H в режиме синхронного ФИФО требует внешнего чипа 93C46 EEPROM, который должен быть специальным образом запрограммирован. На плате Марсоход3 этот чип есть:
Для программирования чипа EEPROM воспользуемся утилитами компании FTDI: их две, хоть делают они, в общем, одно и то же - это программы MProg и FT_Prog. Первая утилита - более старая. Компания FTDI рекомендует использовать программу FT_PROG. Скачать программы можно бесплатно на сайте FTDI по ссылкам:
- http://www.ftdichip.com/Support/Utilities.htm#MProg
- http://www.ftdichip.com/Support/Utilities.htm#FT_Prog
Итак, подключаем плату Марсоход3 к компьютеру / ноутбуку. Перемычки платы, как обычно, в среднем положении:
Запускаем программу FT_PROG и сканируем UBS шину выбирая пункты меню программы Devices => Scan And Parse. Программа должна обнаружить микросхему памяти FT EEPROM и предлагает записать в нее разные данные и параметры. Обратите внимание, что записывать в микросхему случаные данные нельзя. Если, например, записать в микросхему другие USB Product ID (а по умолчанию здесь стоит 0x6010) или USB Vendor ID (по умолчанию 0x0403), то компьютер просто перестанет распознавать ваше устройство и будет требовать новых драйверов, которых у вас скорее всего нет.
Поэтому, Product ID и Vendor ID не трогаем! Оставляем как есть 0x6010 и 0x403!
Меняем только Hardware Specific опции для канала А и канала В.
Устанавливаем режим "245 FIFO":
Устанавливаем режим драйвера "D2XX Direct":
Теперь заходим в меню Devices => Program и нажимаем в появившемся диалоговом окне кнопку "Program". EEPROM будет прошита с новыми параметрами и теперь программатор MBFTDI может быть использован для передачи данных в режиме синхронного FIFO.
Обратите внимание, что теперь, если выдернуть из платы Марсоход3 USB кабель, а затем вставить, то компьютер уже не обнаружит на USB шине последовательных портов. А ведь раньше их было два... Так и должно быть. Последовательных портов платы Марсоход3 больше нет в диспетчере устройств Windows. Их можно вернуть на место, если опять перепрограммировать EEPROM в исходное состояние, если вернуть опции RS232 UART / Virtual COM port.
Итак, микросхема FT2232H готова к работе в режиме FIFO. В принципе среда Altera Quartus II все еще видит плату и программатор MBFTDI. То есть мы все еще можем загружать проект в ПЛИС.
К сожалению, в режиме FIFO оба канала микросхемы FT2232H оказываются занятыми, поэтому нет простого способа одновременной загрузки / отладки проекта в ПЛИС и передачи данных в ПЛИС.
Теперь, если вам нужен режим синхронного FIFO микросхемы FTDI мы предлагаем другой способ разработки проектов - использование второго дополнительного программатора.
Просто переставим перемычки платы Марсоход3 в крайнее к краю платы положение:
В освободившийся разъем ставим второй программатор MBFTDI:
Теперь плата Марсоход3 подключена двумя кабелями USB к компьютеру или ноутбуку. Компьютер обнаружит два программатора MBFTDI. Один программатор, тот, что встроен на плату, будет использоваться программой передачи данных в ПЛИС или из ПЛИС в режиме синхронного FIFO. А второй, дополнительный, программатор будет использоваться для загрузки проектов и отладки ПЛИС с помощью Altera SignalTap.
Еще ссылки по режиму синхронного ФИФО в микросхемах FTDI:
- AN_130_FT2232H_Used_In_FT245 Synchronous FIFO Mode
- Работа аппаратного USB моста FT2232H в режиме синхронного FIFO
Чуть позже я приведу примеры проектов для платы Марсоход3 использующие режим синхронного FIFO.
Подробнее...