|
Проблема со Spartan3, Программируется XC3S200 |
|
|
|
 |
Ответов
|
Jan 19 2007, 11:35
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(RKOB @ Jan 19 2007, 10:27)  Я б поделился, но я использую slave serial mode для загрузки конфигурации... Вряд ли это тебе поможет?! Я пробовал и serial slave mode, он у меня тоже не работает  , DOUT не возвращает посланные биты в DIN, согласно диаграмме в документации. Поэтому это тоже может быть полезным. Вообще появилось подозрение что ПЛИС, хоть и опускает у меня BUSY и готов принимать данные, но они до него либо не доходят, либо не определяется момент окончания подачи данных. Возможно CCLK внутри не работает. На контакте CCLK есть, проверял осциллографом, тока большого не возникает, нога цела.... но что там внутри - дальше - не понятно.
|
|
|
|
|
Jan 19 2007, 13:11
|

Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 17-03-05
Пользователь №: 3 422

|
[/quote] Я пробовал и serial slave mode, он у меня тоже не работает [/quote] Я те письмецо отправил с примером, посмотри...
|
|
|
|
|
Jan 19 2007, 15:07
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Вот как я реализовал Parallel Slave: Код printf("init\n"); outportb(0x311,0xFF); outportb(0x311,0xF7); // PROG_B -> 0 while ((inportb(0x311)&0x04)==1) asm nop; // INIT_B -> 0 ? outportb(0x311,0xFF); // PROG_B -> 1 while ((inportb(0x311)&0x04)==0) asm nop; // INIT_B -> 1 ?
outportb(0x311,0xFD); // RDWR_B -> 0 outportb(0x311,0xF9); // CS_B -> 0
while ((inportb(0x311)&0x01)==1) { // BUSY -> 0 ? outportb(0x311,0xF8); // CLK ->0 outportb(0x311,0xF9); // CLK ->1 printf("BUSY!\x8\x8\x8\x8\x8"); asm nop; }
printf("writing\n"); for(i=0;i<100;i++){ outportb(0x310,0xAA); //DATA outportb(0x311,0xF8); // CLK ->0 outportb(0x311,0xF9); // CLK ->1
if ((inportb(0x311)&0x4)==0) printf("CRC error!"); }
outportb(0x311,0xFD); // CS_B -> 1 outportb(0x311,0xFF); // RDWR_B -> 1 printf("start-up\n"); for(i=0;i<100;i++) { // DONE -> 1 ? outportb(0x311,0xFE); // CLK ->0 outportb(0x311,0xFF); // CLK ->1 if (inportb(0x311)&0x2) printf("DONE!\n"); else printf("NOT DONE!!!\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8"); }; printf("\nEND\n"); А вот Serial SlaveКод printf("init\n"); outportb(0x311,0xFF); outportb(0x311,0xF7); // PROG_B -> 0 while ((inportb(0x311)&0x04)==1) asm nop; // INIT_B -> 0 ?
outportb(0x311,0xFF); // PROG_B -> 1 while ((inportb(0x311)&0x04)==0) asm nop; // INIT_B -> 1 ?
printf("writing\n");
for(i=0;i<100;i++){
outportb(0x310,0x01); //DIN << 1
outportb(0x311,0xF8); // CLK ->0 outportb(0x311,0xF9); // CLK ->1 printf("\\%.2X\n",(inportb(0x311)&0x1)); // DOUT
outportb(0x310,0x00); //DIN << 0
outportb(0x311,0xF8); // CLK ->0 outportb(0x311,0xF9); // CLK ->1 printf("/%.2X\n",(inportb(0x311)&0x1)); // DOUT
if ((inportb(0x311)&0x4)==0) printf("\nCRC error!\n"); // INIT_B -> 0 ? }
printf("start-up\n"); for(i=0;i<100;i++) { // DONE -> ? delay(1); outportb(0x311,0xFE); // CLK ->0 outportb(0x311,0xFF); // CLK ->1 if (inportb(0x311)&0x2) printf("\n\nDONE!\n"); else printf("NOT DONE!!!\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8"); }; printf("\nEND\n"); Оба метода, по моему предположению соответствуют описанному в документации, но они оба не работают !!!!
|
|
|
|
Сообщений в этой теме
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 BSV Вот заготовка программы для загрузки в режиме Slav... Jan 19 2007, 11:54 BSV Проверьте:
1) PROG в '0' нужно держать не ... Jan 19 2007, 17:37 disel Цитата(BSV @ Jan 19 2007, 17:37) Проверьт... Jan 19 2007, 18:45  BSV Цитата(disel @ Jan 19 2007, 18:45) написа... Jan 20 2007, 01:13   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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|