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

 
 
 
Reply to this topicStart new topic
> Загрузка Spartan 3 с помощью микроконтроллера
VLADIMIR-89-
сообщение Mar 30 2012, 20:09
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109



Имеется плата со Spartan 3(xc3s200) и МК LPC2368. Задача состоит в приеме по езернету файла конфигурации спартана, и прошивке ее в режиме slave serial mode через ssp МК. Для начала хочется вкомпилить файл конфигурации спартана в прошивку МК, ну и попробовать пошить плис.
Собственно вопрос: Как использовать *isc файл для конфигурирования (загружать с конца или начала,можно ли сделать элементы не по 64 бита а по 32 , заложен ли в нем ARRAY_ID),какова макс частота загрузки? Заранее спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 30 2012, 20:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(VLADIMIR-89- @ Mar 31 2012, 00:09) *
Собственно вопрос: Как использовать *isc файл для конфигурирования (загружать с конца или начала,можно ли сделать элементы не по 64 бита а по 32 , заложен ли в нем ARRAY_ID),какова макс частота загрузки? Заранее спасибо.

А зачем isc, если можно сделать нормальный bin?
Go to the top of the page
 
+Quote Post
VLADIMIR-89-
сообщение Mar 30 2012, 20:48
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109



Цитата
А зачем isc, если можно сделать нормальный bin?

Ну я вообще новичек в этой теме. До этого с МК почти не работал. Плис грузил через житаг(*bit). *isc по тому ,что можно в прогу для МК запихнуть в виде с-массива. А что делать с bin не понятно. Может его конвертануть как то можно?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 30 2012, 20:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(VLADIMIR-89- @ Mar 31 2012, 00:48) *
Может его конвертануть как то можно?

В МК его можно поместить любым удобным способом - в виде C-массива, просто как bin-файл через ассемблер или линкер. Совсем хорошо будет его предварительно сжать, т.к. объем большой.

А дальше просто сливаем весь поток через SSP. Единственный момент - нужно при генерации указать правильный bit order.
Go to the top of the page
 
+Quote Post
VLADIMIR-89-
сообщение Mar 31 2012, 15:50
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109



Если использовать стандартную ф-ию сжатия ISE-вского битгена, можно ли, не используя декомпрессию, сразу заливать этот файл?


SSP работае в SPI режиме, не может ли быть проблем с синхронизацией на стороне плис, т.к. CCLK будет продать между посылками пакетов?
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Mar 31 2012, 16:31
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 31 2012, 16:37
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 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 будет продать между посылками пакетов?

"продать" - следует читать "пропадать"?

Как раз так и нужно - если будут клоки между пакетами, то ПЛИС словит мусор и не загрузится.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 2 2012, 09:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(VLADIMIR-89- @ Mar 31 2012, 19:50) *
Если использовать стандартную ф-ию сжатия ISE-вского битгена, можно ли, не используя декомпрессию, сразу заливать этот файл?
Можно, но степень компрессии там практически нулевая. Так что лучше добавить свой (хотя бы банальный ZLE, т.е. упаковку следующих подряд нулей)

Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Apr 3 2012, 17:33
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



А пакеты от компа приходят? Может просто перенаправить от езернета в SSP при загрузке ПО компа?


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
VLADIMIR-89-
сообщение Apr 4 2012, 00:01
Сообщение #10





Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109



Цитата
А пакеты от компа приходят? Может просто перенаправить от езернета в SSP при загрузке ПО компа?

Ну вообще, в конечном итоге так и должно происходить. Только вот только с загрузкой спартана даже из памяти микроконтроллера пока разобраться не получается - уже и разные битрейты и порядки бит в байтах перепробовал, и вместо спиая - жпио. Бестолку crying.gif
Go to the top of the page
 
+Quote Post
SolderMan
сообщение Apr 5 2012, 03:18
Сообщение #11


Участник
*

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



Некоторое время назад я делал уже подобное. Заливал прошивку в FPGA (XC3S400) при помощи PIC24 тупо дёргая ногами. Скачай исходники (pic24_firmware.zip) тут: http://speccyland.net/index.php?option=com...0&Itemid=16. Там, думаю, всё понятно.
Go to the top of the page
 
+Quote Post
Art55555
сообщение Apr 5 2012, 08:28
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 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 и больше не встаёт. Соответственно, загрузка не происходит. В чём может быть причина?
Go to the top of the page
 
+Quote Post
Apast
сообщение Apr 5 2012, 11:24
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 22-06-04
Из: Новосибирск
Пользователь №: 87



Цитата(Art55555 @ Apr 5 2012, 12:28) *
Всё так и делаем. Наблюдаем следующую картину: в процессе загрузки по каким-то причинам падает INIT в 0 и больше не встаёт. Соответственно, загрузка не происходит. В чём может быть причина?


Обычно INIT падает в 0 по причине ошибок, в загрузочном файле есть контрольные суммы, автомат FPGA считает их и сверяет, если не
совпадает то снимает этот сигнал. Еще иногда, я сталкивался с этим сам, некоторые чипы, не конкретные типы а именно чипы, снимают
сигнал INIT в конце загрузки т.е. когда весь функционал загрузился а вырабатываются клоки необходимые для нормального запуска
FPGA. Приходилось в конце отключать проверку INIT, и чип нормально грузился, т.е. выставлял DONE и работал.
Go to the top of the page
 
+Quote Post
Art55555
сообщение Apr 5 2012, 11:46
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981



Цитата(Apast @ Apr 5 2012, 15:24) *
Обычно INIT падает в 0 по причине ошибок, в загрузочном файле есть контрольные суммы, автомат FPGA считает их и сверяет, если не
совпадает то снимает этот сигнал. Еще иногда, я сталкивался с этим сам, некоторые чипы, не конкретные типы а именно чипы, снимают
сигнал INIT в конце загрузки т.е. когда весь функционал загрузился а вырабатываются клоки необходимые для нормального запуска
FPGA. Приходилось в конце отключать проверку INIT, и чип нормально грузился, т.е. выставлял DONE и работал.

Надо попробавать. А как отключить проверку INIT?
Go to the top of the page
 
+Quote Post
VLADIMIR-89-
сообщение Apr 5 2012, 12:22
Сообщение #15





Группа: Новичок
Сообщений: 5
Регистрация: 30-03-12
Пользователь №: 71 109



Всем спасибо. Все работает. biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


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


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