Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan-2E не грузится с XCF01S
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Student Pupkin
Проблемма такая - Spartan-2E и XCF01S. Режим загрузки master serial, схема сделана согласно даташиту, вроде бы все правильно. Для прошивки флэши использую кабель Digilent DL-JTAG-USB. ПЛИС по житагу грузится (проверял). Но с флэши не грузится - постоянно идет CCLK, INIT в единице, DONE в нуле, на выходе флэши данные есть - в смысле сначала есть импульсы около 140 мс, потом ноль с какими-то редкими единицами, потом единица - вроде как похоже...
Или я не правильно заливаю прошивку во флэш, или что-то в схеме....
Поэтому два вопроса:
1. Если кто пользовался этим кабелем - как правильно им флэш прошивать?
Я делал так - создал проект в impact (создание SVF-файла), добавил девайсы (FPGA, XCF в том порядке, в каком они в схеме включены в цепочке JTAG), к флэшке присовокупил файл прошивки (MCS, сделал предварительно в impact), затем выбрал программирование флэшки, затем "завершить запись SVF-файла". Потом запустил Export, нажал там кнопочку (не помню как называется - что-то там про инициализацию), в окошке появились обнаруженные девайсы (ПЛИС и флэш). К флэши присовокупил тот самый SVF-файл, потом кнопочку программирования.
Можно попробовать порыться и найти самопальный LPT-шный кабель и прям из impact прошить, но хочется все же с этим кабелем разобраться...
2. Если дело не в кабеле (или неправильном пользовании прогой для него) - в чем еще может быть проблемма? Ведь init в единице - если бы в прошивке был косяк, то crc бы не сошлась и плис init в ноль бы перевела... Да и CCLK опять же, не пропадает и все тут... После праздников еще раз проверю, что DO от флэши доходит до DIN ПЛИС - пока только такую причину придумал (если на DIN данных нет, значит ПЛИС не схватит синхро-последовательность, значит не начнет чтения конфигурационных данных поэтому CCLK будет вечно - проверю ... но вроде и раньше проверял, ноги не мог перепутать).
Может еще какие-нибудь идеи?
Короче, помогите! help.gif
Student Pupkin
Все еще прошу помощи! help.gif
Вот схема:
Нажмите для просмотра прикрепленного файла
ПЛИС - XC2S50E-6TQ144I. Резисторы подтяжки по 4,7 кОм. Х9 и Х11 ввел, чтобы обходить по цепочке JTAG флэш (на всякий случай, но пока не об этом). Контакты "CCLK" и "DONE" завел еще на I/O (было желание организовать проверку CRC сожержимого конфигурационной флэши). ПЛИС по житагу грузится. От флэши - нет...
Вот сегодня смотрел осциллом (день опять прошел впустую, скоро меня расстреляют):

Это общая картина.
Нажмите для просмотра прикрепленного файла
D0 - "PROGRAM";
D1 - "INIT";
D2 - "DONE";
D3 - "CCLK";
D4 - "DO"/"DIN" (данные битстрима).
В конце картинки DIN остается в единице, INIT - в единице, DONE - в нуле. CCLK продолжает шпарить... И так навечно.

Вот еще начало "загрузки".
Нажмите для просмотра прикрепленного файла
Судя по документу "xapp694 - Reading User Data from Configuration PROM", ПЛИС выделяет в начале битстрима синхронизирующее слово AA995566h. На картинке вроде как похоже...
Вообщем ничего не понимаю. Смотрел осциллом уровни сигналов - все в норме, 3.3В. На ноге DIN у ПЛИС сигнал тоже нормальный, уровень правильный, практически никакого дребезга....
Очень прошу, помогите кто-нибудь!!! Где искать? Может в impacte при подготовке файла прошивики для флэши галку какую хитрую надо ставить?
Спросить больше не у кого.... crying.gif
Boris_TS
Цитата(Student Pupkin @ May 12 2009, 21:34) *
Судя по документу "xapp694 - Reading User Data from Configuration PROM", ПЛИС выделяет в начале битстрима синхронизирующее слово AA995566h. На картинке вроде как похоже...

К.т. никто не отвечает, то начнем гадать. Сам никогда осцилопом не глядел как загружается ПЛИС - всегда работало... Но что-то мне подсказывает, что может быть имеет место BitSwap, попробуйте в каждом байте прошивки поменять местами биты 0->7, 1->6 и т.д. - может поможет ? Для параллельной загрузки приходилось проводить выворачивание битов... Т.к. D0 - это у них старший бит (MSB).

А еще была такая темка Как загрузить ПЛИС с микроконтроллера ?

