DCVostok / vostok-1-frmwrk-vn-arduino

Arduino core support for Vostok boards based on k1921vk MCUs
13 stars 0 forks source link

Не стирается 2 #5

Open mikchel-26 opened 4 months ago

mikchel-26 commented 4 months ago

Не стирается и не шьётся, хотя всё делал по инструкции. https://github.com/DCVostok/vostok-1-frmwrk-vn-arduino/blob/main/doc/Activate_JTAG.ru.md Пробовал стирать память из Platformio и напрямую из cmd.

Программатор - клон stlink-v2.

Удерживал нажатой кнопку USER после сброса и во время запуска скрипта service_full_erase.

Ниже лог из из Platformio:

C:\Users\chelushkin_mn\.platformio\packages\tool-openocd-k1921vk\bin\openocd -s C:\Users\chelushkin_mn\.platformio\packages\framework-k1921vk-sdk\tools\openocd\openocd-snippets\k1921vk035 -s C:\Users\chelushkin_mn\.platformio\packages\tool-openocd-k1921vk\scripts -f interface/stlink.cfg -c "transport select hla_swd" -f target/k1921vk035.cfg -c "init; reset init; flash probe 0; k1921vk035 srv_erase; exit"
xPack Open On-Chip Debugger 0.12.0+dev-00520-gc670187e1-dirty (2023-11-17-06:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Error: open failed

*** [service_full_erase] Error 1
kenny5660 commented 4 months ago

Добрый день, судя по логам openocd не может получить доступ к программатору stlink-v2, чтобы openocd на Windows смог получить доступ к stlink, нужно для него поставить драйвера libusb, например с помощью программы Zadig.

mikchel-26 commented 4 months ago

Добрый день.

Благодарю за помощь.

Воспользовавшись по вашей рекомендации программой Zadig протестировал все драйвера для STLink, которые она предлагает. И нашёл решение проблемы.

Решение проблемы

Как и в теме #3 проблема оказалась в буфере (или преобразователе уровней).

Примечание - Дальнейшие операции производились после переустановки драйвера.

Потыкав осциллом в точки (см. рисунок) цепей SWDIO и SLCK, обнаружил, что в одной из них нет сигнала при попытке очистки МК. Это была точка SWDIO со стороны МК, т.е. до МК не доходил сигнал.

Контрольные_точки

Попытка прогреть феном элемент результата не дала.

Подключив цепь SWDIO напрямую к МК (в обход буфера) и при зажатой кнопке USER (после Reset, как по инструкции) удалось очистить память МК.

Просьба

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

Логи успешной очистки памяти МК

xPack Open On-Chip Debugger 0.12.0+dev-00520-gc670187e1-dirty (2023-11-17-06:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Info : STLINK V2J43S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.287715
Info : [k1921vk035.cpu] Cortex-M4 r0p1 processor detected
Info : [k1921vk035.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for k1921vk035.cpu on 3333
Info : Listening on port 3333 for gdb connections
[k1921vk035.cpu] halted due to debug-request, current mode: Thread 
xPSR: 00000000 pc: 00000000 msp: 00000000
Info : K1921VK035 detected

Рабочие драйвера

Для драйверов были почти одинаковые логи:

C:\Users\chelushkin_mn\.platformio\packages\tool-openocd-k1921vk\bin\openocd -s C:\Users\chelushkin_mn\.platformio\packages\framework-k1921vk-sdk\tools\openocd\openocd-snippets\k1921vk035 -s C:\Users\chelushkin_mn\.platformio\packages\tool-openocd-k1921vk\scripts -f interface/stlink.cfg -c "transport select hla_swd" -f target/k1921vk035.cfg -c "init; reset init; flash probe 0; k1921vk035 srv_erase; exit"
xPack Open On-Chip Debugger 0.12.0+dev-00520-gc670187e1-dirty (2023-11-17-06:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Info : STLINK V2J43S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.268829
Error: init mode failed (unable to connect to the target)

*** [service_full_erase] Error 1

Нерабочий драйвер

Неработающим драйвером оказался только один:

xPack Open On-Chip Debugger 0.12.0+dev-00520-gc670187e1-dirty (2023-11-17-06:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Error: open failed

*** [service_full_erase] Error 1
kenny5660 commented 4 months ago

Спасибо за диагностику. Драйвер USB Serial (CDC) как раз и не должен отрабатывать так он используется для USB-UART устройств. По электросхеме чуть позже ответит мой коллега @demsergey