Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB-Blaster: Rev_A vs Rev_B
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
MisterDi
Только начал работать с Циклоном-3, поэтому прошу прощения за возможно дурацкие вопросы.
Вопрос 1 - при загрузке программы (*.elf) в кристалл выдается предупреждение. При этом текст предупреждения прерывается системным сообщением, положение которого по отношению к тексту меняется произвольным образом. Можно было бы не обращать на это вниание, но один и тот же проект на домашнем компе запускается и работает, а на рабочем - даже тестовых сообщений не выводит. Версия Квартуса 8.0, ОС - Win ХР SP3. USB-Blaster FT245+EPM7064+74LVC2T45 самостоятельной сборки на базе информации из соответстующей темы этого форума.
Вопрос 2 - Плата на ЕР3с10е144 нормально работает при загрузке HW/SW через JTAG но при старте от EPCS16 загружает только HW конфигурацию. У меня есть подозрение, что это связанно с 1-м вопросом.
BSACPLD
Чтобы переделать USB-Blaster Rev. A в Rev. B нужно перепрошить EEPROM 93C46. Для этого нужно записать в UserArea фразу "REVB" (без кавычек) с помощью программы EditEEPROM или воспользоваться специализированной утилитой из вложенного архива.
Stewart Little
Цитата(MisterDi @ May 31 2011, 09:34) *
Вопрос 2 - Плата на ЕР3с10е144 нормально работает при загрузке HW/SW через JTAG но при старте от EPCS16 загружает только HW конфигурацию. У меня есть подозрение, что это связанно с 1-м вопросом.

Как у вас организована ниосовская система? Из какой памяти стартует процесcор?
Если используется только встроенное ОЗУ циклона, то после получения elf'а нужно, во-первых, создать соответствующий hex (если он не создается автоматически), и во-вторых перекомпилировать проект в квартусе (точнее, запустить квартусовский ассемблер), чтобы он выходном sof'е инициализировал блок внутреннего ОЗУ соответствующим hex-файлом. При этом нужно убедиться, что соответствующих hex-файл виден в квартусе.
Если используется внешняя память, то нужно залить elf в конфигурационное ПЗУ (следом за HW-конфигурацией) с помощью утилиты FlashProgrammer. При этом нужно выполнить ряд подготовительных процедур - добавить в систему epcs_flash_controller, перенацелить а него вектор сброса процессора и т.п. - см. описание FlashProgrammer'а.
MisterDi
2 BSACPLD: спасибо, попробую, правда у меня стоит FT245R, но думаю разберусь. Собственно больше всего меня настораживает факт, что системное сообщение прерывает предупреждение. Или это связано с тем, что и stdout и stderr в проекте назначены на JTAG-UART? Кроме того загадка почему на разных машинах с примерно одинаковой конфигурацией загрузка проходит по-разному.
2 Stewart Little: В системе стоит SDRAM из которого и работает основная программа. epcs_flash_controller также есть, и вектор сброса указывает на него. Time Quest на тайминги не ругается и тест СДРАМ из внутреннего ОЗУ проходит нормально, но опять-таки только при загрузке из домашнего компа. Кроме того на нормальную работу СДРАМа указывает факт нормальной работы после загрузки через JTAG. На работе даже "hello word" из набортного ОЗУ работать не хочет sad.gif Структура системы - простейшая: процессор, ОЗУ, epcs_flash_controller, JTAG-UART, и кучка регистров ввода-вывода. Собственно на картинке все видно.
Stewart Little
Цитата(MisterDi @ May 31 2011, 14:18) *
Кроме того загадка почему на разных машинах с примерно одинаковой конфигурацией загрузка проходит по-разному.

Версии квартуса и NiosII IDE на работе и дома одни и те же?
Проверьте, нет ли проблем с драйвером бластера на "рабочей" машине.

