ivanoffer 0 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Доброе время суток. Возникла тупиковая ситуация с загрузкой по JTAG. Свои идеи закончились и без помощи не обойтись. Использую XILINX Kintex-7 xc7k325t, плата своя. VIVADO 2015.3. Режим конфигурации по SPI FLASH. Подобная тема здесь обсуждалось, но там JTAG работал. Есть в наличии совершенно другая плата, но с таким же кристаллом и там проблем нет. Правда плата не своя, но это главное инструментарий рабочий. Сам проект выводит постоянный сигнал на светодиод, фактически пустышка. Питание проверял осциллографом - претензий нет (пульсации менее 15мВ), выделенные конфигурационные контакты подключены верно, что проверял ни один раз. В среде Vivado ПЛИС определяется правильно, визуально отображаются все питающие напряжения и температура, и тоже верно. При включении питания стартует режим загрузки по SPI - сигнал такта из ПЛИС, процесс бесконечный, так как флеш пустая. Начинаю загружать ПЛИС по JTAG, сам процесс загрузки идет без ошибок и в конце вижу сообщение о непонятной мне ошибке. Сигнал DONE не поднимается (0,14В) - подтянут к 1,8В резистором 330Ом, до этого был 4,7кОм, но не помогло. Сигнал INIT по окончании загрузки опускается в ноль. Переключал скорость загрузки от 750кГц до 6МГц, результат один. Ниже показаны значения регистров ПЛИС. Что может быть не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 29 апреля, 2017 Опубликовано 29 апреля, 2017 · Жалоба Программатор фирменный? Если китайский, там могут быть чудеса... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 29 апреля, 2017 Опубликовано 29 апреля, 2017 · Жалоба Программатор фирменный? Если китайский, там могут быть чудеса... Программатор родной, рабочий. Не понимаю, что не так. Сигнал INIT падает в ноль и сигнализирует об ошибки конфигурации, но знать бы о какой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 29 апреля, 2017 Опубликовано 29 апреля, 2017 · Жалоба 1. PROGRAM_B в каком состоянии и как подключен? 2. CFGBVS у вас в нуле. Стало бы VCCO <= 1.8в. Так ли это? 3. Уровни JTAG сигналов тоже должны быть не выше напряжения питания VCCO, т.е. 1.8в, если п.2 - правда. 4. Куда ещё подключается DONE, кроме как к подтяжке? Неплохо было бы выложить часть схемы связанной с блоком конфигурации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 30 апреля, 2017 Опубликовано 30 апреля, 2017 · Жалоба Включение загрузки ПЛИС Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 30 апреля, 2017 Опубликовано 30 апреля, 2017 (изменено) · Жалоба 1. Что-то мне подсказывает, что в PROG_B проблема. Стоит проверить то, как ведёт себя супервизор в процессе конфигурации ПЛИС, если по каким-то причинам PROG_B в нуле или дёргается в процессе конфигурации, то битстрим не зальётся нормально. 2. DONE на затвор mosfet-а можно спокойно подключать. Проблемы могли были бы быть с биполярным транзистором. P.S. Извините, но изображение мелковато. Про питание банков понял, но красный текст на микросхеме прочитать не могу даже с оригинала. Что-то там Flash SPI... Изменено 30 апреля, 2017 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 30 апреля, 2017 Опубликовано 30 апреля, 2017 · Жалоба Что-то мне подсказывает, что в PROG_B проблема. Стоит проверить то, как ведёт себя супервизор в процессе конфигурации ПЛИС, если по каким-то причинам PROG_B в нуле или дёргается в процессе конфигурации, то битстрим не зальётся нормально. P.S. Извините, но изображение мелковато. Про питание банков понял, но красный текст на микросхеме прочитать не могу даже с оригинала. Что-то там Flash SPI... Красным в поле ПЛИС указаны значения М0-М2 - для себя. Линия PROG была первой под подозрением - выпаял супервизор, итог тотже. Смотрел осциллографом при загрузке, единица стоит честная все время загрузки. Дополнительно закарачивал PROG на землю, INIT следом отрабатывает чётко за ним. Мне неясно какую информацию несёт переход INIT в ноль по окончании загрузки по JTAG. Ведь это что-то да значит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 30 апреля, 2017 Опубликовано 30 апреля, 2017 (изменено) · Жалоба Мне неясно какую информацию несёт переход 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 файла в среде смотрели? Может там что-то не так настроено? Изменено 30 апреля, 2017 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 30 апреля, 2017 Опубликовано 30 апреля, 2017 · Жалоба 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 файла стандартные, не изменял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 1 мая, 2017 Опубликовано 1 мая, 2017 · Жалоба ..попробуйте посмотреть питание ПЛИС непосредственно при загрузке с jtag-а, где нибудь непосредственно рядом с плисиной на каких-нить блокирующих конденсаторах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 1 мая, 2017 Опубликовано 1 мая, 2017 (изменено) · Жалоба ..попробуйте посмотреть питание ПЛИС непосредственно при загрузке с jtag-а, где нибудь непосредственно рядом с плисиной на каких-нить блокирующих конденсаторах. Смотрел осциллографом в режиме ожидания все напряжения непосредственно на емкостях под ПЛИС - проседания напряжения нет ни в процессе загрузки, ни по ее окончании. Понимаю, что переход INIT в ноль сигнализирует об ошибке CRC, но бит BIT00_CRC_ERROR = 0 (первый пост). Наверняка за поиском глобальной ошибки стоит какая-нибудь детская. Не нравится мне сигнал TDO - может так и должно быть,но если смотреть в XADC Vivado напряжения и температуру, то внутри пакетов данных (проскакивает очень редко) не четкий переход нулей и единиц, а какая-то хрень в форме нарастающей экспоненты по длительности в несколько бит, но это НЕ мешает XADC корректно отображать на экране считанные значения - провалов в данных нет, все ровно. При загрузке потока по JTAG описанной ситуации не вижу. Изменено 1 мая, 2017 пользователем ivanoffer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 1 мая, 2017 Опубликовано 1 мая, 2017 · Жалоба Не нравится мне сигнал TDO - может так и должно быть,но если смотреть в XADC Vivado напряжения и температуру, то внутри пакетов данных (проскакивает очень редко) не четкий переход нулей и единиц, а какая-то хрень в форме нарастающей экспоненты по длительности в несколько бит, но это НЕ мешает XADC корректно отображать на экране считанные значения - провалов в данных нет, все ровно. При загрузке потока по JTAG описанной ситуации не вижу. А вы эту осциллограмму с экспонентой можете показать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 1 мая, 2017 Опубликовано 1 мая, 2017 · Жалоба А вы эту осциллограмму с экспонентой можете показать? Фото сделаю завтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 1 мая, 2017 Опубликовано 1 мая, 2017 · Жалоба Я бы убрал R146, выпаял и закоротил D51, D52, R147. После чего на Vref программирующего разъема подать 1,8В и пробовать. Если заработает - разбираться с D52. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 1 мая, 2017 Опубликовано 1 мая, 2017 · Жалоба Я бы убрал R146, выпаял и закоротил D51, D52, R147. После чего на Vref программирующего разъема подать 1,8В и пробовать. Если заработает - разбираться с D52. Именно так и сделал, когда допекло. Резисторную сборку D52 выпаял и напрямую навесным монтажем подключил выводы ПЛИС на разъем программатора, на него же подал опорные 1,8В и землю. Результат один в один. Вернул все взад. Бред какой-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться