Перейти к содержанию
    

Проблемы с прошивкой Spartan 6

Здраствуйе

Есть следующая проблема:

при прошивке 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 - Ничего не помогает.

Поделитесь опытом уважаемые форумчане, как бороться с этой проблемой

 

 

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поигрался с Configuration_Rate, установками Startup_Options - Ничего не помогает.

Поделитесь опытом уважаемые форумчане, как бороться с этой проблемой

Понижали скорость загрузки?

Осциллом смотрели форму импульсов?

BSDL файл обновляли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Понижали скорость загрузки?

Да, я же говорил - менял Configuration_Rate от 2 до 13

> Осциллом смотрели форму импульсов?

Да, форма чистая, нет просадки. Расшифровать не могу - прибор не позволяет

> BSDL файл обновляли?

да

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а сколько на jtag-е у вас висит устройств? один спартан или ещё что-то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как видно из содержания статусного регистра, не установились биты

[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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Резистор 330 Ом с DONE на VCCO_2 есть?

Да. С ним я тоже экспериментировал (пробовал чуть больше - до 1К - безрезультатно)

>Все соответствующие питания присутствуют?

Да, на каждом пине, шум мормальный (так и на EvBoard) - я уже говорил

 

> Как подключён INIT и как он сeбя ведёт ?

Раньше, когда включал PlatformFlash - было 4.7К на Vcc

Сейчас, когда оставил только Спартан, а все снял - 300 на Vcc (как и рекомендовано)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Резистор 330 Ом с DONE на VCCO_2 есть?

Да. С ним я тоже экспериментировал (пробовал чуть больше - до 1К - безрезультатно)

>Все соответствующие питания присутствуют?

Да, на каждом пине, шум мормальный (так и на EvBoard) - я уже говорил

 

> Как подключён INIT и как он сeбя ведёт ?

Раньше, когда включал PlatformFlash - было 4.7К на Vcc

Сейчас, когда оставил только Спартан, а все снял - 300 на Vcc (как и рекомендовано)

 

Спартан что-то потребляет?

Источники на какие токи рассчитаны?

Не проседает питание после "загрузки"?

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

Покупали Спартаны у нормального дистра?

Нет ли каких-то подозрений на перемаркировку, реболлинг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Спартан что-то потребляет?

Потребляет - около 120мА (проверял - в EvBoard где-то столько же)

 

> Источники на какие токи рассчитаны?

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

 

>Не проседает питание после "загрузки"?

Нет, не проседает. Ток меняется в пределах 10мА.

 

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

На трех платах

 

>Покупали Спартаны у нормального дистра?

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

 

>Нет ли каких-то подозрений на перемаркировку, реболлинг?

Да вроде нет. Смотрел на этот предмет - не к чему придраться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>... INIT и как он сeбя ведёт ?

В начальный момент все сигналы подтянуты к питанию

Далее - все падают в "0", инит держится в нуле а на остальных скачут биты.

Всамом конце инит делает несколько тычков и вместе с TDO возвращается в "1". Чуть позже в "1" возвращаются и остальные

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>Попробовать в настройках битгена поменять местами стадии загрузки...

Очень интерестно. А можно поподробнее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас под рукой нету ничего, чтоб скриншоты сделать, поэтому буду на словах. Вот тут: 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 место

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ура товарищи!!! Все заработало. Еще при первых пробах я пытался настраивать параметры генерации файла в 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 которые нужно поменять так, чтобы они были последними в загрузке. И все!!! Вот, оказывается, как просто ларчик открывался то... Всем спасибо за участие. Считаю тему закрытой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И все!!! Вот, оказывается, как просто ларчик открывался то... Всем спасибо за участие. Считаю тему закрытой.

 

..ничего себе, дорогу осилит идущий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...