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

Не грузится Kintex-7 по JTAG

Доброе время суток. Возникла тупиковая ситуация с загрузкой по JTAG. Свои идеи закончились и без помощи не обойтись.

Использую XILINX Kintex-7 xc7k325t, плата своя. VIVADO 2015.3. Режим конфигурации по SPI FLASH. Подобная тема здесь обсуждалось,

но там JTAG работал. Есть в наличии совершенно другая плата, но с таким же кристаллом и там проблем нет. Правда плата не своя, но

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

осциллографом - претензий нет (пульсации менее 15мВ), выделенные конфигурационные контакты подключены верно, что проверял

ни один раз. В среде Vivado ПЛИС определяется правильно, визуально отображаются все питающие напряжения и температура, и тоже

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

Начинаю загружать ПЛИС по JTAG, сам процесс загрузки идет без ошибок и в конце вижу сообщение о непонятной мне ошибке.

 

image.png

 

Сигнал DONE не поднимается (0,14В) - подтянут к 1,8В резистором 330Ом, до этого был 4,7кОм, но не помогло.

Сигнал INIT по окончании загрузки опускается в ноль.

Переключал скорость загрузки от 750кГц до 6МГц, результат один.

 

Ниже показаны значения регистров ПЛИС.

 

 

image.jpg

 

 

image.jpg

 

 

image.jpg

 

Что может быть не так?

 

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


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

Программатор фирменный? Если китайский, там могут быть чудеса...

 

Программатор родной, рабочий.

Не понимаю, что не так. Сигнал INIT падает в ноль и сигнализирует об ошибки конфигурации,

но знать бы о какой.

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


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

1. PROGRAM_B в каком состоянии и как подключен?

 

2. CFGBVS у вас в нуле. Стало бы VCCO <= 1.8в. Так ли это?

 

3. Уровни JTAG сигналов тоже должны быть не выше напряжения питания VCCO, т.е. 1.8в, если п.2 - правда.

 

4. Куда ещё подключается DONE, кроме как к подтяжке?

 

Неплохо было бы выложить часть схемы связанной с блоком конфигурации.

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


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

1. Что-то мне подсказывает, что в PROG_B проблема. Стоит проверить то, как ведёт себя супервизор в процессе конфигурации ПЛИС, если по каким-то причинам PROG_B в нуле или дёргается в процессе конфигурации, то битстрим не зальётся нормально.

 

2. DONE на затвор mosfet-а можно спокойно подключать. Проблемы могли были бы быть с биполярным транзистором.

 

P.S. Извините, но изображение мелковато. Про питание банков понял, но красный текст на микросхеме прочитать не могу даже с оригинала. Что-то там Flash SPI...

Изменено пользователем Inanity

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


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

Что-то мне подсказывает, что в PROG_B проблема. Стоит проверить то, как ведёт себя супервизор в процессе конфигурации ПЛИС, если по каким-то причинам PROG_B в нуле или дёргается в процессе конфигурации, то битстрим не зальётся нормально.

 

P.S. Извините, но изображение мелковато. Про питание банков понял, но красный текст на микросхеме прочитать не могу даже с оригинала. Что-то там Flash SPI...

 

Красным в поле ПЛИС указаны значения М0-М2 - для себя. Линия PROG была первой под подозрением - выпаял супервизор, итог тотже. Смотрел осциллографом при загрузке, единица стоит честная все время загрузки. Дополнительно закарачивал PROG на землю, INIT следом отрабатывает чётко за ним. Мне неясно какую информацию

несёт переход INIT в ноль по окончании загрузки по JTAG. Ведь это что-то да значит.

 

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


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

Мне неясно какую информацию несёт переход INIT в ноль по окончании загрузки по JTAG. Ведь это что-то да значит.

 

1. Если INIT_B никто не дёргает (судя по схеме там только подтяжка), то вообще говоря спад указывает на CRC errror:

 

UG470:

>> A falling INIT_B signal during configuration can indicate a CRC error in the bitstream seen by the FPGA device.

 

