LINUX.ORG.RU

Китайский программатор и плата STM8S103F3P6

 , ,


1

2

Купил плату и программатор в радиомагазине, скачал stlink с гитхаба, пытаюсь им опознать программатор но что то как то никак, теперь не знаю как все это дело подружить.

./st-flash --debug /dev/stlinkv2_1 erase      
st-flash 1.5.1-30-g84f63d2
2019-06-07T22:19:08 WARN sg.c: Failed to find an stlink v1 by VID:PID
2019-06-07T22:19:08 ERROR sg.c: Could not open stlink device


./st-flash  write blink.ihx  0x08000000
st-flash 1.5.1-30-g84f63d2
2019-06-07T22:34:11 INFO common.c: Loading device parameters....
2019-06-07T22:34:11 WARN common.c: Invalid flash type, please check device declaration


Bus 005 Device 002: ID 0483:3748 STMicroelectronics ST-LINK/V2


[ 8520.844184] usb 4-5: USB disconnect, device number 2
[ 8520.844423] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 8520.844461] pl2303 4-5:1.0: device disconnected
[ 8527.964750] usb 4-5: new full-speed USB device number 3 using ohci-pci
[ 8528.174072] usb 4-5: New USB device found, idVendor=0483, idProduct=3748
[ 8528.174076] usb 4-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8528.174078] usb 4-5: Product: STM32 STLink
[ 8528.174080] usb 4-5: Manufacturer: STMicroelectronics
[ 8528.174082] usb 4-5: SerialNumber: RÿkI\xc2\x84VVFU\xc2\x87
[ 8997.181946] usb 4-5: USB disconnect, device number 3
[ 8998.749279] usb 4-5: new full-speed USB device number 4 using ohci-pci
[ 8998.957316] usb 4-5: New USB device found, idVendor=0483, idProduct=3748

★★★★★

я f4 stlink через openocd шил, работало, надо было только ресет не забывать нажимать

openocd -f interface/stlink-v2.cfg -f board/stm32f4discovery.cfg -c "init" -c "reset init" -c "flash write_image erase myblink.hex" -c "reset" -c "shutdown"
- примерно так

Silerus ★★★★
()
Ответ на: комментарий от splinter

Я то читал. Только ты прошиваешь через стандартный флешер. Попробуй через утилиту. Да и как подключил свисток к МК ?

oldpsyho
()
Ответ на: комментарий от splinter

В первом сообщении - не нашло программатор. Во втором - микроконтроллер не видит.

Через openocd прошить можно так: openocd -f interface/stlink-v2.cfg -f target/stm8s103.cfg -c «init» -c «reset halt» -c «flash write_image erase blink.hex 0x08000000» -c «reset» -c «shutdown»

oldpsyho
()

Под рутом пробовал? Может там банально проблемы с правами.

anonymous
()
Ответ на: удаленный комментарий

ССЗБ

За 1 тыр купил китайский программатор, перепрошил кофемашину, чтобы кофемолка заработала. Ремонт стоил бы 10 тыр. Что плохого?

Tigger ★★★★★
()

подобные фиговины (программаторы) могут содержать разные микросхемы контроллера UART. В зависимости от микросхемы, в Linux (и Windows)или уже есть драйвер микросхемы или его надо добавить. У вас, как видно из сообщений, микросхема Prolific PL2303. Делаю поиск в Google по словам pl2303 driver linux . Оказалось, что этот драйвер в ядре уже есть, но его надо активизировать. Команду найдёте.

Partisan ★★★★★
()
Последнее исправление: Partisan (всего исправлений: 1)
Ответ на: комментарий от Partisan

Причём тут UART ? Лог ты посмотрел по диагонали, написано же - pl2303 4-5:1.0: device disconnected

Там самый обычный китайский клон, он же ST-Link V2 mini. Вот например у меня он видится так:

[262556.414290] usb 2-4.2: new full-speed USB device number 47 using xhci_hcd
[262556.505682] usb 2-4.2: New USB device found, idVendor=0483, idProduct=3748, bcdDevice= 1.00
[262556.505687] usb 2-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[262556.505691] usb 2-4.2: Product: STM32 STLink
[262556.505694] usb 2-4.2: Manufacturer: STMicroelectronics
[262556.505696] usb 2-4.2: SerialNumber: HÿkH\xc2\x87WSV'\xc2\x87

