Jump to content
    

Altera UsbBlaster на GPIO борды DE10-nano (при помощи OpenOCD)

Здравствуйте, уважаемые коллеги!

Задача передо мной стоит следующая: необходимо организовать прошивку и верификацию прошивок для Альтеровских ПЛИС (Max10 и Cyclone V) с помощью HPS-ного GPIO ПЛИС Cyclone V.

В наличии имеется  плата DE10-nano. И я предположил, что если я установлю на SoC программу OpenOCD, то смогу использовать плату как программатор подключив к ножкам GPIO контакты интерфейса JTAG.

Вопросы возникли такие:

1. Верно ли вообще моё предположение?

2. Если да, то как законфижить данную фичу для OpenOCD. (target; board; interface) ?

OpenOCD я поставил.

В части интерфейса вроде все уже есть в самой проге, но что касается board и target (.cfg).

Пытаюсь курить мануал, но, в силу своей ущербности, мало чего понимаю.

Прошу помочь в данном вопросе.

Share this post


Link to post
Share on other sites

15 минут назад, powerc сказал:

Задача передо мной стоит следующая: необходимо организовать прошивку и верификацию прошивок для Альтеровских ПЛИС (Max10 и Cyclone V) с помощью HPS-ного GPIO ПЛИС Cyclone V.

В наличии имеется  плата DE10-nano. И я предположил, что если я установлю на SoC программу OpenOCD, то смогу использовать плату как программатор подключив к ножкам GPIO контакты интерфейса JTAG..

Можно и не GPIO. Можно внутри ПЛИС Cyclone V сделать контроллер JTAG и он будет дергать выводами сам. А если в нем есть SoC, то можно сделать "проигрыватель" файлов - джам плейер или проигрыватель Стапл. 

На самом деле, этот вопрос не новый. Посмотрите, может проще взять готовый проект на микроконтроллере, а не на ПЛИС...

Share this post


Link to post
Share on other sites

ПЛИС уже заложена в КД, и поправить это, к сожалению теперь довольно трудно.

SoC в ПЛИС есть, и ножки JTAG завели на HPS-часть ПЛИС.

То есть OpenOCD - это вообще не про то, что мне нужно?

 

Quote

джам плейер или проигрыватель Стапл

А вот это крутая идея! Сейчас попробую разобраться с этим!

Edited by powerc

Share this post


Link to post
Share on other sites

Подумайте может "ножки JTAG завели на HPS-часть ПЛИС." может все таки на FPGA - гибкости больше будет

Share this post


Link to post
Share on other sites

Спасибо, Иосиф Григорьевич.

Я глянул проигрыватели. Там разработка закончена уже в 2007 году...

Cyclone V и Max 10 среди поддерживаемых кристаллов нет.

Дела давно минувших дней видимо...

Все еще интересует ответ на вопрос:

Quote

я предположил, что если я установлю на SoC программу OpenOCD, то смогу использовать плату как программатор подключив к ножкам GPIO контакты интерфейса JTAG.

Вопросы возникли такие:

1. Верно ли вообще моё предположение?

Ну и на вопрос под номером 2 тоже хотелось бы...

Ну или вообще методы как можно решить техническую задачу.

Спасибо.

22 minutes ago, Maverick_ said:

Подумайте может "ножки JTAG завели на HPS-часть ПЛИС." может все таки на FPGA - гибкости больше будет

К сожалению, уже подумали...

Нужно просто прошить соседнюю ПЛИС с помощью ножек GPIO HPS-сной части Cyclone V.

Годится ли для этого OpenOCD или м.б. еще какие-то есть подобные проги?

Шить нужно ПЛИС Cyclone V и Max10.

Share this post


Link to post
Share on other sites

8 минут назад, powerc сказал:

Ну или вообще методы как можно решить техническую задачу.

Купить "прошивальщик", работающий по сети готовый фирменный. Такие точно есть...

Взять мини-компьютер готовый или старый ноутбук и к нему по USB прицепить DLP2232. У FTDI драйвера и под JTAG выложены.  Или прицепить любой готовый Альтеровский бластер. 

