專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

坎坷的STM32F103 CMSIS-DAP 調(diào)試器

作者:網(wǎng)絡(luò)大牛   來源:互聯(lián)網(wǎng)   點(diǎn)擊數(shù):  更新時間:2014年05月28日   【字體:

以下轉(zhuǎn)自一位電子大牛的博客: http://blog.sina.com.cn/s/blog_4680937f0101srxl.html 

我在X893的設(shè)計基礎(chǔ)上重新設(shè)計了STM32F103 CMSIS-DAP調(diào)試器(名字好長,應(yīng)該縮寫一下:F103-DAP)。下圖為X893原版設(shè)計。

 



與原始設(shè)計相比,我做了如下修改:

 

  • 將兩個USB改為單組USB Mini接口;
  • 提供單組2.54mm/100mil腳距SWD調(diào)試口,另購轉(zhuǎn)換配件支持50milSWD調(diào)試口;
  • 采用四組Pin Header共30Pin支持?jǐn)U展,并兼容mikroBUS接口,可以用于快速原型構(gòu)建
  • 采用6Pin接口,通過SWD/UART1連接仿真MCU用于調(diào)試和ISP下載
  • 跳針連接BOOT1,下載更加穩(wěn)定;
  • 缺省低成本STM32F103C8T6(64KB),也可以焊接STM32F103CBT6(128KB);

 

總的特性

  • CMSIS-DAP調(diào)試器,支持Keil/IAR/CoIDE和其他GCC IDE;
  • USB-HID驅(qū)動,無需安裝驅(qū)動;
  • USB-CDC,支持調(diào)試代碼;
  • 支持Cortex-M0/M0+/M3/M4/A7調(diào)試,并支持其他廠牌產(chǎn)品;
  • 支持mikroBUS,可以立刻獲得超過百種擴(kuò)展板,構(gòu)建客戶應(yīng)用;
  • 支持pySWD/pyOCD等開源調(diào)試工具和編程工具。

 

 

我昨天剛剛交給PCB廠家生產(chǎn),期待首批10片樣品可以工作正常并透過Taobo/Tindie投放市場。不過這一批就是手焊的了。測試完了之后,需要優(yōu)先寄給X893一片。

繼續(xù)前文《STM32F103 CMSIS-DAP 調(diào)試器》,設(shè)計了PCB,并手動焊接了兩片,F(xiàn)在還未能正常工作。很遺憾。需要原設(shè)計者的協(xié)助才能夠繼續(xù)。

 

 

硬件設(shè)計缺陷

 

本版設(shè)計中我用臺廠RickTek LDO替代了TI的LDO,雖然都是SOT23-5封裝。但是直接替換后忘了確認(rèn)5個引腳的連接。結(jié)果導(dǎo)致在原理圖中看上去已經(jīng)連接,但實(shí)際上VIN引腳在PCB中沒有任何電氣連接。

 

結(jié)果,不得不手動焊接了一根飛線?磥鞥AGLE的替換功能存在BUG,需要額外注意。

 

每次元件替換后需要仔細(xì)查看連接線。

 

手動焊接失敗率高

 

雖然現(xiàn)在我已經(jīng)可以手動焊接0.5mm腳距的QFP80/TSSOP20等封裝。重點(diǎn)是:

  • 助焊劑去除氧化層;
  • 預(yù)先在焊盤上少量焊錫;
  • 將元件對準(zhǔn)焊盤(最重要);
  • 加熱焊盤,焊錫會自動吸附到引腳上; 

即便如此,兩次焊接QFP,其中有一次返工;另外一次不知何故斷了一個引腳,好在只是ADC,不用也可以。

 

手動焊接只有靠多次焊接來積累手感和經(jīng)驗(yàn)了。直到到達(dá)熟練工的程度。

 

硬件調(diào)試問題

 

我的硬件調(diào)試流程是:

  • 先焊接LDO,查看電源是否工作正常;(檢查出LDO電源問題
  • 再焊接MCU, 查看MCU是否會發(fā)熱;(5V VBUS/3V3電源工作正常)
  • 再通過ISP下載代碼,查看復(fù)位情況;(失敗,待查RX/TX,復(fù)位,BOOT0/BOOT1
  • 或者通過SWD/JTAG下載代碼,通過調(diào)試器查看MCU的晶體和GPIO的外設(shè)工作情況;(JLINK)
  • 最后連接PC,查看USB工作情況;(一個成功安裝,另外一個USB設(shè)備無法識別

 

固件設(shè)計缺陷

 

X893的CMSIS-DAP設(shè)備是復(fù)合設(shè)備,分別為CMSIS-DAP CDC/DCI/HID。采用Keil的USB Device協(xié)議棧。但是好像有缺陷。

 

通過USBVIEW查出在CDC Interface里有設(shè)計四組Unknown Descriptor,結(jié)果導(dǎo)致HID設(shè)備根本沒有安裝。而CMSIS-DAP的主設(shè)備其實(shí)就是HID。所以Windows XP安裝后還是無法作為調(diào)試器使用。而CDC實(shí)際上也沒有測試過。

 

有人報告過Windows XP中HID可以安裝,CDC不可以。難道XP下還有不同情況?

 

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

 

我準(zhǔn)備在Linux下查看對應(yīng)情況。

 

源碼編譯問題

 

源碼是采用MDK4.54編譯的,但是在MDK4.71下編譯大量報錯。有人報告MDK5不行,但是MDK4.72可以,我在官網(wǎng)上只有4.74可以下載。到時候再試一試吧。

 

使用源碼也是主要想看看那四組未知描述符是如何出現(xiàn)的。

 

以上是最近更新報告。有情況再更新。

關(guān)閉窗口

相關(guān)文章