|
|
  |
Загрузка Spartan 3 с помощью микроконтроллера |
|
|
|
Mar 30 2012, 20:09
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109

|
Имеется плата со Spartan 3(xc3s200) и МК LPC2368. Задача состоит в приеме по езернету файла конфигурации спартана, и прошивке ее в режиме slave serial mode через ssp МК. Для начала хочется вкомпилить файл конфигурации спартана в прошивку МК, ну и попробовать пошить плис. Собственно вопрос: Как использовать *isc файл для конфигурирования (загружать с конца или начала,можно ли сделать элементы не по 64 бита а по 32 , заложен ли в нем ARRAY_ID),какова макс частота загрузки? Заранее спасибо.
|
|
|
|
|
Mar 30 2012, 20:48
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109

|
Цитата А зачем isc, если можно сделать нормальный bin? Ну я вообще новичек в этой теме. До этого с МК почти не работал. Плис грузил через житаг(*bit). *isc по тому ,что можно в прогу для МК запихнуть в виде с-массива. А что делать с bin не понятно. Может его конвертануть как то можно?
|
|
|
|
|
Mar 31 2012, 15:50
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109

|
Если использовать стандартную ф-ию сжатия ISE-вского битгена, можно ли, не используя декомпрессию, сразу заливать этот файл?
SSP работае в SPI режиме, не может ли быть проблем с синхронизацией на стороне плис, т.к. CCLK будет продать между посылками пакетов?
|
|
|
|
|
Mar 31 2012, 16:31
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(VLADIMIR-89- @ Mar 31 2012, 22:50)  Если использовать стандартную ф-ию сжатия ISE-вского битгена, можно ли, не используя декомпрессию, сразу заливать этот файл?
SSP работае в SPI режиме, не может ли быть проблем с синхронизацией на стороне плис, т.к. CCLK будет продать между посылками пакетов? Общий порядок действий примерно такой : 1.Дёргаете PROG в 0, потом обратно в 1. 2. Ждёте пока INIT вскочит в 1. Ну или просто тупо ждёте какое-то время (какое - см. в даташите). 3. выпихиваете данные, сопровождая их клоками CCLK. Старшим битом вперёд, если мне склероз не изменяет. 4. В конце добавьте ещё несколько (к примеру 8) клоков дабы не морочиться startup events. 5. Проверяете DONE - если в 1, то всё ок, иначе - проблема, ищете в чём причина. З Ы CCLK может пропадать совсем, это не страшно. Важно не подавать CCLK пока не пройдёт очистка конфигурации, т.е. после того как дёрнули PROG и до момента когда INIT станет в 1.
|
|
|
|
|
Mar 31 2012, 16:37
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(VLADIMIR-89- @ Mar 31 2012, 19:50)  Если использовать стандартную ф-ию сжатия ISE-вского битгена, можно ли, не используя декомпрессию, сразу заливать этот файл? Внутри ПЛИС декомпрессора тоже нет, так что придется напрячь процессор. Цитата(VLADIMIR-89- @ Mar 31 2012, 19:50)  SSP работае в SPI режиме, не может ли быть проблем с синхронизацией на стороне плис, т.к. CCLK будет продать между посылками пакетов? "продать" - следует читать "пропадать"? Как раз так и нужно - если будут клоки между пакетами, то ПЛИС словит мусор и не загрузится.
|
|
|
|
|
Apr 4 2012, 00:01
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109

|
Цитата А пакеты от компа приходят? Может просто перенаправить от езернета в SSP при загрузке ПО компа? Ну вообще, в конечном итоге так и должно происходить. Только вот только с загрузкой спартана даже из памяти микроконтроллера пока разобраться не получается - уже и разные битрейты и порядки бит в байтах перепробовал, и вместо спиая - жпио. Бестолку
|
|
|
|
|
Apr 5 2012, 03:18
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 26-01-12
Пользователь №: 69 890

|
Некоторое время назад я делал уже подобное. Заливал прошивку в FPGA (XC3S400) при помощи PIC24 тупо дёргая ногами. Скачай исходники (pic24_firmware.zip) тут: http://speccyland.net/index.php?option=com...0&Itemid=16. Там, думаю, всё понятно.
|
|
|
|
|
Apr 5 2012, 08:28
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981

|
Цитата(Bad0512 @ Mar 31 2012, 20:31)  Общий порядок действий примерно такой : 1.Дёргаете PROG в 0, потом обратно в 1. 2. Ждёте пока INIT вскочит в 1. Ну или просто тупо ждёте какое-то время (какое - см. в даташите). 3. выпихиваете данные, сопровождая их клоками CCLK. Старшим битом вперёд, если мне склероз не изменяет. 4. В конце добавьте ещё несколько (к примеру 8) клоков дабы не морочиться startup events. 5. Проверяете DONE - если в 1, то всё ок, иначе - проблема, ищете в чём причина.
З Ы CCLK может пропадать совсем, это не страшно. Важно не подавать CCLK пока не пройдёт очистка конфигурации, т.е. после того как дёрнули PROG и до момента когда INIT станет в 1. Всё так и делаем. Наблюдаем следующую картину: в процессе загрузки по каким-то причинам падает INIT в 0 и больше не встаёт. Соответственно, загрузка не происходит. В чём может быть причина?
|
|
|
|
|
Apr 5 2012, 11:24
|
Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 22-06-04
Из: Новосибирск
Пользователь №: 87

|
Цитата(Art55555 @ Apr 5 2012, 12:28)  Всё так и делаем. Наблюдаем следующую картину: в процессе загрузки по каким-то причинам падает INIT в 0 и больше не встаёт. Соответственно, загрузка не происходит. В чём может быть причина? Обычно INIT падает в 0 по причине ошибок, в загрузочном файле есть контрольные суммы, автомат FPGA считает их и сверяет, если не совпадает то снимает этот сигнал. Еще иногда, я сталкивался с этим сам, некоторые чипы, не конкретные типы а именно чипы, снимают сигнал INIT в конце загрузки т.е. когда весь функционал загрузился а вырабатываются клоки необходимые для нормального запуска FPGA. Приходилось в конце отключать проверку INIT, и чип нормально грузился, т.е. выставлял DONE и работал.
|
|
|
|
|
Apr 5 2012, 11:46
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981

|
Цитата(Apast @ Apr 5 2012, 15:24)  Обычно INIT падает в 0 по причине ошибок, в загрузочном файле есть контрольные суммы, автомат FPGA считает их и сверяет, если не совпадает то снимает этот сигнал. Еще иногда, я сталкивался с этим сам, некоторые чипы, не конкретные типы а именно чипы, снимают сигнал INIT в конце загрузки т.е. когда весь функционал загрузился а вырабатываются клоки необходимые для нормального запуска FPGA. Приходилось в конце отключать проверку INIT, и чип нормально грузился, т.е. выставлял DONE и работал. Надо попробавать. А как отключить проверку INIT?
|
|
|
|
|
Apr 5 2012, 12:22
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109

|
Всем спасибо. Все работает.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|