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

Почему может не грузиться Kintex из флешки

На здоровой плате засбоил JTAG, возможно проблемы с тем, что СoolRunnerы особо чувствительны к качеству TCK. Но не суть. Это лечится вырубанием всего клока на плате, плата тестовая, никуда не пойдет, не страшно.

 

После нескольких неудачных попыток грузить .bit через JTAG, попробовал считать флешку, тоже сбоило. Несколько раз выключал питание, дергал разъем, потом догадался клок отключить. JTAG заработал. Флешка вроде без ошибок вычитывалась.

Но FPGA не грузилась, на ССLK непрерывный клок, состояние регистра - см. ниже. Конфигурация 4 битная SPI.

 

Перегенерил файл, перешил флешку - та же картина - дает ошибку загрузки после команды грузить из флеш в память. При выключении-включении питания - вечный ССLK

 

Стал смотреть по десятому разу сигналы на ногах флешки - смотрю, нет CCLK - загрузилась после Nного включения питания. Что это было ?

 

 

[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED : 0

[1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION : 0

[2] IPROG_0 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION : 0

[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR : 0

[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR : 0

[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0

[6] WRAP_ERROR_0 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0

[7] HMAC_ERROR_0 - HMAC ERROR : 0

[8] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED : 0

[9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION : 0

[10] IPROG_1 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION : 0

[11] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR : 0

[12] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR : 0

[13] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0

[14] WRAP_ERROR_1 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0

[15] HMAC_ERROR_1 - HMAC ERROR : 0

'5': Reading status register contents...

[0] CRC ERROR : 0

[1] DECRYPTOR ENABLE : 0

[2] PLL LOCK STATUS : 1

[3] DCI MATCH STATUS : 1

[4] END OF STARTUP (EOS) STATUS : 0

[5] GTS_CFG_B STATUS : 0

[6] GWE STATUS : 0

[7] GHIGH STATUS : 0

[8] MODE PIN M[0] : 1

[9] MODE PIN M[1] : 0

[10] MODE PIN M[2] : 0

[11] INIT_B INTERNAL SIGNAL STATUS : 1

[12] INIT_B PIN : 1

[13] DONE INTERNAL SIGNAL STATUS : 0

[14] DONE PIN : 0

[15] IDCODE ERROR : 0

[16] SECURITY ERROR : 0

[17] SYSTEM MONITOR OVER-TEMP ALARM STATUS : 0

[18] CFG STARTUP STATE MACHINE PHASE : 0

[19] CFG STARTUP STATE MACHINE PHASE : 0

[20] CFG STARTUP STATE MACHINE PHASE : 0

[21] RESERVED : 0

[22] RESERVED : 0

[23] RESERVED : 0

[24] RESERVED : 0

[25] CFG BUS WIDTH DETECTION : 0

[26] CFG BUS WIDTH DETECTION : 0

[27] HMAC ERROR : 0

[28] PUDC_B PIN : 0

[29] BAD PACKET ERROR : 0

[30] CFGBVS PIN : 1

[31] RESERVED : 0

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


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

UPD:

 

Проблема связана не с JTAG или еще чем-то, а с состоянием флешки в момент первого обращения - иногда Kintex не находит стартовую последовательность, причем иногда, после "проворота" адресов во флешке таки грузится, иногда, видимо флешка не выполняет команду чтения и все висит до выключения питания.

 

Один раз, но я не уверен что связяано только с состоянием флешки, при попытке обратится к флешке через Impact после проблемы с загрузкой, возникла ошибка типа "неправильный идентификационный код" или что-то похожее. После включния - выключени нормально прошилась.

 

Питание подается строго по очереди 1.0 -> 1.8 -> 3.3, флешка N25 сидит на 3.3. Длина ССLK ~40 мм.

Сейчас вероятность проблем с загрузкой ~10%.

 

В какую сторону смотреть ?

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


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

UPD:

 

Поймал на анализаторе момент, когда прошла "плохая" загрузка. При этом в итоге ПЛИСИНа загрузилась.

 

При нормальной работе идет команда 0b, через какое-то время 6b, потом еще через какое-то время меняется частота клока. При сбое - частота клока не меняется в этом месте.

 

Т.е. похоже, происходит какой-то сбой при переходе в 4 битовый режим.

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


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

Вообще похоже что Power on reset у флешки уже отрабатывает, а питание еще до номинального не доросло. Может питание медленно поднимается?

И еще: когда вы написали, что JTAG отключили и все заработало - я первым делом подумал о разных потенциалах на землях (отсутствии развязки).

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


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

Нет, сбои по JTAG были из за нетерминированного TCK, поставили два резистора и стало стабильно работать. Просто по времени совпало.

 

Я тоже подозреваю питание. Ситуация такая - 3.3 В (и тем более 1 и 1.8 ) полностью в номинале к моменту начала cclk. Но на трансиверы в этот момент подано только 1 V питание, а 1.2 и 1.8 только начинают подниматься и это занимает около 20 мс. Не может происходить сбой из-за этого ?

 

И, похоже, сбоит загрузчик по разному, один раз, кажется, видел залипший в 0 FCS без cclk. Но через JTAG сейчас все грузится без проблем.

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


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

Не знаю как в кинтексе, но в спартане-6 рекомендуют thevenin терминацию на CCLK.

Правда у вас длина CCLK всего 40 мм...

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


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

Тогда в основном бы были ошибки CRC, а тут проблемы всегда в начале, если уже дошло до загрузки собственно данных, то проскакивает. Ну и сигнал я проверял, чистый.

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


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

Level shifter стоит? Если да, то какой?

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


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

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

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

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

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

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

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

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

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

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