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

26 минут назад, Abo сказал:

Попытка проделать этот трюк с говином не удалась, SVF файл проигрывается - плисина не шьется, вылетает с ошибкой при сравнении. FTDI программатор шьет без вопросов. Производство ворчит, отвыкли уже программатор тыкать и вот опять.

Gowin не умеет делать правильный SVF. Я уже успел намучиться с этими проблемами:

 

27 минут назад, Abo сказал:

Кто-нибудь может подсказать в чем особенность JTAG у говина по сравнению с альтерой.

У него есть жёсткие ограничения на некоторые операции и если вы не успеете их сделать без задержек (минимум пауз и заданная частота на TCK), то шиться не будет, а будет выдавать ошибки.

28 минут назад, Abo сказал:

Да, кстати, наш МК выдает максимум только 1,8МГц на JTCK, насколько это критично?

Критично, но должно хватать в общем случае, если не будет пауз между операциями программирования. Вы openFPGALoader пробовали?

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


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

18 hours ago, makc said:

Gowin не умеет делать правильный SVF. Я уже успел намучиться с этими проблемами:

 

У него есть жёсткие ограничения на некоторые операции и если вы не успеете их сделать без задержек (минимум пауз и заданная частота на TCK), то шиться не будет, а будет выдавать ошибки.

Критично, но должно хватать в общем случае, если не будет пауз между операциями программирования. Вы openFPGALoader пробовали?

Благодарю за информацию. Были предположения, что для говина критичны частота и необходимость дополнительных импульсов на TCK в RunTest состоянии. К сожалению openFPGALoader прикрутить будет сложно, в нашем случае все упирается в быстродействие МК (CY7C68013) который ногами JTAG управляет. Ну никак требуемых 2 МГц (судя по доке говина) он не надрыгает, да и прерывания нельзя запретить - а они будут лаги по длительности импульсов на JTAG давать  - ногами в фоне дрыгаем.

По поводу кривости SVF от говина. Я с разработчиками из туманного Альбиона прошлой весной три месяца общался и к версии 1.9.8.6 они выкатили вполне удобоваримый генератор SVF, который учитывает наличие дополнительных микросхем в цепочке - у меня в устройстве в одной цепочке сразу 4 плисины. Наш плейер его прожевал без ошибок, вот только запрограммировать не удалось.

Буду неспеша придумывать варианты. Производству придется тыкать программатор. Может это и к лучшему.

 

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


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

1 минуту назад, Abo сказал:

К сожалению openFPGALoader прикрутить будет сложно, в нашем случае все упирается в быстродействие МК (CY7C68013) который ногами JTAG управляет. Ну никак требуемых 2 МГц (судя по доке говина) он не надрыгает, да и прерывания нельзя запретить - а они будут лаги по длительности импульсов на JTAG давать  - ногами в фоне дрыгаем.

Если на ноге CY7C68013 можно сформировать ШИМ-сигнал с выхода таймера или чего-то аналогичного, то может быть не всё так плохо. Именно так работает https://github.com/sipeed/RV-Debugger-BL702 и аналогичное решение я применил у себя, т.к. эта высокая частота нужна именно во время пауз.

2 минуты назад, Abo сказал:

По поводу кривости SVF от говина. Я с разработчиками из туманного Альбиона прошлой весной три месяца общался и к версии 1.9.8.6 они выкатили вполне удобоваримый генератор SVF, который учитывает наличие дополнительных микросхем в цепочке - у меня в устройстве в одной цепочке сразу 4 плисины. Наш плейер его прожевал без ошибок, вот только запрограммировать не удалось.

Кривость там не только в поддержке цепочки, а в несоответствии логики программирования в SVF требуемой логике программирования, описанной в даташите и реализованной внутри оригинального программатора от Gowin (Gowin Programmer).

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


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

23 часа назад, StewartLittle сказал:

P.S. А где покупали-то ?

