Программатор для ПЛИС Xilinx на AT90USB162


Понадобился мне программатор для ПЛИС Xilinx. Как оказалось, готовые программаторы достаточно дороги и труднодоступны, а доступных для самостоятельного изготовления программаторов совсем мало. Решил сделать свой программатор, путем соединения трех Open source проектов.

Из доступных для повторения имелись проекты: www.mikrocontroller.net/articles/Xilinx_USB-JTAG-Adapter (копия программатора от Xilinx, довольно сложная и использующая CPLD).
Есть программатор на FT2232H, но у меня не было этой микросхемы.
Есть программатор FPGALink, использующий AT90USB162, которая у меня была (описание программатора на русском).
Этот программатор я собрал, но он не является полноценным программатором, а XSVF player'ом, и соответственно, не поддерживается программами IMPACT и ChipScope.
Есть проект XVCD, использующий FT232. Особенность этого программатора в том, что он использует стандарт плагинов XVC — «Xilinx Virtual Cable», и поддерживается вышеупомянутыми программами.
Однако и FT232 у меня не было, а покупать ее, разводить и делать под нее плату было лень.
Но ведь у меня уже есть программатор FPGALink, и поэтому возникла мысль сделать для него XVC плагин. Однако изучение протокола XVC и протокола FPGALink показало, что команды JTAG в этих проектах передаются по разному.

После этого я обратил внимание на адаптер opendous-jtag, рассчитанный на работу с OpenOCD. В этом адаптере тоже используется контроллер AT90USB162, и протокол связи контроллера с компьютером близок к тому, что требуется XVC. Однако протокол OpenOCD не позволяет передавать по JTAG «сырые» команды, как это нужно XVC. Поэтому мне пришлось написать свой плагин, а для этого объединить исходные коды проектов xvcd (связь с IMPACT), OpenOCD (низкий уровень работы с libusb), opendous-jtag (более высокий уровень работы с адаптером). Прошивка контроллера используется от opendous-jtag, её можно скачать здесь: code.google.com/p/opendous-jtag/downloads/list

Распиновка програматороа:
PORTB.0 — TDI
PORTB.1 — TMS
PORTB.4 — TCK
PORTB.5 — TDO

Получившийся плагин был проверен с IMPACT и ChipScope — работает нормально. Работа проверялась на FPGA xc3s200 (Spartan-3) соединенной последовательно с памятью xcf01. В настройках программ нужно указать использование Cable Plug-in с настройками «xilinx_xvc host=localhost:2542 disableversioncheck=true»

Исходный код, прошивка контроллера, и сама программа, скомпилированная под x86: opendous-jtag-xvc
  • +5
  • 04 апреля 2015, 00:56
  • citizen

Комментарии (6)

RSS свернуть / развернуть
Прошивка контроллера используется от opendous-jtag, её можно скачать здесь: code.google.com/p/opendous-jtag/downloads/list
Гуглкод закрывается. Не думал утащить себе на гитхаб копию репозитория opendous-jtag кнопочкой «Export to GitHub»?
0
  • avatar
  • Vga
  • 04 апреля 2015, 10:46
Думаю, лучше этим самому автору opendous-jtag заняться.
0
Судя по тому, что он его уже лет 5 не трогал — сомнительно.
0
Что, они решили прибить очередной проект?
0
Угу.
0
привет, подскажи, а им можно программировать solaris lm3s? Мож с переделками как?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.