簡介:
arm-daplink仿真器是 ARM團隊推出的開源仿真器項目,支持仿真接口SWD和JTAG,還有虛擬UART串口,所有arm內核的芯片皆可仿真燒錄。支持使用的IDE有MDK和IAR。開源代碼託管在了github倉庫中,倉庫地址:https://github.com/ARMmbed/dapjs
daplink沒有一個統一的硬件標準,支持的主控有很多,一般採用NXP或ST的芯片。stlink,jlink等燒錄器的硬件都可以刷入固件變為一顆daplink仿真器。由於SWD和JTAG時序完全由IO模擬生成和解碼,整個代碼架構很清晰,可自由伸縮、修改。定製一個和自己硬件匹配的源碼也不難做到,這樣即便一個最小系統板也刷成daplink仿真器,下面便來設計一個自己的DAPLINK燒錄器。
硬件參考電路:
- 燒錄器主控:stm32f103cxt6
- USB口:Type-C
- USB枚舉方式:PNP三極管控制低電平枚舉
電路模塊:
- USB:
USB連接器電路,由三極管枚舉控制1.5K上拉電阻,數據線串聯兩顆22R的匹配電阻,採用Type-C接口可正反插使用。
- MCU-POWER:
USB口5V輸入接入一顆1206封裝的自恢復保險絲,用於避免電路短路引起的損壞。然後使用一顆RT9193-LDO(5V-3.3V)給仿真器電路供電。
- MCU-CTRL:
stm32f103cxt6芯片最小系統電路。包含復位和boot選項等
- XTAL:
8MHZ晶振,給主控芯片提供驅動時鐘
- DOWNLOAD:
預留GND,SWD,CLK三線用於給仿真器刷入固件使用
- STATUS-LED:
兩顆LED指示燈用於顯示DAPLINK仿真器的工作狀態
- CONNECT:
仿真器對外連接端口,包含虛擬串口、SWD接口、對外供電接口(5V,3.3V)等
關鍵IO清單:
- LED-COM:連接成功指示燈
- LED-RUN:正在運行指示燈
- SERIALRX/TX:虛擬串口接口(需要連接到芯片的UART口上)
- SWDIO_OUT/IN:SWD數據端口(兩線中間串聯一顆100R電阻)
- SWCLK:SWD時鐘端口
- USB_ENUM:USB枚舉控制
- RESET:復位端口(正常下載這個可以不使用)
閱讀更多 坎星班運工 的文章