Перейти к содержанию
    

GOWIN 2A ошибка при прожиге

Я работал с платой tang primer 20K и все шло хорошо. Потом вдруг при очередном прожиге возникло вот это

openFPGALoader --unprotect-flash -b tangprimer20k -f my_i2c.fs
write to flash
Jtag frequency : requested 6.00MHz   -> real 6.00MHz  
Parse file Parse my_i2c.fs:
Done
DONE
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
erase SRAM Done
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
RDSR : ff
WIP  : 1
WEL  : 1
BP   : f
TB   : 1
SRWD : 1
flash chip unknown: use basic protection detection
unlock blocks
timeout: ff ff ff
ff
wait: Error
Error: Failed to program FPGA: Error: write to flash failed

Везде стоит FF и вроде требует разблокировать какие-то блоки. В связи с этим и вопрос. Что вообще это значит? И как снова заставить работать плату? Прошивку платы я делал при помощи openFPGALoader и не было ни каких проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выглядит так, как будто бы флешка вышла из строя и у нее на выходе всегда 1. Если есть осциллограф, то стоит посмотреть, что происходит у неё на входах sclk и mosi, доходят ли до неё сигналы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но плата определяется вот так. И это так и было

$ openFPGALoader --detect
Jtag frequency : requested 6.00MHz   -> real 6.00MHz  
index 0:
    idcode 0x81b
    manufacturer Gowin
    family GW2A
    model  GW2A(R)-18(C)
    irlength 8

Если бы сгорела, то не определялась бы.

И есть еще вот такой ответ

$ openFPGALoader -b tangprimer20k -f my_i2c.fs
write to flash
Jtag frequency : requested 6.00MHz   -> real 6.00MHz  
Parse file Parse my_i2c.fs:
Done
DONE
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
erase SRAM Done
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
RDSR : ff
WIP  : 1
WEL  : 1
BP   : f
TB   : 1
SRWD : 1
flash chip unknown: use basic protection detection
unlock blocks
Error: block protection is set
       can't unlock without --unprotect-flash
Error: Failed to program FPGA: Error: write to flash failed

Вот тут пишет, что установлена защита на блок. Хотя я не ставил ни какую защиту.

А если сделать запрос вот так с -v

openFPGALoader -v -b tangprimer20k -f my_i2c.fs

то получаю вот это

openFPGALoader -v -b tangprimer20k -f my_i2c.fs
write to flash
Jtag frequency : requested 6.00MHz   -> real 6.00MHz  
found 1 devices
index 0:
    idcode 0x81b
    manufacturer Gowin
    family GW2A
    model  GW2A(R)-18(C)
    irlength 8
File type : fs
Parse file Parse my_i2c.fs:
checksum 0xa31a
Done
DONE
bitstream header infos
CRCCheck: ON
Compress: OFF
ConfDataLength: 1342
ProgramDoneBypass: OFF
SPIAddr: 00000000
SecurityBit: ON
idcode: 0000081b
loading_rate: 0
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
pollFlag: 40a1
erase SRAM pollFlag: 4081
pollFlag: 4081
pollFlag: 4081
pollFlag: 4081
pollFlag: a1
Done
pollFlag: 421
ff ff ff ff read ffffffff
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff read ffffffff
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RDSR : ff
WIP  : 1
WEL  : 1
BP   : f
TB   : 1
SRWD : 1
RDSR : fc
WIP  : 0
WEL  : 0
BP   : f
TB   : 1
SRWD : 1
flash chip unknown: use basic protection detection
unlock blocks
Error: block protection is set
       can't unlock without --unprotect-flash
Error: Failed to program FPGA: Error: write to flash failed

Вот и что с этим делать? Надо как то разблокировать?  Если в команду добавить параметр --unprotect-flash то все равно ошибка

$ openFPGALoader --unprotect-flash -b tangprimer20k -f my_i2c.fs
write to flash
Jtag frequency : requested 6.00MHz   -> real 6.00MHz  
Parse file Parse my_i2c.fs:
Done
DONE
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
erase SRAM Done
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
Detail:
Jedec ID          : ff
memory type       : ff
memory capacity   : ff
EDID + CFD length : ff
EDID              : ffff
CFD               :
RDSR : ff
WIP  : 1
WEL  : 1
BP   : f
TB   : 1
SRWD : 1
flash chip unknown: use basic protection detection
unlock blocks
timeout: ff ff ff
ff
wait: Error
Error: Failed to program FPGA: Error: write to flash failed

Как её разблокировать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, SergeBN сказал:

Если бы сгорела, то не определялась бы.

