|
Spartan-6 + QSPI-Flash |
|
|
|
Aug 14 2018, 15:01
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Что-то подключил я SPI-Flash N25Q256A к XC6SLX9TQG144, через Impact настроил все файлы конфигураций, пытаюсь прошить - получаю Код PROGRESS_START - Starting Operation. Maximum TCK operating frequency for this device chain: 25000000. Validating chain... Boundary-scan chain validated successfully. '1': IDCODE is '20ba19' (in hex). '1': ID Check passed. '1': IDCODE is '20ba19' (in hex). '1': ID Check passed. '1': Erasing Device. '1': Using Sector Erase. '1': Programming Flash. '1': Reading device contents... Failed at address, 0 '1': Verification Terminated INFO:iMPACT - '1': Flash was not programmed successfully. PROGRESS_END - End Operation. Elapsed time = 14 sec. и большую кляксу "Program Failed". Раньше использовал QSPI-Flash W25Q64 и все было нормально. Оно как-то определяет превышение нужного размера Flash что-ли? Прямая взаимосвязь только в объеме памяти. Как тогда вообще выбирать размер Flash для нужной ПЛИСы? Сейчас мне было удобнее поставить N25Q256A, но она походу как-то не пашет. Отпаяю и заменю на W25Q64 пока что. Но вопрос остался открытым. P.S. QSPI-Flash - это в смысле загрузочная которая.
Сообщение отредактировал Arlleex - Aug 14 2018, 15:02
|
|
|
|
|
Aug 15 2018, 05:04
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Цитата(MegaVolt @ Aug 14 2018, 23:23)  Как вариант можно поставить 128ую если прошивка влазит. Пол флешки будет доступно ели проглотит  В том и дело, что в Impact-е эта флешка доступна, она стирается (судя по логу), но не пишется, и фиг знает почему. И вот вроде казалось бы - флешка и флешка, поддерживается? Поддерживается. Чего не работать-то? Схемотехника правильная, подтяжки везде есть где нужно и куда нужно. А гадать, перепаивая флешки, не комильфо  Ведь есть же способ какой-то определить, сколько мне максимум понадобится для данной ПЛИС. Как я понимаю, она может складываться из объема внутренней памяти BRAM (если есть), так называемой распределенной (distributed) памяти (которая из триггеров в LUT-ячейках, как я понимаю) и памяти для ячеек конфигурации самих LUT (это 4-5 бит на LUT, если не ошибаюсь), которая задает начальные значения межсоединений по включению питания. Вот просуммировав их я и получу сколько мне нужно памяти, нигде не везде ошибся?
|
|
|
|
|
Aug 15 2018, 05:56
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Цитата(serj1979 @ Aug 15 2018, 09:41)  Программируется через JTAG? Если скорость понизить? Запаял уже другую флешку (которая на 64Мбит) - все работает на той же скорости JTAG. Только скорость JTAG это ж не скорость записи QSPI... Как буду вторую плату паять - попробую снизить скорость, конечно, ради эксперимента.
|
|
|
|
|
Aug 15 2018, 06:34
|

Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-12-15
Из: Пенза
Пользователь №: 89 844

