Прошивка Altera usb blaster

Обновлено: 21.11.2024

Я тестировал это на плате Terasic DE4, но теоретически он должен работать с любой платой, которая использует интерфейс USB-Blaster для цепочки JTAG для программирования устройств Altera FPGA, таких как DE2, обычно используемый для обучения.< /p>

Кроме того, Карл Вернхофф также решил ту же проблему: Altera USB-Blaster с Ubuntu 14.04

Инструкции usbfs устарели, поскольку usbfs перестала существовать в ядре Linux с версии 3.5. Я держу их здесь для исторического интереса, а также потому, что руководство по отладке в конце все еще актуально.

Текущие рабочие инструкции можно найти на Arch Linux Wiki: Altera Design Software. Существенный обновленный бит:

Остальные инструкции остаются практически такими же: jtagd должен запускаться от имени пользователя root, чтобы обеспечить достаточные разрешения.

Разрешение доступа без полномочий root к устройству USB-Blaster

Это дает разрешение rw-rw-rw- для устройства. Более правильная конфигурация включает в себя создание группы для устройства, скажем, usbblaster , размещение пользователей в этой группе и определение разрешений для устройства следующим образом:

Обратите внимание, что это не идеально: для USB-Blaster создается несколько записей USB-устройств, и не все будут иметь новые разрешения, поэтому jtagd должен запускаться от имени пользователя root. (см. ниже)

Монтирование файловой системы usbfs

Добавьте следующую запись в /etc/fstab и смонтируйте ее:

нет /proc/bus/usb usbfs по умолчанию 0 0

Вы узнаете, что это хорошо, если /proc/bus/usb/devices появится и выдаст кучу текстовой информации об устройстве при печати.

Обратите внимание, что Ubuntu больше не поставляется с включенным usbfs. Это приводит к более сложным обходным путям, которые вы найдете в Интернете.

Настройка jtagd

Скопируйте описания из вашей установки Quartus в каталог конфигурации jtagd:

mkdir /etc/jtagd
cp /linux/quartus/linux/pgm_parts.txt /etc/jtagd/jtagd.pgm_parts (Обратите внимание на изменение имени!)

Запустите jtagd при загрузке, либо поместив его в систему rc.d, либо просто поместив следующую строку в /etc/rc.local :

Хотя он может быть создан автоматически, вы можете создать пустой файл с именем .jtagd.conf в своем домашнем каталоге. Я слышал, что его можно отредактировать, чтобы внешние хосты могли подключаться и программировать/отлаживать. Это необходимо только в том случае, если вы хотите использовать эту функцию.

Проверка настроек

В качестве окончательного теста подключите свое устройство, запустите dmesg, чтобы узнать, найдено ли устройство USB-Blaster, затем запустите (как обычный пользователь) jtagconfig . Вы должны увидеть вывод, похожий на этот:

Если с разрешениями USB все в порядке, но jtagd запущен не с правами root, вы увидите:

Наконец, если разрешения в порядке и jtagd работает от имени пользователя root, но не может получить доступ к описаниям устройств FPGA, вы увидите следующее:

Программирование устройства FPGA

Теперь вы сможете использовать Programmer в Quartus для загрузки битового потока на целевую FPGA. В качестве альтернативы вы можете использовать следующий сценарий оболочки, чтобы сделать это в командной строке: Назад к элементам дизайна FPGA

Руководство по обновлению прошивки

Этапы обновления:

1. Перед обновлением вам нужно было купить USB Blaster, например, эту или аналогичную модель.
Бластер на 10 долларов США

Вы можете выполнить поиск по ключевому слову "USB-бластер Altera" на ebay, чтобы купить его.
На китайском рынке цена составляет от 3 до 10 долларов США.
Обратите внимание: если ваш ЦАП имеет указанный ниже тип порта обновления, он уже встроен в бластер, вы не хотите покупать бластер для обновления.

3. По завершении установки программного обеспечения Quartus II не открывайте Quartus II, подключите USB Blaster, Windows запросит установку драйвера, выберите драйвер для установки.
Если Windows не запросила установку драйвера, откройте диспетчер устройств Windows, вытащите и вставьте в бластер, появится неизвестное USB-устройство, щелкните его правой кнопкой мыши и выберите обновление драйвера, перейдите по указанному ниже пути.

Путь поиска драйверов: C\altera\12.1\quartus\drivers