oldpsyho
()
Ответ на: комментарий от oldpsyho

ну, если смотреть лог по диагонали... то там устройство несколько раз переопределяется — возможно порт/кабель/питание... мне же кажется, что оно не входит в «режим» (но это только «телепатические» догадки)

anymouze ★★
()
Ответ на: удаленный комментарий

Не гори. Лучше скинь фотку того что купил, и крупно потроха программатора. А то телепаты всё на морях.

oldpsyho
()
Ответ на: удаленный комментарий

Блин, Тигра, ты заходишь в магазин электроники, видишь программатор на stm8 и отладку на stm8, вспоминаешь что давно хотел пощупать sdcc для микроконтроллеров и что stm8 намного более перспективен чем неудачники pic8 и avr8 который собственно теперь одно целое, также вспоминаешь что все это вроде заводиться в линуксе... понимаешь что выходные вечерком вроде бы свободны... берешь все это + резистор и светодиод и с приподнятым настроением дуешь домой что слегка обломиться.

splinter ★★★★★
() автор топика

Правила для udev прописать не забудь, выставь там MODE=0666.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от splinter

Так я как раз ничего против не имею. :) Я ведь отвечал тупому анону, которому надо дорого-богато.

Tigger ★★★★★
()

Если занимаешься STM8, тебе, возможно, пригодятся мои сниппеты.

Да, нынче есть значительно более дешевые МК на базе 8051 — CH55x. С аппаратным USB! Да, периферия у них по сравнению с STM8 — говно, зато вполне классные вещи можно делать: очень часто бывает нужен элементарный МК с USB, который просто парой-тройкой ног сможет дрыгать и давать данные с одного канала АЦП.

Eddy_Em ☆☆☆☆☆
()
cat /etc/udev/rules.d/49-stlinkv2.rules

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
    MODE:="0666", \
    SYMLINK+="stlinkv2_%n"
Eddy_Em ☆☆☆☆☆
()

P.S. На али появились STM32F072 в 48-ногом корпусе. По цене всего лишь бакс за штучку!

Крайне рекомендую, если нужны 32 бита, но еще не нужны флоаты и DSP.

Если же нужны и флоаты, и DSP, то есть STM32F303.

А восьмибитки все-таки — гадость!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Самый простой вариант, это взять что-то на подобие blue pill. Тем более что у ТС уже есть st-link. Самый китайский blue pill на stm32f103 нормально заводится через swd.

oldpsyho
()
Ответ на: комментарий от oldpsyho

blue pill

Это — прошлый век! Во-первых, STM32F103 — «первый блин комом», эррата у него очень приличная, а периферия — дерьмо! Во-вторых, по цене тоже не канает.

И да, для работы с STM32 не нужно тратиться на эти st-link'и: у всех есть UART'овский бутлоадер, т.е. достаточно преобразователя USB<>TTL (который и так у всех есть), а у многих вообще есть DFU «из коробки». Те же STM32F0x2 я частенько прошиваю через DFU.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Зато 103-х как говна. Не нравится? Nucleo-32/64/144 С программатором и отладчиком на борту. Мало? Есть Discovery, там еще и куча датчиков на борту.

P.S. От темы ТС ушли в сторону, изначальный же вопрос был не в выборе девборды....

oldpsyho
()
Ответ на: комментарий от oldpsyho

На вопрос ТСа ответ дали практически сразу: он забыл правило udev куда нужно положить!

А 103-х как говна только из-за того, что они сами по себе — говно! Поэтому ST забила и отдала эти чипы на растерзание китайцам, из-за чего они продаются значительно дешевле официальной стоимости.

Если так хочется старших кортексов, то есть STM32F303, я уже про это говорил. А вообще, для повседневных задач за глаза хватает STM32F0x2. У меня на гитхабе уже ворох всякой всячины под нулевую серию.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

