Не удается запустить плату обнаружения STM32 L1

У меня свежая плата обнаружения STM32 L1, и, похоже, она сломана. Но я не совсем уверен.

При подключении платы через USB к машине Linux, плата запускается отлично, и демонстрация работает так, как описано поставщиком.

Но я не могу подключиться к этой плате.

➜ lsusb -s 002:074
Bus 002 Device 074: ID 0483:3748 STMicroelectronics ST-LINK/V2

Плата вроде подключена, большая перемычка (CN3) для переключения между ST-LINK и DISCOVERY установлена ​​в положение DISCOVERY. Но когда я пытаюсь использовать утилиту st-link, я получаю.

➜  stlink git:(master) ./st-flash --reset erase
libusb_handle_events() timeout
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
2015-12-25T19:24:57 INFO src/stlink-common.c: Loading device parameters....
libusb_submit_transfer(-6)
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
libusb_submit_transfer(-6)
[!] send_recv
2015-12-25T19:24:57 WARN src/stlink-common.c: unknown chip id! 0
fish: Job 1, './st-flash --reset erase' terminated by signal SIGSEGV (Address boundary error)

Также OpenOCD не может общаться с платой.

openocd -f board/stm32ldiscovery.cfg
Open On-Chip Debugger 0.9.0 (2015-12-25-18:43)
Licensed under GNU GPL v2
For bug reports, read
     http://openocd.org/doc/doxygen/bugs.html
adapter speed: 300 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : clock speed 240 kHz
Error: reset device failed
in procedure 'init' 
in procedure 'ocd_bouncer'

Микросхема на плате - STM32L152RCT6. Я работал с STM32F0..4 раньше и никогда не имел таких проблем, но я не работал с серией L раньше, поэтому я не уверен, проблема ли это в плате, или я пропускаю здесь что-то важное.

РЕДАКТИРОВАТЬ: Используя OpenOCD, я обнаружил неожиданное поведение. При первом запуске я получаю сообщение об ошибке:

Error: init mode failed (unable to connect to the target)

При втором запуске:

Error: reset device failed

Затем устройство исчезает из системы, dmesg оставляет сообщения:

[ 1336.080239] usb 2-1.1: reset full-speed USB device number 4 using ehci-pci
[ 1336.154250] usb 2-1.1: device descriptor read/64, error -32
[ 1336.329341] usb 2-1.1: device descriptor read/64, error -32
[ 1336.503334] usb 2-1.1: reset full-speed USB device number 4 using ehci-pci
[ 1336.566330] usb 2-1.1: device descriptor read/64, error -32
[ 1336.741385] usb 2-1.1: device descriptor read/64, error -32
[ 1336.915427] usb 2-1.1: reset full-speed USB device number 4 using ehci-pci
[ 1337.317517] usb 2-1.1: device not accepting address 4, error -32
[ 1337.390532] usb 2-1.1: reset full-speed USB device number 4 using ehci-pci
[ 1337.792623] usb 2-1.1: device not accepting address 4, error -32
[ 1337.793110] usb 2-1.1: USB disconnect, device number 4
[ 1337.855642] usb 2-1.1: new full-speed USB device number 5 using ehci-pci
[ 1337.918651] usb 2-1.1: device descriptor read/64, error -32
[ 1338.093691] usb 2-1.1: device descriptor read/64, error -32
[ 1338.267730] usb 2-1.1: new full-speed USB device number 6 using ehci-pci
[ 1338.330727] usb 2-1.1: device descriptor read/64, error -32
[ 1338.505783] usb 2-1.1: device descriptor read/64, error -32
[ 1338.679823] usb 2-1.1: new full-speed USB device number 7 using ehci-pci
[ 1339.081921] usb 2-1.1: device not accepting address 7, error -32
[ 1339.154935] usb 2-1.1: new full-speed USB device number 8 using ehci-pci
[ 1339.557024] usb 2-1.1: device not accepting address 8, error -32
[ 1339.557168] usb 2-1-port1: unable to enumerate USB device

Я думаю, что может быть проблема со скоростью адаптера, но пока я не уверен.

РЕДАКТИРОВАТЬ2: Я пробовал использовать Windows ST Link Utility, и я не могу подключиться к плате, плата вызывает «ошибку обнаружения» или «ошибку подключения», программное обеспечение предлагает изменить частоту или режим SWD. Я устал буквально от каждой комбинации, но ни одна не работает.

EDIT3: Если это кому-то поможет, плата была отправлена ​​обратно, у меня есть информация, что она действительно сломана, и у меня есть новая. Новый работает безупречно, как и ожидалось.


person mucka    schedule 25.12.2015    source источник
comment
возможно у вас сломалось устройство программатора ST-Link   -  person vlk    schedule 30.12.2015
comment
попробуйте отключить перемычки, которые соединяют часть stlink с тестируемым MCU, посмотрите, позволяет ли это хотя бы подключиться к stlink.   -  person old_timer    schedule 09.01.2016
comment
К сожалению, я пробовал это раньше, без изменений в ответе программного обеспечения, тот же результат.   -  person mucka    schedule 11.01.2016


Ответы (1)


Иногда я работаю с той же платой L1 Discovery в GNU / Linux. И texane / stlink, и OpenOCD обнаруживают его без каких-либо изменений. Вы можете увидеть результаты:

$ st-util 
2016-01-08T21:55:59 INFO src/stlink-common.c: Loading device parameters....
2016-01-08T21:55:59 INFO src/stlink-common.c: Device connected is: L1 Med-density device, id 0x10186416
2016-01-08T21:55:59 INFO src/stlink-common.c: SRAM size: 0x4000 bytes (16 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 256 bytes
2016-01-08T21:55:59 INFO gdbserver/gdb-server.c: Chip ID is 00000416, Core ID is  2ba01477.
2016-01-08T21:55:59 INFO gdbserver/gdb-server.c: Target voltage is 2917 mV.
2016-01-08T21:55:59 INFO gdbserver/gdb-server.c: Listening at *:4242...
$ openocd -f board/stm32ldiscovery.cfg 
GNU ARM Eclipse 64-bits Open On-Chip Debugger 0.10.0-dev-00141-g09aeb96-dirty (2015-10-28-11:56)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 300 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The    results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : clock speed 240 kHz
Info : STLINK v2 JTAG v25 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.913980
Info : stm32l1.cpu: hardware has 6 breakpoints, 4 watchpoints

Может быть, ваша доска действительно сломана, но перед тем, как утилизировать ее, я предлагаю вам два разных испытания. (a) Я думаю, что после вашего вопроса у вас есть еще одна плата ST (как вы упомянули STM32F0..4), возможно, с адаптером ST-LINK. Вы можете использовать его как внешний ST-LINK (например, это). (b) Попробуйте обновить встроенное микропрограммное обеспечение ST-LINK с помощью STSW-LINK005 какая версия java работает также в среде GNU / Linux. Плата показала хорошие результаты как до, так и после обновления.

person kaliczp    schedule 08.01.2016
comment
Спасибо за ваш ответ и предоставленный вывод. Раньше я не был уверен, должен ли OpenOCD работать «из коробки» или нет. У меня даже есть выделенный ARM jtag (oocdlink на основе FT2232), и MPU на плате, похоже, работает, поэтому, к сожалению, бортовая st-link как-то сломана. Интересно, смогу ли я найти неисправность без осциллографа. Что касается обновления прошивки, я пробовал это раньше, обновление программного обеспечения показывает, что обновление идет безупречно, но устройство не меняет поведения. - person mucka; 11.01.2016