Если вы не можете найти нужный путь, загрузите драйвер
Загрузка драйвера Blaster: Драйвер

4. Выключите ЦАП, подключите USB Blaster к ЦАП, затем подключите USB Blaster к компьютеру. (Обратите внимание: если ЦАП был включен, подключите USB Blaster, вы можете повредить микросхему ЦАП и заплатить за замену.)

На некоторых более поздних моделях с указанным ниже портом обновления на задней панели выходные провода бластера правильно подключаются к порту. (Обратите внимание: не нажимайте кнопку в порту обновления при включении ЦАП, это удалит прошивку Amanero USB).

А некоторые более поздние модели с расположенным ниже портом обновления на задней панели имеют встроенный USB-бластер. Пользователь просто подключает USB-кабель к компьютеру и ЦАП.

Если ваш ЦАП без порта обновления на задней панели, вам пришлось открыть верхнюю крышку и подключить бластер к порту обновления внутри. См. ниже руководство по подключению.

Провода USB-бластера имели отвод, подключите его к устройству, как показано на рисунке ниже (отвод находится на стороне, отмеченной метками 1 и 9).

Модель R1

Старые модели R2R7, R2R7HE:


5. Включите ЦАП, откройте программное обеспечение Quartus и выберите «Выполнить автоматическое получение веб-лицензии», затем нажмите «ОК». Во время обновления вы должны поддерживать хорошее подключение к Интернету. Если параметр «Выполнить автоматическое извлечение веб-лицензии» отсутствует, просто запустите программное обеспечение, как показано ниже.

6, нажмите на утюг, как показано ниже.
�@


