makc 198 26 июня, 2023 Опубликовано 26 июня, 2023 · Жалоба 26 минут назад, Abo сказал: Попытка проделать этот трюк с говином не удалась, SVF файл проигрывается - плисина не шьется, вылетает с ошибкой при сравнении. FTDI программатор шьет без вопросов. Производство ворчит, отвыкли уже программатор тыкать и вот опять. Gowin не умеет делать правильный SVF. Я уже успел намучиться с этими проблемами: 27 минут назад, Abo сказал: Кто-нибудь может подсказать в чем особенность JTAG у говина по сравнению с альтерой. У него есть жёсткие ограничения на некоторые операции и если вы не успеете их сделать без задержек (минимум пауз и заданная частота на TCK), то шиться не будет, а будет выдавать ошибки. 28 минут назад, Abo сказал: Да, кстати, наш МК выдает максимум только 1,8МГц на JTCK, насколько это критично? Критично, но должно хватать в общем случае, если не будет пауз между операциями программирования. Вы openFPGALoader пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Abo 0 27 июня, 2023 Опубликовано 27 июня, 2023 · Жалоба 18 hours ago, makc said: Gowin не умеет делать правильный SVF. Я уже успел намучиться с этими проблемами: У него есть жёсткие ограничения на некоторые операции и если вы не успеете их сделать без задержек (минимум пауз и заданная частота на TCK), то шиться не будет, а будет выдавать ошибки. Критично, но должно хватать в общем случае, если не будет пауз между операциями программирования. Вы openFPGALoader пробовали? Благодарю за информацию. Были предположения, что для говина критичны частота и необходимость дополнительных импульсов на TCK в RunTest состоянии. К сожалению openFPGALoader прикрутить будет сложно, в нашем случае все упирается в быстродействие МК (CY7C68013) который ногами JTAG управляет. Ну никак требуемых 2 МГц (судя по доке говина) он не надрыгает, да и прерывания нельзя запретить - а они будут лаги по длительности импульсов на JTAG давать - ногами в фоне дрыгаем. По поводу кривости SVF от говина. Я с разработчиками из туманного Альбиона прошлой весной три месяца общался и к версии 1.9.8.6 они выкатили вполне удобоваримый генератор SVF, который учитывает наличие дополнительных микросхем в цепочке - у меня в устройстве в одной цепочке сразу 4 плисины. Наш плейер его прожевал без ошибок, вот только запрограммировать не удалось. Буду неспеша придумывать варианты. Производству придется тыкать программатор. Может это и к лучшему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 198 27 июня, 2023 Опубликовано 27 июня, 2023 · Жалоба 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). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fingertouch 2 27 июня, 2023 Опубликовано 27 июня, 2023 · Жалоба 23 часа назад, StewartLittle сказал: P.S. А где покупали-то ? Говорят, где-то у китайцев напрямую. Больше пока никакой инфы нет ( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimitrius 1 30 июня, 2023 Опубликовано 30 июня, 2023 · Жалоба В 27.06.2023 в 11:00, Abo сказал: К сожалению openFPGALoader прикрутить будет сложно, в нашем случае все упирается в быстродействие МК (CY7C68013) который ногами JTAG управляет. Ну никак требуемых 2 МГц (судя по доке говина) он не надрыгает, да и прерывания нельзя запретить - а они будут лаги по длительности импульсов на JTAG давать - ногами в фоне дрыгаем. Сделайте это на плис, которая под рукой. Что может быть проще?😜 Soft МК туда + необходимая логика. И не нужны никакие прерывания ( считаю они вообще не нужны при наличии ПЛ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 15 июля, 2023 Опубликовано 15 июля, 2023 · Жалоба Может кто сталкивался с таким плата 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 198 15 июля, 2023 Опубликовано 15 июля, 2023 · Жалоба 13 минут назад, xVekx сказал: Может кто сталкивался с таким плата tangprimer20k(док ver3711 модуль ver3690) перепрограммировать флешь удается не всегда крашит openFPGALoader, иногда чисто случайно после того как пару раз DIP_SW 1 переключить - удается ,но тоже не всегда получается перепрошить. Через что вы её прошиваете? Если через родной Dock, то скорее всего дело в прошивке BL702, который там не совсем удачно прикидывается FT2232H. Можно попробовать перепрошить его прошивкой с этого форума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 15 июля, 2023 Опубликовано 15 июля, 2023 (изменено) · Жалоба 7 часов назад, makc сказал: Через что вы её прошиваете? Если через родной Dock, то скорее всего дело в прошивке BL702, который там не совсем удачно прикидывается FT2232H. Можно попробовать перепрошить его прошивкой с этого форума. Да, я помню про этот нюанс. Но тут ещё одно на плате стоит флешь xt25f32b-s, а по спеке на плате должно W25Q32JVS может тайминги... Хотя если шить в SRAM c флагом -m то все все нормально. UPD. попробовал перепрошить тот же результат. Изменено 16 июля, 2023 пользователем xVekx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 198 16 июля, 2023 Опубликовано 16 июля, 2023 · Жалоба 9 часов назад, xVekx сказал: Но тут ещё одно на плате стоит флешь xt25f32b-s, а по спеке на плате должно W25Q32JVS может тайминги... Родным Gowin Programmer пробовали прошивать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 16 июля, 2023 Опубликовано 16 июля, 2023 (изменено) · Жалоба 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! Изменено 16 июля, 2023 пользователем xVekx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 198 16 июля, 2023 Опубликовано 16 июля, 2023 · Жалоба 14 минут назад, xVekx сказал: на удивление шьет 3 из 3 а режиме exFlash Erase,Program,Verify thru GAO-Bridge Тогда не вижу причин упорствовать с openFPGALoader, т.к. он далеко не идеален по качеству кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 16 июля, 2023 Опубликовано 16 июля, 2023 (изменено) · Жалоба 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". Изменено 16 июля, 2023 пользователем xVekx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DerKetzer 0 7 августа, 2023 Опубликовано 7 августа, 2023 (изменено) · Жалоба У этих FPGA(GV1N-1P5) внутри есть Flash для хранения прошивки? Как у altera MAXV? Изменено 7 августа, 2023 пользователем DerKetzer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 198 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 1 час назад, DerKetzer сказал: У этих FPGA(GV1N-1P5) внутри есть Flash для хранения прошивки? Как у altera MAXV? У GW1N есть. А что вы такое написали - не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DerKetzer 0 8 августа, 2023 Опубликовано 8 августа, 2023 · Жалоба On 8/7/2023 at 4:48 PM, makc said: У GW1N есть. А что вы такое написали - не знаю. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться