CMSIS-DAP adapter

Simple PCB for CMSIS-DAP debug adapter. Additional serial (UART) interface.

Compatible with Keil ARM. Available on Github (Eagle files and codes).

Provide USB HID (for debug) and USB Serial (for messages) on STM32F103C8 chip.

25 comment(s) so far

  1. Great! Does it work with any ARM device?Also does it mean CMSIS supports both serial and SWD on the target side?

  2. Source Code does not compile with µVision. Does this require MDK pro version? Thanks for your answer.

  3. Balaji, I had compilation errors with MDK-5.00, but with MDK-4.72 firmware build goes fine.

  4. I got serial ttl uart to ethernet/wifi with PCB/MCU

    More info: http://www.tcp232.net

  5. Hi

    This is an interesting adapter I would like to play with.

    Unfortunately it looks like I need a prof. license to compile the code

    .\build\CMSIS-DAP.axf: Error: L9937E: RL-ARM is not allowed with this license

    Could you ad the stm32 binary to the repository or could you email it to me?



  6. Hi,

    i add



  7. Hi

    Thank you that is awesome!

    May I bug you with one more problem ?

    I am too stupid to correct the stm standad inf driver so it accepts your device and installs the vcom driver.

    I tested the cmsis dap adapter under linux and the vcom port works. Under Xp I only get the hid part running.

    Could you please also add the inf file ?

    I am very curios about what I missed to change,...



  8. use


    to install under windows

  9. I have built a custom DAP-F103 based upon your design. I planned to send one to you after testing.

    After downloading the v2 hex into F103C8 via JLINK, I connected it to XP. However, after installation, I can only find CDC, the HID is missing. Therefore I can not use it as a debug interface. Any clue?

    I have checked with usbview (Microsoft), I do find the 3 interfaces (CMSIS-DAP CDC/CMSIS-DAP DCI/CMSIS-DAP HID). But only first one was installed.

  10. It seems there are some "unknown" descriptors, which might stop OS to install following interfaces. Please check out its clip:

    Interface Descriptor:

    bInterfaceNumber: 0x00

    bAlternateSetting: 0x00

    bNumEndpoints: 0x01

    bInterfaceClass: 0x02

    bInterfaceSubClass: 0x02

    bInterfaceProtocol: 0x01

    iInterface: 0x03

    0x0409: "CMSIS-DAP CDC"

    Unknown Descriptor:

    bDescriptorType: 0x24

    bLength: 0x05

    05 24 00 10 01

    Unknown Descriptor:

    bDescriptorType: 0x24

    bLength: 0x05

    05 24 01 03 02

    Unknown Descriptor:

    bDescriptorType: 0x24

    bLength: 0x04

    04 24 02 06

    Unknown Descriptor:

    bDescriptorType: 0x24

    bLength: 0x05

    05 24 06 00 01

  11. Could you please tell me why you connect usb pin d+

    to PA8 (via a 1k5 resister R16) instead of connecting it to 3v3 directly? Thank you.

  12. Sorry for bothering, I checked the code:


    #define PIN_USB_CONNECT_PIN 8


    #define PIN_USB_MODE GPIO_Mode_Out_PP




    And thank you for this great work.

  13. Question about AXI-AP?

    I have a problem with access memory (read/write data)"Sram" using the CMSIS-DAP protocol.The access port used is AXI-AP.

    Although I can read/write data when I used AHB-AP and APB-AP.

    So can you help me about this problem if we have another configuration within the register CSW or TAR or barrier transaction?

    you find below the code of function read data that i used:

    // RDDI-DAP Read Data

    // adr : Address

    // val : Pointer to Value

    // return : 0 - Success, else Error Code

    static int RDDI_DAP_ReadData (DWORD adr, DWORD *val) {

    int status;

    int regID[2];

    int regData[2];

    if (rddiHandle == NULL) return (RDDI_DAP_ERROR_INTERNAL);

    // TAR = adr

    regID[0] = DAP_AP_REG_TAR;

    regData[0] = adr;

    // DRW read

    regID[1] = DAP_AP_REG_DRW | DAP_REG_RnW;

    // R/W DAP Registers

    status = rddi_DAP_RegAccessBlock(rddiHandle, rddiDAP_ID, 2, regID, regData);

    status = RDDI_DAP_CheckStatus(status);

    if (status) return (status);

    *val = regData[1];

    return (0);


  14. Is it possible to add USB MSC into this CMSIS-DAP? It would be nice this piece of work could compliance with mbed. Tq

  15. Hi, I am using STM32F103CB (128k). With the CMSIS-DAP-V2-F103.hex in the repository, the DAP works ok on SWD, but not in JTAG. Is it correct?

    The Keil project compilate ok, but when use it to generated .hex, I don't have JTAG and SWD, doesn't work. I hope someone help me.

  16. Hi, check definitions in DAP_config.h

    #define DAP_JTAG 1 ///< JTAG Mode: 1 = available, 0 = not available.

  17. Hello, I would like to transplant CMSIS DAP to STM32F405, but do not know your USB M3 library, you can provide a USB M4 library? thank you very much!

  18. Use any example for HID and implement to any STM32 processor. I havn't F405 so can't check.

  19. Has anyone built this firmware with some other tool-chain, Keil is too expensive for me to buy. I have GCC ARM tool-chain.

  20. You can use Keil free edition (32K code)

  21. Добрый день. Не подскажете можно ли приспособить эту прошивку под F101? Заранее спасибо за ответ.

  22. F101 не поддерживвает USB. Можно использовать F102 или F103. Если изменить плату, то можно любой с поддержкой USB.

  23. Большое спасибо. Извиняюсь за свою не внимательность, я как-то пропустил это при просмотре Datasheet-а.

  24. Hi, I just built the CMSIS DAP adapter. I succeeded flashing the STM32F103 but with the .hex file. It however doesn't seem to do anything. Am I missing something? Thanks!

  25. rebuild DAP ADD SWIM 3Q

Post your comment

Thanks for your comments

  • Comment



Subscribe to x893 blog Subscribe