В процессе программирования участвуют два интерфейса: [программатор] <=JTAG=> [ПЛИС] <=SPI=> [SPI-Flash]. Первый интерфейс (JTAG) у вас очевидно работает, а со вторым похоже есть проблемы. Поэтому я и предложил вам посмотреть, что происходит на контактах SPI-flash при попытке программирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, Realking сказал:

image.png.46c70ba7beda9d4f86dfd8d211b59624.png

попробуйте Generic Flash выбрать

Мне кажется это не поможет, т.к. не читается даже JEDEC ID (сплошные 0xFF).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не изменяет память то в мануале дословно сказано: 

Quote

Note that the description is there was a successful Flash burnt one time.

In this case, the default reason is that the wrong Dual-Purpose pin is enabled and the debugger can no longer scan the FPGA's JTAG. You can short pin 1 and pin 4 of Flash, by which the chip cannot read FLASH normally when it is powered on.

Если коротко - если намудрить с выводами двойного назначения, на которых флеш висит то прошить флеш больше не удастся. Замкните 1 и 4 вывод флеша для блокировки загрузки и вы сможете нормально прошить чип.

Источник - Tang Primer 20K - Sipeed Wiki

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел, что там на SPI-flash на контактах. Она как будто вообще не живая. Нет там clk на 6 ноге и на других ничего нет кроме питания.

Изменено пользователем SergeBN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, DanilinS сказал:

Если коротко - если намудрить с выводами двойного назначения, на которых флеш висит то прошить флеш больше не удастся. Замкните 1 и 4 вывод флеша для блокировки загрузки и вы сможете нормально прошить чип.

Источник - Tang Primer 20K - Sipeed Wiki

Здесь написано, что из-за этого может перестать работать JTAG. Но судя по описанию ТС JTAG как раз работает.

1 час назад, SergeBN сказал:

Посмотрел, что там на SPI-flash на контактах. Она как будто вообще не живая. Нет там clk на 6 ноге и на других ничего нет кроме питания.

Clk нужно смотреть в процессе выполнения попытки программирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, makc said:

Здесь написано, что из-за этого может перестать работать JTAG. Но судя по описанию ТС JTAG как раз работает.

SPI висит на многофункциональных выводах. По дефолту - это загрузка из SPI. Но в прошивку можно переназначить эти выводы под что-то другое. И тогда "автоматом" через JTAG до SPI будет не достучаться. Исправить это можно не дав чипу загрузить прошивку и соответственно не дав отключить SPI. Замыкаем ноги 1 и 4. Включаем питание. Чип не сможет прошиться и останется чистым. Убираем перемычку не снимая питания и льем по JTAG.

Для начала неплохо осциллографом глянуть сигналы на SPI в момент загрузки/чтения. Если сигналы норм - SPI сдохла. Неплохо ее заменить. Если сигналов нет - что-то с переназначением выводов. Но я-бы для начало попробовал-бы загнать все в состояние "по дефолту". Сдул-бы флеш, очистил в программаторе, поставил на место. Посмотрел-бы на результат. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О замечательно! Насчет ног 1-4 я понял. Но для начала давайте подробнее вот с этого места.

2 часа назад, DanilinS сказал:

Но я-бы для начало попробовал-бы загнать все в состояние "по дефолту". Сдул-бы флеш, очистил в программаторе, поставил на место. Посмотрел-бы на результат. 

Если, можно, пожалуйста по шагам. Я не совсем понимаю терминологию в том плане из каких конкретных действий состоит "Сдул бы флеш ..." и так далее. Что конкретно я должен сделать? Вы уж извините, но я не настолько еще пока образован, чтобы сходу составить план действий, что куда подлючить, какие где параметры выставить, чем прошить, прожечь. Пока у меня работает надежно openFPGALoader. А вот штатный Programmer из комплекта Gowin IDE не работает. Походу на нем все это и произошло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

План действий 😃 :

1: Мажем ноги SPI флэша флюсом, берем фен для пайки и отпаиваем W25Q32JVS.

2: Втыкаем отпаянную W25Q32JVS в программатор. Подойдет любой, который может работать с SPI флешками. Стоят они недорого. (например CH341A)

3: Выполняем на программаторе функцию "очистка". Собственно на этом этапе и будет понятно, жива флеш или нет. 

4: Впаиваем чип флеша обратно и пробуем прошить плату через JTAG. 

Или сходи в любой сервис по ремонту. За копеечку ( или пиво) за 5 минут они это все проделают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, DanilinS сказал:

План действий 😃 :

Есть и более простой план: замкнуть на выключенной плате ноги 2 (DO) и 4 (GND) на W25Q32JVS чтобы не дать ПЛИС сконфигурироваться, а потом включить питание. После включения убрать перемычку между 2 и 4, после чего попробовать прошить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше замыкать 1 и 4 ногу. Садить выход на землю - не особо хорошая идея. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...