But if you say it has a STM32F103C8T6 chip, that’s all it matters – just search for this chip name on PlatformIO Registry. You can use board IDs like bluepill_f103c8 (STM32Duino Arduino core) or genericSTM32F103C (maple core).
I did notice from that datasheet that the chip wasn’t represented, which I thought strange.
Using
bluepill_f103c8
has the same result without the workaround in stm32f1x.cfg and with it reports
----- 0 -----
xPack OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev (2019-07-17-15:21)
Licensed under GNU GPL v2
For bug reports, read OpenOCD: Bug Reporting
debug_level: 1
hla_swd
none separate
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08002b80 msp: 0x20010000
** Programming Started **
Warn : Cannot identify target as a STM32 family.
Error: auto_probe failed
embedded:startup.tcl:449: Error: ** Programming Failed **
in procedure ‘program’
in procedure ‘program_error’ called at file “embedded:startup.tcl”, line 508
at file “embedded:startup.tcl”, line 449
*** [upload] Error 1
----- 0-----
I have tried to get a buy link for the board and will pursue that further - the board was loaned
to me and the owner may be able to shed some light.
Ah my bad, I forgot about something: The difference in expected and actual ID code explains it completely. The “STM32F103C8” chip on your board is actually a chinese fake / clone chip called the CS32F103C8T6. These clones have a different internal ID code.
This was already discussed in the PlatformIO forums – keep the board = bluepill_f103c8 and add as a new platformio.ini option the lines
upload_flags = -c set CPUTAPID 0x2ba01477
that will make openocd stop complaining about the fake chip.
I have found a fix - this is all due to my not realizing that the nucleo boards have an order code
as mentioned in the datasheet you linked for MB1180. In my case
The order code is NUCLEO-L432KC which is mentioned both in the datasheet and on a sticker
on the board. (For others with this issue, the sticker is just the L432KC and is stuck to the metal on the usb receiver on the board with a small dymo like label.)
The part number on the chip is F103CBT6, not F103C8T6. High magnification was required to
detect the B not 8. This is a current part number.
Bottom line is that there is a
board = nucleo_l432kc
which matches the order code and which
makes everything work properly.
Sorry to lead you down the wrong path with my misreading of the part number, and thanks again
for all the help.
The STM32F103CBT6 on the bottom of the board is the ST-Link flasher. Yes, the ST-Link is just that chip with a special firmware, that’s all it is (docs)