Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программирование Spartan 6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Maverick
Есть задача программировать Spartan 6 с помощью внешнего процессора (SPI mode) или с помощью внешней флешки (Atmel AT45DBxxxD) Режим программирования должен переключаться с помощью перемычки.
Была нарисована схема (во вложении), но моя "пятая точка" подсказывает что-то тут не так.
В схеме использовать 2 режима конфигурирования:
Master SPI - конфигурирование ПЛИС из флешки
Slave Serial - конфигурирование ПЛИС процессором

Потом начал разбираться подробнее

Отсюда следует что ссылка, что

Цитата
There is no slave SPI mode. You mean slave serial mode.

Processor should

1. pulse PROG_B low, return to high.

2. wait for INIT_B to go low, then wait for INIT_B to go high

3. send configuration data until DONE goes high (signaling success) or INIT_B goes low (signaling failure).

It is useful for processor to monitor INIT_B signal.


В итоге получается что в моей схеме не хватает сигналов PROG_B и INIT_B для процессора... Или как?

Выводы М1 МО нужны для того чтобы выбирать режим конфигурации
SPI
BPI
JTAG
master or slave

и все?

Прошу помощи... Как правильно должно быть? Любая критика приветствуется...
PS Пока не обращайте внимание если нет на схеме какого-то подтягивающего резистора или конденсатора не хватает - сейчас мне важна суть...
Maksim
А зачем читать про S-3?
надо это читать http://www.xilinx.com/support/documentatio...uides/ug380.pdf
стр.42
Maverick
Цитата(Maksim @ Feb 19 2013, 11:48) *
А зачем читать про S-3?
надо это читать http://www.xilinx.com/support/documentatio...uides/ug380.pdf
стр.42

это я тоже только что нашел...
хотел исправить... Вы опередили... sm.gif
faa
Цитата(Maverick @ Feb 19 2013, 13:36) *
Есть задача программировать Spartan 6 с помощью внешнего процессора (SPI mode) или с помощью внешней флешки (Atmel AT45DBxxxD) Режим программирования должен переключаться с помощью перемычки.

А есть параллельная шина от процессора к ПЛИС?
Вы ж данными как-то обмениваетесь "проц к/от ПЛИС"?
Вот через эту шину и шить, если от процессора. Младший байт шины повесить на правильные ноги ПЛИС,
DONE, PROG и INIT на GPIO проца. Чтобы правильно подключить CSI и CLK - надо знать какой процессор.
Тогда может и внешняя SPI-флешка не нужна будет?
Maverick
Цитата(faa @ Feb 19 2013, 12:11) *
А есть параллельная шина от процессора к ПЛИС?
Вы ж данными как-то обмениваетесь "проц к/от ПЛИС"?
Вот через эту шину и шить, если от процессора. Младший байт шины повесить на правильные ноги ПЛИС,
DONE, PROG и INIT на GPIO проца. Чтобы правильно подключить CSI и CLK - надо знать какой процессор.
Тогда может и внешняя SPI-флешка не нужна будет?

не совсем понял Ваш ответ...
Процессор и ПЛИС связаны по SPI
процессор STM32F4xxRx
Maverick
Всем спасибо ...

Схему нарисовал (RC цепочка - убирается - процессор производит сброс. RC цепочка нужна в случае кнопки)...

Но предложения и замечания выслушаю...
Timmy
На схеме вижу противоречие - если режим выбирается перемычкой, то процессор не видит её положение, если же процессором, то перемычка вроде и не нужна, процессор может сам управлять M0.
Maverick
Вопрос
Можно сделать в схеме (ссылка стр 16 Figure 1-4: SPI Flash Interface Topology и сама схема стр 8) добавить микропроцессор который будет записывать во флешку новую прошивку? Упраление сделать через сигнал CS, затем микропроцессор просто отправляет ПЛИС на переконфигурацию с помощью сигналов Program_B и INIT
Или это не корректное решение?
Bad0512
Цитата(Maverick @ Feb 21 2013, 14:33) *
Вопрос
Можно сделать в схеме (ссылка стр 16 Figure 1-4: SPI Flash Interface Topology и сама схема стр 8) добавить микропроцессор который будет записывать во флешку новую прошивку? Упраление сделать через сигнал CS, затем микропроцессор просто отправляет ПЛИС на переконфигурацию с помощью сигналов Program_B и INIT
Или это не корректное решение?

Практика показывает, что если у вас больше одного девайса в системе, которому нужна уникальная прошивка, то лучше все прошивки держать в одном большом хранилище и собирать в кучу средствами софта, чем городить отдельный интерфейс для прошивки каждого устройства.Как правило этим(загрузкой всего) занимается процессор. Поддерживать и апдейтить такие системы гораздо проще.
Maverick
Цитата(Bad0512 @ Feb 21 2013, 11:53) *
Практика показывает, что если у вас больше одного девайса в системе, которому нужна уникальная прошивка, то лучше все прошивки держать в одном большом хранилище и собирать в кучу средствами софта, чем городить отдельный интерфейс для прошивки каждого устройства.Как правило этим(загрузкой всего) занимается процессор. Поддерживать и апдейтить такие системы гораздо проще.

В Вашем случае процессор прошивает ПЛИС через JTAG напрямую ПЛИС или нет (конфигурационную флеш память ПЛИС)?
PS На схему в первом посте не обращать внимание...
Bad0512
Цитата(Maverick @ Feb 21 2013, 17:41) *
В Вашем случае процессор прошивает ПЛИС через JTAG напрямую ПЛИС или нет (конфигурационную флеш память ПЛИС)?
PS На схему в первом посте не обращать внимание...

Процессор грузится сам (если это возможно) с большой последовательной флэшки.В этой же флэш ке лежит бит стрим для ПЛИС (его можно сжать нехило используя любой открытый алгоритм), а также прошивки для других устройств в системе если они есть.ПЛИС грузится как правило в режиме slave serial , хотя в некоторых случаях выбирают и другие режимы.JTAG плиски пользуется только для отладки так как slave serial проще в реализации.
Apast
Цитата(Bad0512 @ Feb 21 2013, 20:46) *
Процессор грузится сам (если это возможно) с большой последовательной флэшки.В этой же флэш ке лежит бит стрим для ПЛИС (его можно сжать нехило используя любой открытый алгоритм), а также прошивки для других устройств в системе если они есть.ПЛИС грузится как правило в режиме slave serial , хотя в некоторых случаях выбирают и другие режимы.JTAG плиски пользуется только для отладки так как slave serial проще в реализации.

Полностью согласен с Bad0512, так намного универсальней, и более того, если есть нормальный внешний интерфейс, типа USB или
даже UART то можно прошивку грузить через контроллер непосредственно в FPGA.
По схеме, если вы еще не поправили, необходимо завести сигнал CS от AT45... на все т.е. и на XILINX (CSO_B) и на контроллер.
Т.к. многие операции записи чтение заканчиваются имеено по снятию сигнала CS.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.