Cheap CMSIS-DAP/DAPLink SWD module based on NS32F103CBT6 (an STM32-clone?). It has both a debugger and a serial/UART port on a single USB device just like the J-Link OB v2 debugger (based on STM32F072) - better than those ST-Link debugger clones.
MCU interface:
- SWD (with pull-up resistors to 3V3)
- PB10 - CLK
- PB11 - DAT
- CDC-UART (UART1)
- PA9 - TXD
- PA10 - RXD
- LEDs (active high)
- PA2 - running status
- PA3 - connected status
- USB:
- PA11
- PA12 (with fixed pull-up resistor)
Firmwares:
(*should work also on chips with smaller ROM STM32F103C8 (like the BluePill C8)
- original: CMSIS_DAP-NS32F103CB-original-fw.hex
- modified: DAPLink-CMSIS_DAP-32f103-SWD_PB10PB11-CDC_PA9PA10-LED_PA2PA3.hex
Tested only on Ubuntu host.
sample kernel logs if using original FW:
usb 1-1: new full-speed USB device number 44 using xhci_hcd
usb 1-1: New USB device found, idVendor=c251, idProduct=f001, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: CMSIS_DAP
usb 1-1: Manufacturer: CMSIS-DAP by ARM
usb 1-1: SerialNumber: 202108120001
cdc_acm 1-1:1.0: ttyACM0: USB ACM device
hid-generic 0003:C251:F001.0015: hiddev0,hidraw2: USB HID v1.00 Device [CMSIS-DAP by ARM CMSIS_DAP] on usb-0000:00:14.0-1/input2
Sample kernel logs if using the modified FW:
usb 1-1: new full-speed USB device number 52 using xhci_hcd
usb 1-1: device descriptor read/64, error -71
usb 1-1: new full-speed USB device number 53 using xhci_hcd
usb 1-1: New USB device found, idVendor=0d28, idProduct=0204, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: DAPLink CMSIS-DAP
usb 1-1: Manufacturer: ARM
usb 1-1: SerialNumber: 20220218979699080605210b3030153632303030
cdc_acm 1-1:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
usbhid 1-1:1.2: couldn't find an input interrupt endpoint
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Sample openocd configuration:
source [find interface/cmsis-dap.cfg]If using the original FW, need to add these on the configuration:
transport select swd
source [find target/stm32f4x.cfg]
adapter speed 4000
init
targets
reset halt
cmsis_dap_vid_pid 0xc251 0xf001
cmsis_dap_backend hid
Not tested:
- UDisk drag-n-drop (looks like not working)
- WebUSB
size comparison (from left to right) :
- Blue Pill STM32F103C8
- WCH-Link (based on 8051 mcu) - cheaper
- NS32F103CB module
- J-Link OB v2 clone (STM32F072CB)
Reference:
- Official ARM DAPLink source code: https://github.com/ARMmbed/DAPLink