|
Цитата(Arlleex @ Aug 15 2018, 08:56)  Запаял уже другую флешку (которая на 64Мбит) - все работает на той же скорости JTAG. Только скорость JTAG это ж не скорость записи QSPI... Как буду вторую плату паять - попробую снизить скорость, конечно, ради эксперимента. Да на что грешить непонятно, либо с осциллографом лезть либо подёргать за что дергается.......
|
|
|
|
|
Aug 15 2018, 07:36
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Кстати вот насчет подтяжек я похоже поторопился немного... Линии данных DQ0-DQ3 QSPI у меня идут прямо на ПЛИС, и там нет подтяжек... Программируется в режиме данных 1 бит. Вырезки из даташитов: N25Q256Цитата W# Control Input Write protect: W# can be used as a protection control input or in QIO-SPI operations. When in extended SPI with single or dual commands, the WRITE PROTECT function is selectable by the voltage range applied to the signal. If voltage range is low (0V to VCC), the signal acts as a write protection control input. The memory size protected against PROGRAM or ERASE operations is locked as specified in the status register block protect bits 3:0. W# is used as an input/output (DQ2 functionality) during QUAD INPUT FAST READ and QUAD INPUT/OUTPUT FAST READ operations and in QIO-SPI. W25Q64Цитата 8.4 Write Protect (/WP) The Write Protect (/WP) pin can be used to prevent the Status Register from being written. Used in conjunction with the Status Register’s Block Protect (SEC, TB, BP2, BP1 and BP0) bits and Status Register Protect (SRP) bits, a portion or the entire memory array can be hardware protected. The /WP pin is active low. When the QE bit of Status Register-2 is set for Quad I/O, the /WP pin (Hardware Write Protect) function is not available since this pin is used for IO2. See figure 1a, 1b, 1c and 1d for the pin configuration of Quad I/O operation. Вот если ПЛИС как-то внутри подтягивает DQ2 в 1, то тогда примерно понятно, почему W25Q64 работает. При этом N25Q256 будет не работать всегда, судя по выписке из даташита. Причем самое идиотское, что функция лапы DQ2 определяется внешним напряжением на ней, которое может быть больше 3.3В, что попалит ПЛИС. Я, конечно, предполагаю, что разработчики предусматривали, что если используется лапа DQ2 в режиме WP, то в приложении режим QSPI не будет использоваться. Но блин! У них целых 7 ног DNU!!! Так еще и по ногам сделали же взаимозаменяемыми с себеподобными других компаний. Хотим махнуть одну на другую? Да не вопрос - только этот цирк работать не будет. Уродство
|
|
|
|
|
Aug 15 2018, 08:38
|
Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783

|
Цитата(Arlleex @ Aug 15 2018, 08:04)  Ведь есть же способ какой-то определить, сколько мне максимум понадобится для данной ПЛИС. Конечно есть. Даташит https://www.xilinx.com/support/documentatio...uides/ug380.pdfВ Table 5-5: Spartan-6 FPGA Bitstream Length Утверждает что для вашего кристалла нужно: 6SLX9 2,742,528 бит На счёт самой флешки поспрашал тут у нас народ. Люди шились но нужно поправить переменную среды чтобы ID не вычитывался. Какая переменная народ не помнт предлагает гуглить фотрумы от xilinx. Альтернативным решением является установить 128 флешку в настройках там проблемы нет.
|
|
|
|
|
Aug 15 2018, 08:41
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(MegaVolt @ Aug 15 2018, 11:38)  На счёт самой флешки поспрашал тут у нас народ. Люди шились но нужно поправить переменную среды чтобы ID не вычитывался. Какая переменная народ не помнт предлагает гуглить фотрумы от xilinx. Альтернативным решением является установить 128 флешку в настройках там проблемы нет. Выдержка отсюда: Цитата Set the operating system environment variable XIL_IMPACT_SKIPIDCODECHECK=1 to avoid the “ID Check failed” error message. Так что проверку можно обойти.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Aug 16 2018, 14:33
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 10-08-18
Пользователь №: 106 692

|
Судя по логам, ID passed. 256-мегабитки отличаются от более младших командами. Но, если именно эта микра есть в списке... Еще у 256-мегабиток у некоторых производителей бывает важна каждая буковка в наименовании. Как-то столкнулся с тем, что 256-мегабитка была изначально с завода переведена в 4-битный режим (последняя буковка в маркировке на это указывала), а чтобы ее перевести в 1-битный - надо было по полной 4-битной шине подать команду. А процессор, с которым предполагалась ее работа, этого не умел... Хорошо, что внимательно прочитал даташит, а то бы купили несколько тыс. шт. на мою голову.
|
|
|
|
|
Aug 21 2018, 09:52
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 10-08-18
Пользователь №: 106 692

|
Цитата(MegaVolt @ Aug 17 2018, 11:35)  Не совсем так. Млажшие 128 Мб работают точно так же как и в младшей флешке. Чаще всего - именно так. Но есть нюансы в зависимости от производителя и маркировки флеша. В том числе и функционал выводов микросхемы может отличаться в зависимости от маркировки.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|