Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с прошивкой Spartan 6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Linius
Здраствуйе
Есть следующая проблема:
при прошивке Spartan 6 (S6LX75TFGG484) по JTAG прошивка выполняется успешно
(с соотв сообщением в импакте и загоранием диода Done) но не вступает в действие (все ножки остаются в z состоянии).
В консоль вываливается следующее:
-- INFO:iMPACT - Current time: Чт 21. мар 20:08:30 2013
-- PROGRESS_START - Starting Operation.
-- Maximum TCK operating frequency for this device chain: 15000000.
-- Validating chain...
-- Boundary-scan chain validated successfully.
-- '1': Programming device...
-- LCK_cycle = NoWait.
-- LCK cycle: NoWait
-- done.
-- '1': Reading status register contents...
-- [0] CRC ERROR : 0
-- [1] IDCODE ERROR : 0
-- [2] DCM LOCK STATUS : 1
-- [3] GTS_CFG_B STATUS : 0
-- [4] GWE STATUS : 0
-- [5] GHIGH STATUS : 1
-- [6] DECRYPTION ERROR : 0
-- [7] DECRYPTOR ENABLE : 0
-- [8] HSWAPEN PIN : 1
-- [9] MODE PIN M[0] : 1
-- [10] MODE PIN M[1] : 0
-- [11] RESERVED : 0
-- [12] INIT_B PIN : 1
-- [13] DONE PIN : 0
-- [14] SUSPEND STATUS : 0
-- [15] FALLBACK STATUS : 0
-- INFO:iMPACT:2219 - Status register values:
-- INFO:iMPACT - 0010 0100 1100 1000
-- INFO:iMPACT:579 - '1': Completed downloading bit file to device.
-- INFO:iMPACT:188 - '1': Programming completed successfully.
-- LCK_cycle = NoWait.
-- LCK cycle: NoWait
-- INFO:iMPACT - '1': Checking done pin....done.
-- '1': Programmed successfully.
-- PROGRESS_END - End Operation.
-- Elapsed time = 7 sec.

Как видно из содержания статусного регистра, не установились биты
[3] GTS_CFG_B STATUS, [4] GWE STATUS, [13] DONE PIN
(Последний не устанавливается, но при этом ножка DONE_2, как ей и положено, переходит в z состояние, что позволяет зажечься через транзитстор светодиоду).
Как понятно по [3] и [4] все слетает на последнем этапе. Но почему?
Проверено питание (наличие на пинах, шумовая дорожка - все ОК)
Проверена схема подключения (уже упростил до подключения к FPGA только разьема JTAG и вывесил на PROGRAM_B и _ININ_B_2 подтяжки 300 ом к +3.3В).
Поигрался с Configuration_Rate, установками Startup_Options - Ничего не помогает.
Поделитесь опытом уважаемые форумчане, как бороться с этой проблемой







iosifk
Цитата(Linius @ Apr 15 2013, 12:24) *
Поигрался с Configuration_Rate, установками Startup_Options - Ничего не помогает.
Поделитесь опытом уважаемые форумчане, как бороться с этой проблемой

Понижали скорость загрузки?
Осциллом смотрели форму импульсов?
BSDL файл обновляли?
Linius
[quote name='iosifk' date='Apr 15 2013, 10:29' post='1154843']
> Понижали скорость загрузки?
Да, я же говорил - менял Configuration_Rate от 2 до 13
> Осциллом смотрели форму импульсов?
Да, форма чистая, нет просадки. Расшифровать не могу - прибор не позволяет
> BSDL файл обновляли?
да
Mad Makc
а сколько на jtag-е у вас висит устройств? один спартан или ещё что-то?
knk
Как подключён INIT и как он сeбя ведёт ?
Victor®
Цитата(Linius @ Apr 15 2013, 11:24) *
Как видно из содержания статусного регистра, не установились биты
[3] GTS_CFG_B STATUS, [4] GWE STATUS, [13] DONE PIN
(Последний не устанавливается, но при этом ножка DONE_2, как ей и положено, переходит в z состояние, что позволяет зажечься через транзитстор светодиоду).
Как понятно по [3] и [4] все слетает на последнем этапе. Но почему?
Проверено питание (наличие на пинах, шумовая дорожка - все ОК)
Проверена схема подключения (уже упростил до подключения к FPGA только разьема JTAG и вывесил на PROGRAM_B и _ININ_B_2 подтяжки 300 ом к +3.3В).
Поигрался с Configuration_Rate, установками Startup_Options - Ничего не помогает.
Поделитесь опытом уважаемые форумчане, как бороться с этой проблемой


Резистор 330 Ом с DONE на VCCO_2 есть?
Все соответствующие питания присутствуют?

P.S.
Про DONE смотрите тут
http://forums.xilinx.com/t5/Spartan-Family...vices/m-p/80645
Linius
> Резистор 330 Ом с DONE на VCCO_2 есть?
Да. С ним я тоже экспериментировал (пробовал чуть больше - до 1К - безрезультатно)
>Все соответствующие питания присутствуют?
Да, на каждом пине, шум мормальный (так и на EvBoard) - я уже говорил