7, Следуйте инструкциям, как показано ниже. (Если здесь не отображается устройство USB-Blaster, закройте окно «Настройка оборудования», отсоедините кабель USB от компьютера, затем снова вставьте его и снова перейдите к шагу 6. ​​

8. Следуйте инструкциям, чтобы выбрать файл обновления прошивки .jic, как показано ниже. (Обратите внимание, что название прошивки может отличаться от изображения.)
�@

9. Следуйте шагам, указанным ниже. Вы можете увидеть две схемы микросхем в нижнем окне, на микросхемах должно быть указано название модели, например «EPCS4 и EP2C8 или EP4C10». (Если название чипа не отображается, скорее всего, у выходных проводов бластера плохой контакт, вам пришлось отключить ЦАП, потянуть и нажать выходные провода бластера, затем включить ЦАП)

Нажмите «Старт» и подождите одну минуту, пока «Программа» не покажет «Успешно». (Если нажать кнопку «Старт», но отображается сообщение об ошибке, отсоедините USB-кабель бластера от компьютера и снова вставьте его. Если по-прежнему не работает, перейдите к шагу 6. существует.)

10. Выключите ЦАП, отсоедините USB Blaster от ЦАП, затем отключите соединение от компьютера.
Обновление завершено.
Если обновление вызывает шум или искажение звука, подключите бластер и повторите обновление.

Чтобы загрузить новую прошивку на карты MCE, вам необходимо иметь либо Ethernet Blaster, либо USB Blaster, либо ByteBlaster (все доступны в Altera), подключенные к разъему JTAG на передней панели MCE. Что касается программного обеспечения, вам необходимо установить Quartus (см. Установка Quartus II )

(Альтернативный метод заключается в загрузке микропрограммы по оптоволокну без необходимости использования Altera Software/Hardware, эта работа еще не завершена. Но если у вас есть терпение, мы можем помочь вам настроить ее один раз, а затем использовать ее постоянно. )

Содержание

Каждая карта MCE имеет ПЛИС Altera Stratix и устройство настройки. Все карты, за исключением маломощных карт считывания (версия E и выше), имеют конфигурационное устройство EPC16. ПЛИС — это устройства на основе ОЗУ, поэтому при включении они загружают свою прошивку из конфигурационных устройств на основе флэш-памяти.

Чтобы временно загрузить встроенное ПО, используйте файл .sof для прямого программирования Stratix FPGA. Эта прошивка длится только до следующего цикла питания. Чтобы постоянно загружать прошивку, используйте файл .pof для программирования устройств параллельной конфигурации EPC16 или файл .jic для программирования устройства последовательной конфигурации EPCS64 на маломощной считывающей карте.

Прошивку на всех картах можно обновить, подключив Blaster (USB-Blaster, Ethernet Blaster или ByteBlaster) через разъем MCE на передней панели.

Карта часов является исключением, поскольку она имеет два устройства настройки: заводское устройство настройки и устройство настройки приложения. Когда MCE включен, ПЛИС Clock-Card загружается из устройства заводской конфигурации, но затем она может переключиться на прошивку, загруженную в устройство конфигурации приложения, выполнив команду «wb cc app_config 1» в mas. См. следующий раздел, чтобы запрограммировать устройство конфигурации Clock-Card Factory.

  1. Подключите USB Blaster к ПК с установленным программным обеспечением Quartus.
  2. Подсоедините разъем Blaster к разъему MCE на передней панели. Убедитесь, что карта часов включена.
  3. Откройте Quartus II. (Обратите внимание, что в системах Linux вам может потребоваться вызвать Quartus из терминала.Если «quartus» отсутствует в пути, вы можете найти его в /opt/usr/local/lib/altera/10.0/quartus/bin (который можно добавить к пути. Кроме того, вам может потребоваться root для доступа к USB-бластеру, и в этом случае «sudo quartus» (или «sudo /path/to/quartus») должно быть достаточно.
  4. Выберите Инструменты -> Программатор.
  5. Нажмите кнопку "Настройка оборудования".
  6. Выберите USB Blaster в раскрывающемся меню «Выбранное оборудование». Если этот параметр недоступен, нажмите кнопку "Добавить оборудование" и добавьте USB Blaster в список.
  7. Выберите "Закрыть".
  8. Нажмите кнопку "Автоопределение", и через несколько секунд вы увидите список устройств.
  9. На каждой карте MCE указано два устройства, за исключением маломощной карты считывания, которая будет отображаться только как одно устройство. Два верхних устройства соответствуют адресной карте, следующие два устройства соответствуют BC1 и т. д.
  10. Чтобы загрузить временную прошивку, выберите нужное устройство EP1S. Для постоянной загрузки прошивки выберите устройство EPC16. В обоих случаях для карты считывания с низким энергопотреблением выберите устройство EP3S.
  11. Файлы программирования встроенного ПО следует загрузить из репозитория встроенного ПО. Скопируйте файлы из этого репозитория на жесткий диск компьютера для программирования. Во временной прошивке (для устройств EP1S и EP3S) используются файлы .sof. Постоянная прошивка будет иметь расширение .pof (для устройств EPC16) или .jic (для устройств EP3S).
  12. Дважды щелкните запись «Файл», соответствующую устройству, которое вы хотите запрограммировать, и выберите файл для программирования. Для файлов .jic устройство EPCS64 должно автоматически добавляться в список устройств при связывании .jic с устройством EP3S.
  13. Установите флажок в столбце Program/Configure, соответствующем вашему устройству. Для файла .jic установите флажки для EP3S50 и EPCS64.
  14. Выберите "Пуск". Если вы загружаете временную прошивку, это должно занять около 30 секунд, если вы загружаете постоянную прошивку, то это может занять до 10 минут.
  15. Для файлов .sof FPGA автоматически реконфигурируется после завершения программирования. Для файлов .pof или .jic необходимо выключить и снова включить устройство, чтобы загрузить новую прошивку.
  1. Закрыть Quartus
  2. Выключите MCE
  3. Подождите 5 секунд.
  4. Включите MCE
  5. Повторно открыть Quartus

Вы можете запрограммировать MCE удаленно, если у вас есть Ethernet Blaster, поставляемый Altera. Предположим, что EthernetBlaster настроен и подключен к MCE:

  1. В Quartus выберите меню "Инструменты -> Программатор".
  2. Нажмите "Настройка оборудования".
  3. Нажмите "Добавить оборудование".
  4. В раскрывающихся меню выберите/укажите следующую информацию:
  5. Тип оборудования: EthernetBlaster
  6. Порт: ---
  7. Скорость передачи: ---
  8. Имя сервера:
  9. Порт сервера: 1309 — порт сервера 1309 должен быть открыт для Ethernet Blaster.
  10. Пароль сервера:

На удаленной машине с Linux у вас может быть только / может быть только возможность запускать программатор командной строки.

Я начинаю изучать ПЛИС Cyclone IV от Altera, чтобы использовать ее в своих проектах. Сейчас позаимствовал у соседней фирмы реальное устройство с USB Baster Rev.C. Я бы попробовал использовать его вместо оценочной платы, которой у меня пока нет.

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

Однако после того, как я подключил USB Blaster к устройству через JTAG и запустил программатор, я не нашел кнопки "Читать" (как я обычно вижу в графическом интерфейсе программистов AVR):

Краткий поиск в Интернете не помог.

ИЗМЕНИТЬ 1

Похоже, на доске есть дополнительные воспоминания:

Раньше я подключался через X4 (указано большой красной стрелкой).

\$\begingroup\$ Как устройство подключено к своему флэш-чипу? JTAG? Активный серийный номер? Пассивный сериал? Параллельно? \$\конечная группа\$

3 ответа 3

Чтобы прочитать конфигурацию устройства, вам необходимо подключиться к X5 вместо X4 (как указал @Simon Richter). Измените настройки, чтобы они соответствовали показанному ниже:

Нажмите "Пуск", чтобы прочитать конфигурацию. По завершении вы можете задать имя файла, а затем нажать «Сохранить файл», как показано ниже:

\$\begingroup\$ Спасибо за ответ!У меня нет этого устройства, я точно знаю, но AFAIR, когда я подключил USB-B к X5, вообще не смог обнаружить ни одно устройство. Я попробую еще раз более точно в среду и опубликую новый комментарий! Еще раз спасибо за ваш вклад! \$\конечная группа\$

\$\begingroup\$ Просто убедитесь, что у вас установлен режим "Активное последовательное программирование" и что устройство отображается как "EPCS16" -- точно так же, как показано на изображениях выше \$\endgroup\$< /p>

\$\begingroup\$ В каком формате опция «сохранить файл» сохраняет данные проверки. Это .rpd, .sof, .pof, .hex или .jic? EPCS нужен формат .rpd правильно! \$\конечная группа\$

\$\begingroup\$ Он сохраняется как файл .pof, который отлично подходит для EPCS. Однако, если вам нужен другой формат, вы можете сначала сохранить .pof, а затем преобразовать его, используя File->"Convert Programming Files". \$\endgroup\$

Невозможно прочитать текущую конфигурацию.

Если ваша макетная плата подключена к режиму JTAG, как это видно из вашего снимка экрана, то простая запись новой конфигурации обновит только FPGA и оставит конфигурационную флэш-память в покое, поэтому цикл включения перезагрузит флэш-память, и все будет готово. вернуться к тому, что было раньше.

\$\begingroup\$ Это что-то новое для меня, так как я предполагал, что современные микроконтроллеры (по крайней мере, последние 10-15 лет) имеют все на плате: память, вводы-выводы, таймеры и так далее. Поэтому я предположил, что ПЛИС Altera одинаковы. Пожалуйста, смотрите мой РЕДАКТИРОВАТЬ 1 для некоторых разъяснений относительно ваших встречных вопросов. Спасибо за Ваше внимание! \$\конечная группа\$

\$\begingroup\$ FPGA имеет SRAM для таблиц, но содержимое таблиц загружается из внешней флеш-чипы (EPCS. ). Если вы подключаетесь к соединению JTAG (как вы это делаете), вы можете обновить SRAM, которая является энергозависимой. Если вы подключаетесь к последовательной шине на X5, вы можете перезаписать флэш-память, а затем сбросить FPGA с помощью контактов /CS и /CE. \$\конечная группа\$

Я не знаю, можете ли вы через Quartus II прочитать конфигурацию как есть и позволить Quartus II перевести вам в VHDL/Verilog то, что было сохранено в памяти. Одна вещь, которую всегда можно сделать, это прочитать содержимое вашей памяти EPCS с помощью считывателя SPI, сделать весь дамп. Что ж, учитывая объем памяти (>= 16 МБ), вы, скорее всего, создадите ОГРОМНЫЙ файл .hex. В Интернете есть разделители файлов, и пока файл .hex довольно прост, вы можете напрямую прочитать разделенный файл, например, с помощью Notepad ++ или Hexedit (лучшее решение для необработанных файлов). Возможно, 128 КБ каждый отдельный файл или 256 вершин могут быть правильным объемом. Теоретически вам не нужно будет питать всю плату, а только микросхему EPCS. Кстати, возможно, правильно запрограммированный Arduino может создать дамп на внешней карте microSD, если она у вас есть и правильный шилд.

Если это только для копирования/вставки памяти конфигурации, это должно помочь. Я хочу сделать это для своего комплекта DE10-Nano. Хм, у меня есть все необходимое для этого: Arduino, карта памяти, экран, провода. Возможно, скоро попробую.

Читайте также: