Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Microblaze не стартует из Flash
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Corvus
Коллеги, помогите не сойти с ума. biggrin.gif

Ситуация такая:
Есть плата на Spartan 6 LX100T, SPI Flash и DDR3. Под эту плату был написан проект и стандартный бутлоадер. Он прекрасно работает.
Сделали новую плату, на этот раз на LX150T, память и обвязка без изменений. Проект с первой платы перенесли на новую, из под отладчика он работает. Прицепили старый бутлоадер и тут он не хочет работать.

Симптомы:
- Флэшка по JTAG прошивается, читается, верифицируется.
- Конфигурация ПЛИС загружается (это видно по пользовательским светодиодам, которые управляются аппаратно), DONE выставляется
- Программа Микроблейза не стартует.

Что проверил:
- Flash поменял на Flash с первой платы. Эффект нулевой. На старой плате новая Flash заработала.
- Адресация в XPS в старом и новом проекте совпадает.
- Резисторы на конфигурационных ножках правильные.
- На втором экземпляре новой платы симптомы аналогичны. Так что не брак единичного экземпляра.

Подозреваю, что пропустил что-то очевидное. Но уже не понимаю, куда копать. help.gif
Golikov A.
Программа то из DDR работает?
DDR настроилась, работает правильно? Адреса ДДР не поменялись?
Corvus
Из DDR работает, адреса не изменились. Бутлоадер под отладчиком тоже работает, srec в DDR переписывает, стартует. Всё идеально.
Было подозрение, что криво инициализируются 9K BRAM, добавил ключик к битгену - не помогло.
Придётся прикрутить к бутлоадеру UART, посмотреть, что с ним происходит.
Golikov A.
9K Bram вроде как не умеют инициализироватся. Об этом синтезатор регулярно пишет, там же какая то бага, нет?



Corvus
Цитата(Golikov A. @ Aug 25 2015, 14:40) *
9K Bram вроде как не умеют инициализироватся. Об этом синтезатор регулярно пишет, там же какая то бага, нет?

Вообще, обещают, что поправили, начиная с ise 13.2.
http://www.xilinx.com/support/answers/39999.html
Есть только проблемы при использовании шифрования. В любом случае, добавление этих ключей для мапера и битгена ничего не изменили.
Corvus
Вышел из отпуска и с новыми силами штурмую бутлоадер. biggrin.gif
Прикрутил вывод в терминалку. Бутлоадер зависает на чтение SREC из флэш. Всегда в одном и том же месте.
Самое забавное, что если сначала зашить конфиг с bootloop, а потом через отладчик залить *.elf бутлоадера, то всё идеально работает. Если же прошивать конфиг сразу с elf-ом, то зависает.
help.gifЕсть у кого-нибудь соображения на это счёт?

UPD: Если в Run configuration выбрать "Reset Processor Only", то и под отладчиком зависает ровно так же, как и при старте из флэш. А если выбрать "Reset entire System", то под отладчиком всё работает нормально.
Corvus
Разобрался.
Оказалось, что на банке, к которому присоединена DDR3 одна ножка VREF не подключена. При этом вход HSWAPEN подсоединён к земле. Из-за этого при конфигурации ПЛИС напряжение на неподключенном пине VREF становится равным напряжению питания банка, а не его половине, как должно быть. В результате калибровка контроллера DDR не проходит, и он зависает наглухо.
Подробнее в AR# 36291
http://www.xilinx.com/support/answers/36291.html

Костыль, решающий проблему без переделки платы - держать всю микропроцессорную систему в ресете на этапе конфигурации ПЛИС.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.