реклама на сайте
подробности

 
 
> Проблема со Spartan3, Программируется XC3S200
sergeeff
сообщение Dec 14 2006, 12:08
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Получили новую плату, на которой стоит XC3S200. Программируется от процессора в режиме Slave Parallel.
В Xilinx ISE сделали простейший проект - на одну ногу, объявленную как вход - подаем импульсы. Через инвертор транслируем этот сигнал в FPGA на выходной pin. Получаем bin file, грузим его в FPGA (по окончании загрузки получаем сигнал DONE). Смотрим на выходном pin'e - глухо висит "1".

Может есть какие мысли у знатоков Xilinx'a?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BSV
сообщение Jan 19 2007, 17:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Проверьте:
1) PROG в '0' нужно держать не менее 0,3 us
2) После INIT = '1' нужно подождать не менее 0,5 us
3) Частота CCLK не более 20MHz, если битстрим - с компрессией

Проверять INIT после каждого бита бессмысленно, судя по диаграмме в даташите он вообще только в конце программирования проверяется. Так что похоже, что пока Вы туда целиком битстрим не зальете INIT меняться и не будет.

В порте 0x311 можно отдельные биты настраивать на вход и выход?

Что значит - не работает? (зависает? проваливается до конца и не появляется DONE? другое...)

while ((inportb(0x311)&0x04)==1) asm nop;
Если тестируемый вход не примет нужное значение - программа здесь зависнет, желательно предусмотреть выход из этого цикла по таймеру (счетчику).


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 19 2007, 18:45
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(BSV @ Jan 19 2007, 17:37) *
Проверьте:
1) PROG в '0' нужно держать не менее 0,3 us
2) После INIT = '1' нужно подождать не менее 0,5 us
3) Частота CCLK не более 20MHz, если битстрим - с компрессией

Да, все выполняется.

Цитата(BSV @ Jan 19 2007, 17:37) *
Проверять INIT после каждого бита бессмысленно, судя по диаграмме в даташите он вообще только в конце программирования проверяется. Так что похоже, что пока Вы туда целиком битстрим не зальете INIT меняться и не будет.

Диаграмму эту я видел. Но в файле http://www.plis.ru/pic/pict/File/spartan2_rus.pdf написано, что контрольная сумма проверяется в процессе конфигурации. Отсюда и проверка INIT_B.

Цитата(BSV @ Jan 19 2007, 17:37) *
В порте 0x311 можно отдельные биты настраивать на вход и выход?

Да. Оттуда читаются DONE, INIT_B, BUSY

Цитата(BSV @ Jan 19 2007, 17:37) *
Что значит - не работает? (зависает? проваливается до конца и не появляется DONE? другое...)

Если задаю параллельный режим то после загрузки файла прошивки и установки RDWR_B и CS_B в единицу, INIT_B стоит в единице, BUSY возвращается в единицу. А DONE в единице не встает. Т.е. CRC-ошибки вроде бы нет.
Если задаю последовательный режим, то на выходе DOUT(BUSY) всегда единица. Вне зависимости от входных данных.
Начал грешить на вход CLK. Переключил в режим мастер, на CCLK есть тактовая, значит ножка жива.

Цитата(BSV @ Jan 19 2007, 17:37) *
while ((inportb(0x311)&0x04)==1) asm nop;
Если тестируемый вход не примет нужное значение - программа здесь зависнет, желательно предусмотреть выход из этого цикла по таймеру (счетчику).

Это еще отладка, а не боевой вариант программы smile.gif

Может подскажете еще такой вопрос:
В режиме slave parallel в даташите на spartan3 изображено что в микросхему загружаются N+1 байт. Что это означает?
Еще у xilinx есть xapp502. К нему прилагаются исходники для cpld на vhdl, и код на СИ для микроконтроллера. Так в VHDL-коде ножка PROG_B имеет либо Z-состояние, либо в нуле. С чем это может быть связано? Вроде бы это обычная входная нога. Там правда написано, что это для virtex и spartan2.

ps. хотел прицепить рисунок, не получилось. говорят нет прав.
Go to the top of the page
 
+Quote Post
BSV
сообщение Jan 20 2007, 01:13
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Цитата(disel @ Jan 19 2007, 18:45) *
написано, что контрольная сумма проверяется в процессе конфигурации. Отсюда и проверка INIT_B.

Но через каждый бит проверять - это все же чересчур...