Можно взять сильно дешевый стартовый набор с микроконтроллером, к которому есть максимально готовый софт и все сделать на нем... Там и нужно только "получи по USB" и через программный автомат состояний - в выводы... А по USB толкать всю последовательность от хоста... Или даже так: стартовый набор, хоть 8-ми битовый, с его СОМ порта - на переходник к USB, ну а оттуда уже в хост...

Share this post


Link to post
Share on other sites

____________________________________

Т.е. , грубо говоря, нужно организовать на Cyclone V SoC программатор для прошивки соседних ПЛИС.

Сигналы с выхода этого "программатора" идут по ножкам GPIO.

Share this post


Link to post
Share on other sites

15 minutes ago, iosifk said:

Купить "прошивальщик", работающий по сети готовый фирменный. Такие точно есть...

Взять мини-компьютер готовый или старый ноутбук и к нему по USB прицепить DLP2232. У FTDI драйвера и под JTAG выложены.  Или прицепить любой готовый Альтеровский бластер. 

Можно взять сильно дешевый стартовый набор с микроконтроллером, к которому есть максимально готовый софт и все сделать на нем... Там и нужно только "получи по USB" и через программный автомат состояний - в выводы... А по USB толкать всю последовательность от хоста... Или даже так: стартовый набор, хоть 8-ми битовый, с его СОМ порта - на переходник к USB, ну а оттуда уже в хост...

Неприемлемо. Т.к. конструкция уже заложена.

Вопрос состоит в том, чтобы в условиях данной уже разработанной схемы реализовать вышеописанный "программатор".

Т.е. вопрос получается сугубо программным... :dash2:

Share this post


Link to post
Share on other sites

2 часа назад, powerc сказал:

Я глянул проигрыватели. Там разработка закончена уже в 2007 году...

Cyclone V и Max 10 среди поддерживаемых кристаллов нет.

Насколько я помню, JAM- или SVF-плееру нет дела до того, какая именно ПЛИС программируется - это определяется jam- или svf-файлом.

А сделать тот же jam (или svf) под пятый циклон или десятый макс Вы можете в квартусе, поддерживающем эти семейства.

Share this post


Link to post
Share on other sites

12 hours ago, StewartLittle said:

Насколько я помню, JAM- или SVF-плееру нет дела до того, какая именно ПЛИС программируется - это определяется jam- или svf-файлом.

А сделать тот же jam (или svf) под пятый циклон или десятый макс Вы можете в квартусе, поддерживающем эти семейства.

Спасибо большое за ответ!

Сегодня попробую, отпишусь по результатам (если, конечно, у меня что-то получится).

Share this post


Link to post
Share on other sites

На бескрайних просторах инета с трудом нашел один единственный исходник jam-player: https://github.com/margro/jam-stapl. Поэтому взял за основу его, и адаптировал под работу с контроллером. Судя по readme ("Jam STAPL Player Version 2.5 README 5/26/2004") исходники не новые (за исключением доработок автора).

И так, мой доработанный загрузчик шьет нормально MAXII, MAX10 10M50SCE144 SRAM, корректно выполняет команды Erase и BlankCheck. Однако флэш 10M50SCE144 шьет не правильно. После прошивки, верификация проходит успешно, но программа не работает. При этом этот же .jam файл штатным загрузчиком Altera прогружается во флэш корректно. И этим же штатным загрузчиком я вижу, что моя загрузка не совпадает с исходным файлом. Других чипов для проверки под рукой пока нет.

Могут ли быть проблемы совместимости у старых jam STAPL с новыми чипами? Может есть какие идеи, как диагностировать ошибку?

Share this post


Link to post
Share on other sites

1 hour ago, umarsohod said:

Исходники - https://marsohod.org/413-mbftdi-sources

Там есть програмка для разбери, можно попробовать адаптировать.

Спасибо. Взял на заметку. Здесь вы не занимаетесь парсингом файлов, а напрямую транслируете JTAG запросы Quartus через сеть. У меня на контроллере есть только UDP и несколько килобайт памяти. Поэтому врядли в моем случае я смогу без серьезной переделки использовать эту связку.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...