А чтобы узнать как оно должно быть, можете попробовать "запрограммировать в холостую ПЛИС", т.е. подать на шнурок питание, а остальные ноги никуда не подключать (хотя, могут возникнуть некоторые сложности: например INIT может прийдется зацепить на PROGRAM, а DONE повесить на землю, DIN оставить в воздухе) и заставить ISE программировать ПЛИС в режиме Serial Slave. Тогда Вы увидите, какие сигналы должны быть.
Student Pupkin
Цитата(Boris_TS @ May 13 2009, 00:03) *
Но что-то мне подсказывает, что может быть имеет место BitSwap, попробуйте в каждом байте прошивки поменять местами биты 0->7, 1->6 и т.д. - может поможет ? Для параллельной загрузки приходилось проводить выворачивание битов... Т.к. D0 - это у них старший бит (MSB).

Имеете ввиду покурочить файл *.mcs - файл прошивки для конфигурационной флэш? Если подскажете какую-нибудь утилиту для этого, буду очень признателен. А то я в программировании не очень - так, на уровне "Hello World". laughing.gif
Цитата(Boris_TS @ May 13 2009, 00:03) *

Да вот и беда вся в том, что загрузка ПЛИС от процессора в режиме slave у нас тут отработана. В данном случае решили отказаться, потому как с ПЛИС работает MSP430, в него прошивка не влезет. Поэтому насчет загрузки из флэши в serial master я тут своего рода первооткрыватель. laughing.gif Поэтому и спросить не у кого...
Цитата(Boris_TS @ May 13 2009, 00:03) *
А чтобы узнать как оно должно быть, можете попробовать "запрограммировать в холостую ПЛИС", т.е. подать на шнурок питание, а остальные ноги никуда не подключать (хотя, могут возникнуть некоторые сложности: например INIT может прийдется зацепить на PROGRAM, а DONE повесить на землю, DIN оставить в воздухе) и заставить ISE программировать ПЛИС в режиме Serial Slave. Тогда Вы увидите, какие сигналы должны быть.

Да, мысль дельная. Спасибо. smile.gif Я чего-то и забыл, что шнурок может ПЛИС в режиме slave грузить. Правда придется плату покурочить - думал без насилия обойтись.
Еще вопросик - вы не вкурсе, "Инлайн Групп" как официальный дистрибьютер ксайлинкса тех.поддержку оказывает? Если я им отпишу письмо с моей проблеммой - ответят? Вы сами не пробовали к ним когда-нибудь обращаться? Или они меня пошлют нафиг?
P.S. уже подумываю с зарплаты на свои деньги купить себе Xerxes у стартеркита. Чтоб геморра в будущем меньше было. smile.gif
Boris_TS
Цитата(Student Pupkin @ May 13 2009, 00:57) *
Имеете ввиду покурочить файл *.mcs - файл прошивки для конфигурационной флэш? Если подскажете какую-нибудь утилиту для этого, буду очень признателен. А то я в программировании не очень - так, на уровне "Hello World".

Раньше эти опции были в Impact... Но в ISE 9.2 SP3 с наскоку мне их найти не удалось.

Цитата(Student Pupkin @ May 13 2009, 00:57) *
Да вот и беда вся в том, что загрузка ПЛИС от процессора в режиме slave у нас тут отработана.

Если под Slave имеется ввиду Serial Slave (а не Parallel Slave), то Вы можете и на этой системе поглядеть в том ли порядке у Вас идут биты, ну или со шнурком сравнить.

Цитата(Student Pupkin @ May 13 2009, 00:57) *
Да, мысль дельная. Спасибо. Правда придется плату покурочить - думал без насилия обойтись.

Я же предлагал без кровный вариант, т.е. на кабель подается только питание а PROG закорачивается на INIT (больше они никуда не подключаются), Din так и вообще в воздухе бросить, DONE к земле подключить. Тогда Impact будет думать, что к шнурку подключена ПЛИС, и вывалит правильную последовательность. Вам же остается записать эту последовательность и сравнить с получаемой из PROM.

Цитата(Student Pupkin @ May 13 2009, 00:57) *
Еще вопросик - вы не вкурсе, "Инлайн Групп" как официальный дистрибьютер ксайлинкса тех.поддержку оказывает? Если я им отпишу письмо с моей проблемой - ответят? Вы сами не пробовали к ним когда-нибудь обращаться? Или они меня пошлют нафиг?