Цитата(MisterDi @ May 31 2011, 14:18) *
В системе стоит SDRAM из которого и работает основная программа. epcs_flash_controller также есть, и вектор сброса указывает на него. Time Quest на тайминги не ругается и тест СДРАМ из внутреннего ОЗУ проходит нормально, но опять-таки только при загрузке из домашнего компа. На работе даже "hello word" из набортного ОЗУ работать не хочет sad.gif Структура системы - простейшая: процессор, ОЗУ, epcs_flash_controller,

Из вашего поста совершенно непонятно что, куда, и как именно Вы загружаете. К примеру - sof в квартусе, еlf в SDRAM из-под NiosII IDE; или sof+elf в EPCS FlashProgamer'ом, и т.п. - и так для всех случаев на работе/дома.

Цитата(MisterDi @ May 31 2011, 14:18) *
и кучка регистров ввода-вывода.

Ух, какой изврат!
Для таких целей нужно свои периферийные компоненты создавать, а не PIO использовать. Выиграете и в производительности, и в ресурсах.
MisterDi
Версии НИОС ИДЕ и Квартуса на работе и дома одинаковы, запись .sof из Quartus Programmer и на работе и дома проходит успешно без сообщения об ошибках,
Теперь о загрузке. На работе один раз удалось получить запуск программы из-под НИОС-ИДЕ, но чаще всего после вывода предупреждения консоль замирает не выдавая сообщения "nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)" а в некоторых случаях, без какой-либо системы после сообщения терминала через некоторое время пишет "nios2-terminal: exiting due to I/O error communicating with target". Плата ни на что не реагирует.
Дома до вчерашнего вечера перед запуском программы из-под ИДЕ нужно было выполнить запись .sof из Quartus Programmer, чтобы ИДЕ "увидела" плату. Дальше по комманде Run.. все запускалось и работало. Невозможность работы с EPCS оказалась связана с кривыми ручками - непропай земляного вывода ИМС давал возможность программатору верифицировать загруженные данные, но ПЛИС отказывалась их читать во время конфигурации. После устранения непропая при включении платы необходимости загружать .sof из Quartus Programmer нет, ИДЕ видит процессор и нормально грузит программу в СДРАМ и работает. Но из EPCS запускаться не желает sad.gif Настройки Flash Programmer-a на картинке.
Цитата
Ух, какой изврат!
Для таких целей нужно свои периферийные компоненты создавать, а не PIO использовать. Выиграете и в производительности, и в ресурсах.

Понимаю, но пока еще до собственніх компонентов "не созрел". Есть конечно еще один вопрос, но это будет после того, как запустится имеющийся вариант.
Stewart Little
Цитата(MisterDi @ May 31 2011, 15:53) *
Но из EPCS запускаться не желает sad.gif Настройки Flash Programmer-a на картинке.

Тому может быть куча причин. Первое - все-таки непонятно, происходит ли запись elf'а в EPCS FlashProgrammer'ом или нет? Картинка с настройками - это хорошо, но результата не видно.
Я бы начал проверку с настроек bsp (разрешения размещения кода по адресу сброса т.п.).

P.S. Сорри, для Вашей версии софта bsp = system library
Пора переходить на более новые версии.
MisterDi
Кажется таки нашел причину. У меня в одной папке основной проект с использованием СДРАМ для памяти программ и тестовый, у которого для программ используется только набортное ОЗУ. А т.к. процессор для проектов общий, то он был не правильно сгенерен. 01.gif Т.к. на работе проверить пока не получается, уточню вечером.
Цитата
Пора переходить на более новые версии.

Уже стоит Q11, но переводить под него этот проект не хочется, для экономии времени. Следующий проект уже будет в 11 версии. sm.gif
MisterDi
Причину определил верно. После перекомпиляции с правильными настройками проект заработал так, как должен. sm.gif Вопрос по поведению ЮСБ-бластера на рабочем компе наверно буду решать заменой версии Квартуса. Спасибо всем, принимавшим участие.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.