Говорят, где-то у китайцев напрямую. Больше пока никакой инфы нет (

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


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

В 27.06.2023 в 11:00, Abo сказал:

К сожалению openFPGALoader прикрутить будет сложно, в нашем случае все упирается в быстродействие МК (CY7C68013) который ногами JTAG управляет. Ну никак требуемых 2 МГц (судя по доке говина) он не надрыгает, да и прерывания нельзя запретить - а они будут лаги по длительности импульсов на JTAG давать  - ногами в фоне дрыгаем.

Сделайте это на плис, которая под рукой. Что может быть проще?😜 Soft МК туда + необходимая логика. И не нужны никакие прерывания ( считаю они вообще не нужны при наличии ПЛ)

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


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

Может кто сталкивался с таким плата tangprimer20k(док ver3711 модуль ver3690) перепрограммировать флешь удается не всегда крашит openFPGALoader, иногда чисто случайно после того как пару раз DIP_SW 1 переключить - удается ,но тоже не всегда получается перепрошить.

Спойлер
./openFPGALoader --unprotect-flash -v -b tangprimer20k -f /home/test/workspace/fpga/TANG_Primer_20K/example/led/impl/pnr/led.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 /home/test/workspace/fpga/TANG_Primer_20K/example/led/impl/pnr/led.fs: 
checksum 0x18ec
Done
DONE
bitstream header infos
CRCCheck: OFF
Compress: OFF
ConfDataLength: 1342
ProgramDoneBypass: OFF
SPIAddr: 00000000
idcode: 0000081b
loading_rate: 0
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
pollFlag: 20a0
erase SRAM pollFlag: a0
Done
pollFlag: 20
7 40 16 b read 740160b
Ошибка сегментирования (стек памяти сброшен на диск)

 

Спойлер
./openFPGALoader --unprotect-flash -v -b tangprimer20k -f /home/test/workspace/fpga/TANG_Primer_20K/example/led/impl/pnr/led.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 /home/test/workspace/fpga/TANG_Primer_20K/example/led/impl/pnr/led.fs: 
checksum 0x18ec
Done
DONE
bitstream header infos
CRCCheck: OFF
Compress: OFF
ConfDataLength: 1342
ProgramDoneBypass: OFF
SPIAddr: 00000000
idcode: 0000081b
loading_rate: 0
Jtag frequency : requested 2.50MHz   -> real 2.00MHz  
Jtag frequency : requested 10.00MHz  -> real 6.00MHz  
pollFlag: a0
erase SRAM pollFlag: a0
Done
pollFlag: 460
b 40 16 d read b40160d
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 1e 0b 40 16 0b 40 16 09 40 
b 40 16 b read b40160b
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 12 0b 40 06 0b 40 16 
RDSR : 00
WIP  : 0
WEL  : 0
BP   : 0
TB   : 0
SRWD : 0
RDSR : 00
WIP  : 0
WEL  : 0
BP   : 0
TB   : 0
SRWD : 0
flash chip unknown: use basic protection detection
Erasing: [==================================================] 100.00%
Done
Writing: [==================================================] 100.00%
Done

 

 

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


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

13 минут назад, xVekx сказал:

Может кто сталкивался с таким плата tangprimer20k(док ver3711 модуль ver3690) перепрограммировать флешь удается не всегда крашит openFPGALoader, иногда чисто случайно после того как пару раз DIP_SW 1 переключить - удается ,но тоже не всегда получается перепрошить.

Через что вы её прошиваете? Если через родной Dock, то скорее всего дело в прошивке BL702, который там не совсем удачно прикидывается FT2232H. Можно попробовать перепрошить его прошивкой с этого форума.

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


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

7 часов назад, makc сказал:

Через что вы её прошиваете? Если через родной Dock, то скорее всего дело в прошивке BL702, который там не совсем удачно прикидывается FT2232H. Можно попробовать перепрошить его прошивкой с этого форума.

Да, я помню про этот нюанс.

Но тут ещё одно на плате стоит флешь xt25f32b-s, а по спеке на плате должно W25Q32JVS может тайминги...

Хотя если шить в SRAM c флагом -m то все все нормально.

UPD. попробовал перепрошить тот же результат.

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

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


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

9 часов назад, xVekx сказал:

Но тут ещё одно на плате стоит флешь xt25f32b-s, а по спеке на плате должно W25Q32JVS может тайминги...

Родным Gowin Programmer пробовали прошивать?

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


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

10 часов назад, makc сказал:

Родным Gowin Programmer пробовали прошивать?

на удивление шьет 3 из 3, режиме exFlash Erase,Program,Verify thru GAO-Bridge

Спойлер
	 
Info:	Target Cable: Gowin USB Cable(FT2CH)/0/12353/null@2MHz
Info:	Operation "exFlash Erase,Program thru GAO-Bridge" is starting on device-1...
Info:	Loading GAO-Bridge...
Info:	Try to program spi-flash: 0xB4016!
Info:	Erasing 141 sectors from address 0x000000 to 0x08d000...
Info:	Program flash finished.
Info:	Cost 48.08 second(s)
:	 
Info:	Target Cable: Gowin USB Cable(FT2CH)/0/12353/null@2MHz
Info:	Operation "exFlash Erase,Program thru GAO-Bridge" is starting on device-1...
Info:	Loading GAO-Bridge...
Info:	Try to program spi-flash: 0xB4016!
Info:	Erasing 141 sectors from address 0x000000 to 0x08d000...
Info:	Program flash finished.
Info:	Cost 49.89 second(s)
:	 
Info:	Target Cable: Gowin USB Cable(FT2CH)/0/12353/null@2MHz
Info:	Operation "exFlash Erase,Program thru GAO-Bridge" is starting on device-1...
Info:	Loading GAO-Bridge...
Info:	Try to program spi-flash: 0xB4016!
Info:	Erasing 141 sectors from address 0x000000 to 0x08d000...
Info:	Program flash finished.
Info:	Cost 48.91 second(s)
:	 
Info:	Target Cable: Gowin USB Cable(FT2CH)/0/12353/null@2MHz
Info:	Operation "exFlash Erase,Program,Verify thru GAO-Bridge" is starting on device-1...
Info:	Loading GAO-Bridge...
Info:	Try to program spi-flash: 0xB4016!
Info:	Erasing 141 sectors from address 0x000000 to 0x08d000...
Info:	Program and Verify flash successfully.
Info:	Cost 66.93 second(s)
:	 
Info:	Target Cable: Gowin USB Cable(FT2CH)/0/12353/null@2MHz
Info:	Operation "exFlash Erase,Program,Verify" is starting on device-1...
Info:	SPI flash detected: 0xF441F4!
Info:	try to program spi flash: 0xF441F4!
Error:	Error found!

 

 

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

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


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

14 минут назад, xVekx сказал:

на удивление шьет 3 из 3 а режиме exFlash Erase,Program,Verify thru GAO-Bridge

Тогда не вижу причин упорствовать с openFPGALoader, т.к. он далеко не идеален по качеству кода.

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


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

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

Тогда не вижу причин упорствовать с openFPGALoader, т.к. он далеко не идеален по качеству кода.

Похоже это больше похоже на правду. openFPGALoader в void SPIFlash::read_id() _jedec_id рандом выдает...

Спойлер
1
SPIFlash::SPIFlash 1
SPIFlash::SPIFlash 2
SPIFlash::SPIFlash 3
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 0 16 b 
b 40 16 b 
b 40 16 b 
b 0 16 b 
b 0 16 b 
b 0 16 b 
b 40 17 9 
3 40 6 b 
b 40 16 b 
b 40 16 b 
SPIFlash::read_id 1 ================================
read b40160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749323 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 17 09 40 1e 0b 60 16 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
9 40 12 3 
b 40 16 b 
7 40 6 b 
b 40 12 f 
b 40 16 b 
9 40 12 3 
3 40 6 b 
d 40 1a 3 
b 40 16 b 
f 40 1e 3 
SPIFlash::read_id 1 ================================
read f401e03
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:255860227 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 40 16 b 
b 40 16 b 
b 40 17 d 
b 40 16 b 
f 40 1e b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
9 40 1a 3 
b 40 16 b 
SPIFlash::read_id 1 ================================
read b40160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749323 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 16 0f 40 0e 0b 60 16 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 40 16 b 
d 40 1e b 
b 40 16 b 
3 40 e b 
f 40 6 b 
b 20 16 b 
b 60 16 b 
b 40 16 b 
b 40 16 b 
b 40 12 3 
SPIFlash::read_id 1 ================================
read b401203
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188748291 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 03
memory type       : 60
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
f 40 1e b 
b 40 16 b 
b 40 17 b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
9 40 12 f 
b 40 17 9 
SPIFlash::read_id 1 ================================
read b401709
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749577 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 17 0b 40 16 0d 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
d 40 1a 3 
b 60 16 b 
b 0 16 b 
f 40 1e 3 
b 60 16 b 
b 40 16 b 
b 40 16 b 
b 40 6 b 
f 40 1e b 
b 40 16 b 
SPIFlash::read_id 1 ================================
read b40160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749323 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0d
memory type       : 40
memory capacity   : 1e
EDID + CFD length : 03
EDID              : 0640
CFD               : 0b 60 16 0b 40 16 0b 40 16 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 40 16 b 
b 40 16 b 
3 40 6 b 
b 40 16 b 
3 40 6 b 
b 0 16 b 
f 40 1e b 
b 0 16 b 
b 40 16 b 
b 40 16 b 
SPIFlash::read_id 1 ================================
read b40160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749323 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 09
memory type       : 40
memory capacity   : 1a
EDID + CFD length : 03
EDID              : 1660
CFD               : 0b 40 16 0b 40 16 0b 40 17 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 0 16 b 
b 40 16 b 
b 60 16 b 
b 0 16 b 
b 40 16 b 
b 40 16 d 
b 40 16 b 
b 40 16 b 
9 40 12 f 
3 40 16 b 
SPIFlash::read_id 1 ================================
read 340160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:54531595 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 20
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 16 0b 40 17 0b 40 12 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 40 12 3 
b 40 16 b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
b 40 16 b 
b 40 17 b 
b 40 17 b 
7 40 6 b 
b 40 17 b 
SPIFlash::read_id 1 ================================
read b40170b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749579 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 17 0b 40 16 0f 40 06 
SPIFlash::SPIFlash 4
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
b 40 16 b 
b 40 17 9 
b 60 16 b 
b 0 16 b 
3 40 6 b 
b 0 16 b 
b 40 16 b 
b 0 16 b 
b 40 16 b 
b 40 16 b 
SPIFlash::read_id 1 ================================
read b40160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:188749323 len:4 
SPIFlash::read_id 5
Detail: 
Jedec ID          : 0b
memory type       : 40
memory capacity   : 16
EDID + CFD length : 0b
EDID              : 1640
CFD               : 0b 40 17 0b 40 17 0b 40 12 
SPIFlash::SPIFlash 4
2
SPIFlash::read_id 1 ================================
SPIFlash::read_id _spi->spi_put(0x9F, NULL, rx, 4);
f 40 1e 3 
9 40 1e b 
b 40 16 b 
7 40 6 b 
3 40 6 b 
b 40 17 9 
3 40 6 b 
b 20 16 b 
b 40 16 b 
3 40 16 b 
SPIFlash::read_id 1 ================================
read 340160b
SPIFlash::read_id 3
SPIFlash::read_id 4 _spi->spi_put(0x9F, NULL, rx, len);
_jedec_id:54531595 len:4 
Ошибка сегментирования (стек памяти сброшен на диск)

 

В общем оказалось все просто, перепрошить программатор под ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC

, запустить Gowin_USB_Cable_Installer.sh и поправит  ATTRS{idVendor}=="0403",ATTR{idProduct}=="6010".

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

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


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

У этих FPGA(GV1N-1P5) внутри есть Flash для хранения прошивки? Как у altera MAXV?

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

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


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

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

У этих FPGA(GV1N-1P5) внутри есть Flash для хранения прошивки? Как у altera MAXV?

У GW1N есть. А что вы такое написали - не знаю.

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


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

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

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

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

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

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

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

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

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

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