А что, если у вас по JTAG идут некорректные данные? У вас там какой-то хитрый преобразователь уровней стоит D52. Это что за микросхема? До и после неё нет ничего подозрительного? Она вообще штатно работает?

 

2. Вы говорили, что по JTAG ПЛИС корректно определяется. А, например, тот же XADC открыть в Vivado и почитать температуру ПЛИСины можно?

 

3. Настройки .bit файла в среде смотрели? Может там что-то не так настроено?

Изменено пользователем Inanity

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


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

1. Если INIT_B никто не дёргает (судя по схеме там только подтяжка), то вообще говоря спад указывает на CRC errror:

 

UG470:

>> A falling INIT_B signal during configuration can indicate a CRC error in the bitstream seen by the FPGA device.

 

А что, если у вас по JTAG идут некорректные данные? У вас там какой-то хитрый преобразователь уровней стоит D52. Это что за микросхема? До и после неё нет ничего подозрительного? Она вообще штатно работает?

 

2. Вы говорили, что по JTAG ПЛИС корректно определяется. А, например, тот же XADC открыть в Vivado и почитать температуру ПЛИСины можно?

 

3. Настройки .bit файла в среде смотрели? Может там что-то не так настроено?

 

1. Читал. Init показывает ошибку СRC, но бит ошибки в нуле (первый пост). Преобразователь стандартная логика, решение рабочее на более 200 плат, грешить на него не могу.

2. По jtag в XADC читается температура, напряжения, регистры конфигурации. Психанул и подключился jtag ПЛИС напрямую к загрузчику навесным монтажем, все тоже самое.

3. Настройки .bit файла стандартные, не изменял.

 

 

 

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


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

..попробуйте посмотреть питание ПЛИС непосредственно при загрузке с jtag-а, где нибудь непосредственно рядом с плисиной на каких-нить блокирующих конденсаторах.

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


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

..попробуйте посмотреть питание ПЛИС непосредственно при загрузке с jtag-а, где нибудь непосредственно рядом с плисиной на каких-нить блокирующих конденсаторах.

 

Смотрел осциллографом в режиме ожидания все напряжения непосредственно на емкостях под ПЛИС - проседания напряжения нет ни в процессе загрузки, ни

по ее окончании. Понимаю, что переход INIT в ноль сигнализирует об ошибке CRC, но бит BIT00_CRC_ERROR = 0 (первый пост). Наверняка за поиском глобальной

ошибки стоит какая-нибудь детская. Не нравится мне сигнал TDO - может так и должно быть,но если смотреть в XADC Vivado напряжения и температуру, то внутри пакетов

данных (проскакивает очень редко) не четкий переход нулей и единиц, а какая-то хрень в форме нарастающей экспоненты по длительности в несколько бит, но это НЕ мешает XADC корректно

отображать на экране считанные значения - провалов в данных нет, все ровно. При загрузке потока по JTAG описанной ситуации не вижу.

Изменено пользователем ivanoffer

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


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

Не нравится мне сигнал TDO - может так и должно быть,но если смотреть в XADC Vivado напряжения и температуру, то внутри пакетов

данных (проскакивает очень редко) не четкий переход нулей и единиц, а какая-то хрень в форме нарастающей экспоненты по длительности в несколько бит, но это НЕ мешает XADC корректно

отображать на экране считанные значения - провалов в данных нет, все ровно. При загрузке потока по JTAG описанной ситуации не вижу.

А вы эту осциллограмму с экспонентой можете показать?

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


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

Я бы убрал R146, выпаял и закоротил D51, D52, R147. После чего на Vref программирующего разъема подать 1,8В и пробовать. Если заработает - разбираться с D52.

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


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

Я бы убрал R146, выпаял и закоротил D51, D52, R147. После чего на Vref программирующего разъема подать 1,8В и пробовать. Если заработает - разбираться с D52.

 

Именно так и сделал, когда допекло. Резисторную сборку D52 выпаял и напрямую навесным монтажем подключил выводы ПЛИС на разъем программатора, на него же

подал опорные 1,8В и землю. Результат один в один. Вернул все взад. Бред какой-то.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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