> Как подключён INIT и как он сeбя ведёт ?
Раньше, когда включал PlatformFlash - было 4.7К на Vcc
Сейчас, когда оставил только Спартан, а все снял - 300 на Vcc (как и рекомендовано)

Victor®
Цитата(Linius @ Apr 17 2013, 21:13) *
> Резистор 330 Ом с DONE на VCCO_2 есть?
Да. С ним я тоже экспериментировал (пробовал чуть больше - до 1К - безрезультатно)
>Все соответствующие питания присутствуют?
Да, на каждом пине, шум мормальный (так и на EvBoard) - я уже говорил

> Как подключён INIT и как он сeбя ведёт ?
Раньше, когда включал PlatformFlash - было 4.7К на Vcc
Сейчас, когда оставил только Спартан, а все снял - 300 на Vcc (как и рекомендовано)


Спартан что-то потребляет?
Источники на какие токи рассчитаны?
Не проседает питание после "загрузки"?
На скольких платах это проявляется?
Покупали Спартаны у нормального дистра?
Нет ли каких-то подозрений на перемаркировку, реболлинг?
Linius
> Спартан что-то потребляет?
Потребляет - около 120мА (проверял - в EvBoard где-то столько же)

> Источники на какие токи рассчитаны?
Расчитаны на 3А каждое питание. Гонялись под нагрузкой - все ОК.

>Не проседает питание после "загрузки"?
Нет, не проседает. Ток меняется в пределах 10мА.

>На скольких платах это проявляется?
На трех платах

>Покупали Спартаны у нормального дистра?
Вроде да - всегда у них берем - вникогда проблем небыло. Я поначалу сам так думал (мол, нарвались на брак). Но сейчас купили для достоверности такие же кристалы у других людей, перепаяли - симптомы те же у всех трех плат.

>Нет ли каких-то подозрений на перемаркировку, реболлинг?
Да вроде нет. Смотрел на этот предмет - не к чему придраться
rsv
Попробовать в настройках битгена поменять местами стадии загрузки. На virtex5 подобное помогало решить одну похожую проблему
Linius
>... INIT и как он сeбя ведёт ?
В начальный момент все сигналы подтянуты к питанию
Далее - все падают в "0", инит держится в нуле а на остальных скачут биты.
Всамом конце инит делает несколько тычков и вместе с TDO возвращается в "1". Чуть позже в "1" возвращаются и остальные
Linius
>Попробовать в настройках битгена поменять местами стадии загрузки...
Очень интерестно. А можно поподробнее?
rsv
Сейчас под рукой нету ничего, чтоб скриншоты сделать, поэтому буду на словах. Вот тут: http://www.xilinx.com/support/documentatio...uides/ug380.pdf На стр. 84 описана startup sequence , состоящая из 7 фаз. Каждая фаза этой последовательности, кроме последней , может быть поменяна местами друг с другом при помощи утилиты bitgen. ( стр 223 тут http://www.xilinx.com/support/documentatio...ref.pdf#page222 или средствами грацического интерфейса ISE) . Можно посмотреть на какой стадии у вас свалилась конфигурация ( в начале обсуждения вы приводили состояние регистра статуса, в нем и видно, какая стадия прошла, а какая нет). Вот, и эту самую стадию попробовать переставить на последнее место. Может заработать, или просто прояснить ситуацию. В нашем случае в цепочке конфигурили три fpga от xilinx, конфигурация проходила у всех ( прям как в вашем случае), а стартовала только последняя ошитая плисина. Это похоже какой-то аппаратный баг. Плисины почему то не могут учуять отпускаэние пина done. Помогла установка стадии release done pin на последнее место, и все стало конфигуриться. По умолчанию эта стадия номер 4, а мы ее переставили на 6 место
Linius
Ура товарищи!!! Все заработало. Еще при первых пробах я пытался настраивать параметры генерации файла в StatUp Options (как я и указывал в первом посте) не зная что оно называется startup sequence (чисто экспериментально - ничего не читая). Перебрал все комбинации цифр опций DONE_cycle, GTS_cycle, GWE_cycle, CLK_cycle, настроек Enable internal DONE pipe и Drive DONE pin high. Но после совета от rsv (Отдельная ему благодарность) - начал копать здесь еще раз. Почитал указанный rsv источник, поэкспериментировал. И оказалось, что если в Property display level установить Adwanced становится доступной закладка Suspend/Wake options. Вот здесь имеются нужные sw_gwe_cycle и sw_gts_cycle которые нужно поменять так, чтобы они были последними в загрузке. И все!!! Вот, оказывается, как просто ларчик открывался то... Всем спасибо за участие. Считаю тему закрытой.
Lmx2315
QUOTE (Linius @ Apr 29 2013, 22:19) *
И все!!! Вот, оказывается, как просто ларчик открывался то... Всем спасибо за участие. Считаю тему закрытой.


..ничего себе, дорогу осилит идущий.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.