Год назад я у них консультировался,.. с переменным успехом - вопрос был сложный, и прямой ответ на него должен был оставить некоторый теневой отпечаток на Spartan-2E/Virtex-E (а точнее на заявленной поддержке выходов LVPECL... которая эмулируется - вот мне и захотелось сэмулировать их на Spartan-3A). А вот сейчас что-то уже 2 недели от них ответа нет на другой хиртый вопрос. Поэтому советую сначала туда позвонить (после 13-00 по Москве, т.к. специалист нужный работал по смещенному графику - поближе к америкосам) и узнать работает ли у них человечек на тех. поддержке, и если да, то уже тогда посылать письмо (но не забыв, как я, поставить галочку о подтверждении получения).

Теоретически, могут быть виноваты еще и опции BitGen (хотя у Вас же грузиться с МК в аналогичном проекте,.. и наверное и опции одинаковы), но на всякий случай перечислю те с которыми более всего проблем:
1. Drive Done Pin High - Enable (т.к. у Вас только 1 ПЛИС, то эта опция очень желательна, несмотря на резистор подтяжки... а при Enable этот резистор можно и выкинуть).
2. FPGA Start-Up Clock - CCLK (если нет своего особого Startup Clock'а).
3. Поставьте минимальную частоту для конфигурирования (хотя, как мне показалась, она уже стоит).

И еще, у Вас же Alilen MSO ? Если да, то поглядите аналоговым щупом, что твориться на ножке DONE - может там всё-таки есть какие-то трепыхания ?
А ножка DONE у Вас переходит в 1 при конфигурировании по JTAG ?
dvladim
Student Pupkin
bb-offtopic.gif А что за осциллограф? bb-offtopic.gif
Student Pupkin
Мда... Нашел таки косяк. Тыкая осциллом в очередной раз, обратил внимание на то, что сигнал CCLK опускается до 1 В, а не до 0... А было все дело в том, что в схеме соединил ногу CCLK с соседней, чтобы после загрузки считывать содержимое конфигурационной флэши. Эта самая соседняя нога по совместительству оказалась DOUT (до загрузки выход принятого битстрима).... Выход на выход... Я дятел!!!
Забавно, что флэш такой клок понимала, а сама ПЛИС в этих условиях грузиться отказывалась.
Boris_TS, спасибо вам за участие. a14.gif
Исправил этот казус, следом повылазило еще куча косяков - мой первый блин комом... laughing.gif

Цитата(dvladim @ May 13 2009, 21:38) *
Student Pupkin
bb-offtopic.gif А что за осциллограф? bb-offtopic.gif

Фирму видите, название модели не знаю. Но не новый. Полоса вроде бы до 200МГц, гигасемплы не помню (да и не запоминал, честно говоря). Есть флопик - картинки на дискету записывать smile.gif .
А что? Почему интересуетесь?
dvladim
Цитата(Student Pupkin @ May 13 2009, 22:06) *
А что? Почему интересуетесь?

Ну мало ли. Может брать что-нибудь будем. И анализатор есть. Удобно. А фирму вижу, модель интересна. Потом поищу: какие характеристики, да сколько стоит, отзывы почитаю.
Student Pupkin
Цитата(dvladim @ May 13 2009, 22:46) *
Ну мало ли. Может брать что-нибудь будем. И анализатор есть. Удобно. А фирму вижу, модель интересна. Потом поищу: какие характеристики, да сколько стоит, отзывы почитаю.

Вряд ли... Модель с производства уже сняли (нам покупали лет 7-8 назад). Отзывы, может, и найдете, а купить вряд ли получится. Так что придется выбирать из нынешних. Набор стандартный - 2 аналоговых канала, 16-канальный логический анализатор, цветной дисплей и USB (у нас - монохромный, флопик и LPT-порт). Штука, конечно, дорогущая... Так что удачи в выборе. wink.gif
Цены для начала на http://www.dipaul.ru гляньте. Они вроде официальный дистрибьютер Agilent Technologies...
Boris_TS
Суть вопроса была такова: Agilent много чего делает, у Вас были картинки данные логическим анализатором (что обычно и использует много ПЛИС'овиков, не заморачиваясь на осциллограф), а мне показалось, что у Вас именно Mixed Signal Oscilloscopes - поэтому я хотел Вас сподвигнуть поглядеть аналоговый сигнал: т.е. убедиться что конфликтов нет и резисторы подтяжки не мешают... Ну всё-таки сподвиг.

Цитата(dvladim @ May 13 2009, 21:46) *
Ну мало ли. Может брать что-нибудь будем. И анализатор есть. Удобно. А фирму вижу, модель интересна. Потом поищу: какие характеристики, да сколько стоит, отзывы почитаю.

Тогда поглядите на Agilent Technologies 6000 Series Oscilloscopes - мне эти машинки понравились... Сам эксплуатирую MSO6104A с внешним БП. Это машинка из разряда дороно, но клёво.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.