P.S. Я замучился портировать USB HID и USB CDC с STM32F0x2 на 103! Вроде бы отлично работающий на 042 и 072 код на 103 глючил. Ну, это уже дело прошлое. На гитхабе под обе линейки у меня код есть, если кому нужно — берите. А то я вообще офонарел: сколько народ всякой всячины делает на STM32, а для работы с USB нигде ничего в интернетах нет!!! Вот как так можно?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

303-й от 401/411 почти по цене не отличается, но, для 4хх куда больше всяких примеров написано.

P.S. Я для таких целей купил себе Open746-C и не парюсь. Под 746-ю серию есть у тебя чего ?

oldpsyho
()
Ответ на: комментарий от oldpsyho

Под 746-ю серию есть у тебя чего?

Мне такие дорогие МК не нужны, у меня задачи простые. Зачастую вообще хватит 10-рублевого 8-битного микроконтроллера...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Во наболтали. Даже и не понял, решена ли проблема автора темы, которая состояла в том, что в программаторе используется микросхема PL2303 (решение мгновенно находится в google по словам pl2303 linux driver).

то есть STM32F303, я уже про это говорил. А вообще, для повседневных задач за глаза хватает STM32F0x2.

Это не старшие, а дешёвые, хотя и дороже, чем Blue Pill. Для меня STM32 не самая важная тема сейчас в IoT, поэтому пока ограничился покупкой тоже недорогих, но более интересных мне (а не кому-то) Nucleo-L432KC и Nucleo-L452RE-P. То, что вы предлагаете, покупать не стал бы - мне не интересно. То, что я купил - у меня были свои соображения, и я не стану советовать это каждому желающему и не желающему. Зато потом могу купить и Blue Pill, для проектов, для которых оно подходит. Начинать изучение темы STM32 с Blue Pill вполне целесообразно, если не хочется тратить сразу много денег. У меня есть целая книжка (купил) издательства APress - Beginning STM32, где изложение ведётся именно на примере Blue Pill и подобного дешёвого программатора.

Partisan ★★★★★
()
Ответ на: комментарий от Partisan

которая состояла в том, что в программаторе используется микросхема PL230

Чем ты читаешь? Нет у него никакой PL2303 «в программаторе»!!! Прочти еще раз выхлоп!

хотя и дороже, чем Blue Pill

Ты видел «синюю пилюлю» за доллар?

IoT

Хипстерство!

Начинать изучение темы STM32 с Blue Pill вполне целесообразно

Совершенно нецелесообразно, т.к. под STM32F103 нет готовых сниппетов + эррата там такая, что офигеешь... Народ, вон, замучившись с I2C на 103 рисует себе софтовый!

книжка (купил) издательства APress - Beginning STM32

Говно никчемное. Не советую категорически! Из литературы нужны лишь даташит, RM и эррата. А набор сниппетов от ST помогает очень быстро освоиться с STM32F042. Со старшими значительно хуже: сниппетов, как я уже говорил, нет, а RM значительно толще. Ну и готового кода в интернете хрен найдешь, мусор один на калокубе каком-нибудь — это как осваивать программирование железа в мастдайке!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Не нравится HAL - не используй. В старших камнях кроме HAL есть LL.

Готовых примеров для камней старше 429-го действительно нету.

oldpsyho
()
Ответ на: комментарий от oldpsyho

LL

Еще одно ненужное Г. Руками код пиши, блин!

Готовых примеров для камней старше 429-го действительно нету.

Да их ни для каких камней, кроме нулевой серии, нет!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Да есть, вот только, часто совсем не то что нужно.
Но, для старта хватит. Остальное - смотреть даташит и примеры к младшим сериям.

https://github.com/kirandawadi11/STM32F7
https://github.com/k-code/stm32f4-examples
https://github.com/arocketman/stm32f3-discovery-projects
https://github.com/Seok-Jung/STM32F207
https://github.com/avislab/STM32F103

oldpsyho
()
Ответ на: комментарий от Eddy_Em

На вопрос ТСа ответ дали практически сразу: он забыл правило udev куда нужно положить!

там все с пакетиком ставилось.