Цитата(disel @ Jan 19 2007, 18:45) *
Если задаю параллельный режим то после загрузки файла прошивки и установки RDWR_B и CS_B в единицу, INIT_B стоит в единице, BUSY возвращается в единицу. А DONE в единице не встает. Т.е. CRC-ошибки вроде бы нет.
Если задаю последовательный режим, то на выходе DOUT(BUSY) всегда единица. Вне зависимости от входных данных.
Начал грешить на вход CLK. Переключил в режим мастер, на CCLK есть тактовая, значит ножка жива.

Давайте сначала с одним режимом разберемся - я пользовал только Slave Serial, поэтому его и предлагаю мучать. Итак, зачем Вам проверять состояние DOUT - этот выход вроде используется только при Daisy Chain.

Цитата(disel @ Jan 19 2007, 18:45) *
Может подскажете еще такой вопрос:
В режиме slave parallel в даташите на spartan3 изображено что в микросхему загружаются N+1 байт. Что это означает?

Что-то я там такого не нашел.

Цитата(disel @ Jan 19 2007, 18:45) *
Еще у xilinx есть xapp502. К нему прилагаются исходники для cpld на vhdl, и код на СИ для микроконтроллера. Так в VHDL-коде ножка PROG_B имеет либо Z-состояние, либо в нуле. С чем это может быть связано? Вроде бы это обычная входная нога. Там правда написано, что это для virtex и spartan2.

Все правильно, ставится подтягивающий резистор на питание, а нуль для PROG - активное состояние.
Обратите внимание, что INIT - двунаправленный!!! сигнал, удерживая его в нуле можно задерживать конфигурацию.

Еще про DONE - его фронт после конфигурации должен укладываться в период CCLK, иначе нужно либо уменьшать сопротивление подтягивающего резистора, либо использовать DriveDone "Yes" при генерации битстрима.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergeeff   Проблема со Spartan3   Dec 14 2006, 12:08
- - andrew_b   Вы бы хоть версию ПО указали. Почитайте errata на ...   Dec 14 2006, 13:58
- - makc   Цитата(sergeeff @ Dec 14 2006, 12:08) Пол...   Dec 14 2006, 14:39
- - sergeeff   Попробовал увеличить количество CCLK - ноль эффект...   Dec 14 2006, 15:15
|- - Apast   Была у меня подобная проблема, правда на SLAVE SER...   Dec 14 2006, 16:11
- - sergeeff   ИНтересно. Поглядим в понедельник. Да, убедились, ...   Dec 15 2006, 00:22
|- - makc   Цитата(sergeeff @ Dec 15 2006, 00:22) ИНт...   Dec 15 2006, 08:49
- - makc   Появилось еще одна подробность, которая может отно...   Dec 15 2006, 19:35
- - sergeeff   Интересны дела твои Господи. Я, конечно же, ввел у...   Dec 15 2006, 20:43
|- - makc   Цитата(sergeeff @ Dec 15 2006, 20:43) Инт...   Dec 15 2006, 21:10
- - sergeeff   Все заработало, после того как сделал две вещи: 1....   Dec 18 2006, 12:07
|- - disel   Использую SLAVE PARALLEL режим загрузки прошивки. ...   Jan 18 2007, 15:26
- - RKOB   Недавно сам столкнулся с подобной проблемой: по ок...   Jan 18 2007, 17:42
|- - disel   У меня несколько другая ситуация. Я не могу получи...   Jan 18 2007, 17:58
- - RKOB   А что за битстрим ты грузишь ? У меня один раз был...   Jan 18 2007, 18:17
|- - disel   Цитата(RKOB @ Jan 18 2007, 18:17) А что з...   Jan 18 2007, 19:46
- - BSV   Он не в заголовке, а в самом битстриме. Если неохо...   Jan 19 2007, 00:03
|- - disel   Цитата(BSV @ Jan 19 2007, 00:03) Он не в ...   Jan 19 2007, 10:12
- - RKOB   Я б поделился, но я использую slave serial mode дл...   Jan 19 2007, 10:27
|- - disel   Цитата(RKOB @ Jan 19 2007, 10:27) Я б под...   Jan 19 2007, 11:35
|- - RKOB   [/quote] Я пробовал и serial slave mode, он у меня...   Jan 19 2007, 13:11
|- - disel   Вот как я реализовал Parallel Slave: Код printf...   Jan 19 2007, 15:07
- - BSV   Вот заготовка программы для загрузки в режиме Slav...   Jan 19 2007, 11:54
- - disel   Цитата(BSV @ Jan 20 2007, 01:13) Давайте ...   Jan 20 2007, 09:43
- - BSV   Цитата(disel @ Jan 20 2007, 09:43) DOUT я...   Jan 22 2007, 23:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 08:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016