KERNEL[190814.083472] add      /devices/pci0000:00/0000:00:13.0/usb5/5-1 (usb)
KERNEL[190814.087301] add      /devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0 (usb)
KERNEL[190814.087447] bind     /devices/pci0000:00/0000:00:13.0/usb5/5-1 (usb)
UDEV  [190814.102921] add      /devices/pci0000:00/0000:00:13.0/usb5/5-1 (usb)
UDEV  [190814.104820] add      /devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0 (usb)
UDEV  [190814.106393] bind     /devices/pci0000:00/0000:00:13.0/usb5/5-1 (usb)
KERNEL[190814.699143] add      /devices/parport0/ppdev0.0 (parport)
KERNEL[190814.699210] bind     /devices/parport0/ppdev0.0 (parport)
KERNEL[190814.699259] unbind   /devices/parport0/ppdev0.0 (parport)
KERNEL[190814.699285] remove   /devices/parport0/ppdev0.0 (parport)
UDEV  [190814.701328] add      /devices/parport0/ppdev0.0 (parport)
UDEV  [190814.702315] bind     /devices/parport0/ppdev0.0 (parport)
UDEV  [190814.703298] unbind   /devices/parport0/ppdev0.0 (parport)
UDEV  [190814.704108] remove   /devices/parport0/ppdev0.0 (parport)
KERNEL[190819.115616] add      /devices/parport0/ppdev0.0 (parport)
KERNEL[190819.115686] bind     /devices/parport0/ppdev0.0 (parport)
UDEV  [190819.117791] add      /devices/parport0/ppdev0.0 (parport)
UDEV  [190819.118802] bind     /devices/parport0/ppdev0.0 (parport)
KERNEL[190819.168349] unbind   /devices/parport0/ppdev0.0 (parport)
KERNEL[190819.168399] remove   /devices/parport0/ppdev0.0 (parport)
UDEV  [190819.170716] unbind   /devices/parport0/ppdev0.0 (parport)
UDEV  [190819.171727] remove   /devices/parport0/ppdev0.0 (parport)

root@bastilie:~# cat /etc/udev/rules.d/49-stlinkv
49-stlinkv1.rules    49-stlinkv2-1.rules  49-stlinkv2.rules    49-stlinkv3.rules    

splinter ★★★★★
() автор топика
Ответ на: комментарий от splinter

Официально SPL нет для камней старше F4, только HAL и LL

oldpsyho
()
Ответ на: комментарий от splinter

Во-первых, на SPL получается нечитаемый быдлокод, во-вторых, жуткий оверхед, а в-третьих, даже сами ST от этого говна отказались!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от splinter

Короче, есть регистры и CMSIS. Вот только в этом случае получится быстро и качественно, без оверхеда. А иначе как у абдуринщиков: «ой, у меня абдурина не может одновременно опрашивать датчик температуры и на экранчик выводить, наверное, надо более жирный контроллер взять»!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

ну отказались они не так давно, мне наоборот код на SPL больше нравился чем рисовалка под иксами. Что непонятного в функции RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);?

splinter ★★★★★
() автор топика
Последнее исправление: splinter (всего исправлений: 1)
Ответ на: комментарий от splinter

Ты про куб? В нём разве что интересно глянуть распиновку камня, и схему тактирования.

oldpsyho
()
Ответ на: комментарий от Eddy_Em

А 103-х как говна только из-за того, что они сами по себе — говно! Поэтому ST забила и отдала эти чипы на растерзание китайцам, из-за чего они продаются значительно дешевле официальной стоимости.

нет, не потому. на bluepill стоят б\у чипы. причем - порой попадаются 128кб, отмаркированняе как 64кб.

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

Хз, не видел. Зато попадались blue pill как на мк stm32f103c8 (64k), так и на stm32f103cb (128k).

oldpsyho
()
Ответ на: комментарий от splinter

Что непонятного в функции RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);?

Посмотри ее убогие исходники. А еще посмотри, сколько телодвижений нужно с этими структурами делать.

Проще написать сразу, как в сниппетах, заполнение регистров.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Partisan

Ты, похоже, не видел, сколько у меня всякой всячине на гитхабе.

Так что, утверждение на все 100% практическое. Теоретик!

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.