到Bootloader修復(fù))
手里有一臺(tái)VESC電調(diào)想用VESC-Tool升級(jí)固件或者把刷磚的板子救回來結(jié)果軟件里反復(fù)顯示連接超時(shí)想直接上SWD接好杜邦線又彈出一個(gè)SWD/JTAG Communication Failure。這個(gè)場(chǎng)景我自己也經(jīng)歷過不止一次。VESC這個(gè)開源電調(diào)在國(guó)內(nèi)玩電動(dòng)滑板、電動(dòng)沖浪板、DIY機(jī)器人的圈子里已經(jīng)不算新鮮但它那套“刷固件”的流程很多新手上手時(shí)還是容易卡殼尤其是一旦Bootloader出問題就只能靠SWD硬救。這篇就把我從正常刷寫、到SWD救磚、再到各種接線坑的完整過程寫下來希望能幫你少走幾趟彎路。1. 先搞清楚VESC電調(diào)刷的是什么、為什么要刷1.1 VESC電調(diào)的核心硬件與固件分工VESC全稱是Vedder ESC最早由Benjamin Vedder設(shè)計(jì)并開源。它本質(zhì)上是一塊基于STM32處理器的高性能無刷電調(diào)常見主控芯片是STM32F405或STM32F407功率部分用DRV8301/DRV8302這類柵極驅(qū)動(dòng)芯片加外部MOSFET橋臂來實(shí)現(xiàn)。跟普通航模電調(diào)最大的區(qū)別在于VESC可以做真正的FOC矢量控制電流控制精度高、低速扭矩大、剎車線性好而且全部參數(shù)都能通過上位機(jī)調(diào)節(jié)。板子上“固件”這個(gè)概念要拆成兩層看一層是Bootloader負(fù)責(zé)啟動(dòng)引導(dǎo)和底層升級(jí)另一層是Application固件也就是日常運(yùn)行電機(jī)控制算法的部分。VESC-Tool升級(jí)固件時(shí)本質(zhì)上是先把應(yīng)用層固件通過Bootloader寫進(jìn)Flash再由新的應(yīng)用固件接手后續(xù)工作。如果Bootloader被覆蓋或者損壞設(shè)備就會(huì)變“磚”這時(shí)候只能走芯片的SWD調(diào)試接口繞過所有軟硬件邏輯直接操作Flash。很多人第一次聽到“刷固件”以為特別危險(xiǎn)其實(shí)理解了這個(gè)分工之后就順了升級(jí)成功功能增強(qiáng)升級(jí)失敗通常也只是應(yīng)用層壞了Bootloader還在重新刷就行。最怕的是刷到一半斷電、選了錯(cuò)誤的硬件類型、或者手癢把Bootloader區(qū)域也擦掉那就必須動(dòng)SWD了。1.2 哪些情況需要自己刷固件正常使用中你并不需要經(jīng)常刷VESC。但以下幾種情況基本繞不開拿到一塊二手或庫(kù)存板子固件版本太老VESC-Tool已經(jīng)不支持必須升級(jí)。換了不同廠商的第三方硬件比如國(guó)產(chǎn)MKS、ESCape、或者自己焊的“便宜VESC”需要刷對(duì)應(yīng)固件才能讓功能和硬件匹配。官方發(fā)布了新版本修復(fù)了FOC檢測(cè)、CAN通訊或者電流采樣相關(guān)的bug。板子的Bootloader被別人刷花或者你自己在實(shí)驗(yàn)配置時(shí)把參數(shù)弄亂想要徹底重置。需要通過SWD檢查芯片是否被設(shè)置讀保護(hù)順便做一次全片擦除。如果你只是用原裝VESC配官方電機(jī)那確實(shí)可以一直不刷。但玩到后面想要接藍(lán)牙模塊、做遙控器配置、調(diào)再生制動(dòng)強(qiáng)度甚至讓多塊VESC通過CAN總線聯(lián)動(dòng)新固件的支持度就很重要了。1.3 VESC-Tool在整套流程里的角色VESC-Tool是官方上位機(jī)軟件跨平臺(tái)支持Windows、macOS、Linux界面里能完成的事情非常多固件升級(jí)、實(shí)時(shí)示波器、FOC電機(jī)檢測(cè)、遙控器配置、藍(lán)牙模塊設(shè)置、CAN總線管理、參數(shù)備份恢復(fù)等等。對(duì)于刷固件這件事VESC-Tool最方便的地方是可以直接在軟件里下載固件、選擇硬件配置、一鍵上傳基本不需要懂底層命令行。不過VESC-Tool再方便它也得依賴正常工作的USB通訊和Bootloader。一旦Bootloader沒了、芯片被鎖了、或者USB物理口損壞VESC-Tool就使不上勁了這時(shí)候SWD是最后也是最有效的救援通道。所以我一般會(huì)把VESC-Tool當(dāng)成日常工具把SWD當(dāng)成“手術(shù)臺(tái)”兩者結(jié)合著用才最穩(wěn)。2. 刷固件前的準(zhǔn)備工作軟件、驅(qū)動(dòng)、硬件連接2.1 安裝VESC-Tool與虛擬串口驅(qū)動(dòng)VESC-Tool官方版本可以從官網(wǎng)下載也可以從項(xiàng)目官網(wǎng)的下載頁(yè)拿對(duì)應(yīng)系統(tǒng)安裝包。安裝過程不復(fù)雜Windows用戶一路下一步即可。比較關(guān)鍵的是驅(qū)動(dòng)VESC板上的USB口通常走的STM32虛擬串口Windows下第一次插入電腦可能會(huì)識(shí)別成未知設(shè)備需要先裝ST官方VCP驅(qū)動(dòng)裝完后設(shè)備管理器里會(huì)多出一個(gè)COM口VESC-Tool就是靠這個(gè)COM口跟板子通訊的。Linux和macOS一般不需要額外驅(qū)動(dòng)插上后系統(tǒng)會(huì)自動(dòng)枚舉為ttyACM或者tty.usbmodem設(shè)備。但如果你用的是某些克隆板USB芯片可能不是原廠方案那就要注意了Windows下用一個(gè)叫Zadig的工具把驅(qū)動(dòng)切換成usbserial或者WinUSB再讓VESC-Tool重新識(shí)別。這個(gè)操作有點(diǎn)雙刃劍選錯(cuò)了會(huì)導(dǎo)致徹底連不上所以我一般建議先試原廠驅(qū)動(dòng)不行再考慮Zadig。安裝完成之后先別急著刷固件。打開VESC-Tool用一根數(shù)據(jù)線連接VESC和電腦觀察界面右下角或者連接按鈕附近是否出現(xiàn)COM口。很多莫名其妙的“連不上”問題其實(shí)都是線材只有充電功能沒有數(shù)據(jù)通道導(dǎo)致的所以準(zhǔn)備一根確定能傳數(shù)據(jù)的線很重要。2.2 認(rèn)識(shí)VESC板上的USB口和SWD引腳不同版本的VESC接口布局不完全一樣。常見VESC 4.12板上有一個(gè)Micro-USB口旁邊或者背面會(huì)有一排調(diào)試針腳VESC 6系列和很多第三方板子會(huì)提供Type-C或者更多的排針。USB口容易找SWD口則需要仔細(xì)看絲印。SWD至少需要四根線SWDIO、SWCLK、GND、3.3V。在VESC板上這些引腳通常被標(biāo)注為DIO、CLK、GND、3V3有的板子會(huì)直接寫SWDIO和SWCLK。個(gè)別板子還會(huì)把TX、RX、RST一起引出來方便做串口調(diào)試。如果你買的板子沒有絲印去找對(duì)應(yīng)的原理圖或者淘寶商品詳情頁(yè)一般都會(huì)有Debug接口定義。拿不準(zhǔn)的情況下最好用萬(wàn)用表驗(yàn)證一下GND和3.3V引腳防止接反燒東西。這里要特別提醒VESC的SWD引腳電壓基準(zhǔn)是3.3V調(diào)試器的邏輯電平也必須是3.3V。市面上有些ST-Link仿品或者單片機(jī)開發(fā)板引出的調(diào)試接口可能是5V電平直接懟到VESC上會(huì)有風(fēng)險(xiǎn)。最好用正規(guī)的ST-Link/V2或者支持3.3V電平的DAPLink。2.3 供電順序USB優(yōu)先還是電池優(yōu)先刷固件的時(shí)候VESC需不需要接大電池這是新手最容易糾結(jié)的問題。我的建議是只刷固件、不跑電機(jī)的情況下優(yōu)先用USB供電斷開電池或者只接低壓電源。原因是刷寫過程屬于低負(fù)載操作VESC板上的穩(wěn)壓器可以靠USB口的5V供電給芯片跑起來不需要電池。如果你同時(shí)接了大電池萬(wàn)一固件寫入后出現(xiàn)異常狀態(tài)功率管有可能瞬間導(dǎo)通輕則電機(jī)抖動(dòng)重則把MOSFET燒掉。尤其是芯片F(xiàn)lash被擦除的瞬間IO口可能處于不定狀態(tài)這時(shí)候大電池供電的風(fēng)險(xiǎn)會(huì)放大。如果板子的USB口不能單獨(dú)供電或者你的板子設(shè)計(jì)上必須電池給LDO供電那可以考慮接一塊電壓較低的電池比如3S鋰電池但一定記得把電機(jī)相線斷開。刷寫過程中看到異常發(fā)熱、冒煙跡象要立刻斷電檢查。我個(gè)人的操作習(xí)慣是USB先接入VESC-Tool識(shí)別到設(shè)備后再上低壓電源刷寫完成后先關(guān)電源再拔USB順序不要亂。3. 正常刷寫路徑通過USB用VESC-Tool升級(jí)固件3.1 連上VESC并識(shí)別設(shè)備先把VESC通過USB接到電腦打開VESC-Tool軟件一般會(huì)自動(dòng)掃描可用串口。點(diǎn)擊連接后如果成功界面會(huì)顯示出當(dāng)前固件版本、硬件型號(hào)以及一組實(shí)時(shí)參數(shù)。連接不上的時(shí)候重點(diǎn)檢查三件事設(shè)備管理器里有沒有COM口、串口是否被其他軟件占用、波特率設(shè)置是不是被改成了固定值。正常情況下波特率保持“Auto/自動(dòng)”即可不用手動(dòng)指定。VESC-Tool連接過程本身會(huì)先跟Bootloader和應(yīng)用固件握手如果你的Bootloader已經(jīng)損壞USB連接時(shí)可能會(huì)一直卡在握手階段軟件提示類似“Firmware read failed”。這種情況就別在VESC-Tool里死磕了直接進(jìn)入后面的SWD章節(jié)處理。識(shí)別成功后可以順手點(diǎn)一下“Read Configuration”把當(dāng)前參數(shù)讀出來備份。刷固件前備份參數(shù)是個(gè)好習(xí)慣因?yàn)橛行┛绨姹旧?jí)會(huì)把配置結(jié)構(gòu)重置或者自動(dòng)轉(zhuǎn)換失敗備份了才好恢復(fù)。3.2 選擇正確的硬件型號(hào)和固件版本VESC-Tool左側(cè)菜單里找到“Firmware”入口界面會(huì)要求選擇硬件類型。這一步非常重要硬件類型選錯(cuò)固件燒進(jìn)去輕則功能異常重則引腳配置錯(cuò)亂、電流采樣不對(duì)甚至導(dǎo)致電機(jī)運(yùn)行時(shí)炸管。常見的硬件選項(xiàng)有VESC 4.12、VESC 6、VESC 6 MK、以及第三方板子的專用版本。不確定硬件型號(hào)時(shí)看板子主控絲印、柵極驅(qū)動(dòng)芯片型號(hào)、板子絲印版本號(hào)或者問賣家。選好硬件后再?gòu)墓碳姹玖斜砝锾粢粋€(gè)目標(biāo)版本。VESC固件版本號(hào)常年更新官方會(huì)同時(shí)維護(hù)穩(wěn)定版和測(cè)試版。日常使用建議選穩(wěn)定版如果你遇到某個(gè)bug需要新固件修復(fù)再考慮測(cè)試版。VESC-Tool默認(rèn)會(huì)從在線倉(cāng)庫(kù)拉取固件列表如果網(wǎng)絡(luò)環(huán)境或者軟件版本較老導(dǎo)致拉取失敗可以選擇手動(dòng)加載本地bin文件。點(diǎn)上傳之后VESC-Tool會(huì)先把固件傳進(jìn)芯片然后自動(dòng)重啟板子整個(gè)過程大概十幾秒到幾十秒。中途千萬(wàn)別拔USB、別斷電也別亂點(diǎn)界面??吹缴蟼鬟M(jìn)度條走完、板子重新出現(xiàn)在串口列表里就說明刷寫成功了。3.3 刷完固件后必須做的電機(jī)檢測(cè)和校準(zhǔn)固件刷完不等于萬(wàn)事大吉。如果只是小版本升級(jí)原配置可能還能沿用如果跨了大版本建議把之前的配置重新刷入或者重新跑一遍電機(jī)檢測(cè)。具體操作是進(jìn)入“Motor Settings”或者“Motor Wizard”選擇電機(jī)類型無刷、有刷、各有感等輸入電機(jī)極對(duì)數(shù)、額定電流、電池電壓等信息然后讓VESC-Tool執(zhí)行FOC檢測(cè)。檢測(cè)過程中電機(jī)會(huì)發(fā)出比較大的聲音屬于正?,F(xiàn)象最好把電機(jī)架空別帶負(fù)載。檢測(cè)完成后軟件會(huì)寫入電機(jī)的電阻、電感、磁鏈等參數(shù)再試轉(zhuǎn)一下確認(rèn)方向是否正確。我見過不少朋友刷完固件后電機(jī)嗡嗡響、抖動(dòng)、轉(zhuǎn)不起來多半就是沒有重新做FOC檢測(cè)或者檢測(cè)時(shí)相線接觸不良。記住一個(gè)原則換固件、換電機(jī)、換線材之后都應(yīng)該重新跑一次電機(jī)檢測(cè)這比對(duì)著參數(shù)表手動(dòng)摳數(shù)據(jù)靠譜得多。4. Bootloader損壞怎么辦SWD刷寫方式詳解4.1 SWD調(diào)試器選型與接線當(dāng)VESC的Bootloader損壞、配置被改得一塌糊涂或者USB口失靈時(shí)SWD就成了唯一的救磚通道。SWD調(diào)試器我推薦三種原廠ST-Link V2便宜量大的DAPLink以及J-Link。ST-Link和DAPLink在VESC圈子里最常見幾十塊錢的夠用。J-Link性能更好但沒必要特意買貴的。接線時(shí)找齊四個(gè)信號(hào)SWDIO、SWCLK、GND、3.3V。有些板子只有四個(gè)焊盤沒有排針需要自己焊線。接線順序建議先把GND接好再接SWDIO和SWCLK最后接3.3V。接好之后用萬(wàn)用表測(cè)一下SWDIO/SWCLK對(duì)地電壓應(yīng)該能看到3.3V左右如果電壓不對(duì)先查供電不要貿(mào)然點(diǎn)連接。如果你用的調(diào)試器是ST-Link V2插上電腦后Windows會(huì)自動(dòng)裝驅(qū)動(dòng)設(shè)備管理器里能看到一個(gè)ST-Link Debug接口。舊版ST-Link可能需要手動(dòng)安裝驅(qū)動(dòng)新版多數(shù)可以免驅(qū)。DAPLink在Windows下通常會(huì)枚舉成一個(gè)串口加一個(gè)HID調(diào)試口同樣需要保證驅(qū)動(dòng)正常。4.2 用OpenOCD命令行刷寫OpenOCD是開源調(diào)試軟件支持ST-Link、DAPLink、J-Link等多種調(diào)試器。用命令行刷寫VESC固件的操作很直接前提是電腦已經(jīng)安裝了OpenOCD。以ST-Link為例基本命令如下openocd -f interface/stlink.cfg \ -f target/stm32f4x.cfg \ -c transport select swd \ -c adapter_khz 1000 \ -c init \ -c reset halt \ -c flash write_image erase vesc.bin 0x08000000 \ -c reset run \ -c shutdown這里有幾個(gè)關(guān)鍵點(diǎn)interface/stlink.cfg 是對(duì)應(yīng)ST-Link的接口配置文件如果你用DAPLink就換成interface/cmsis-dap.cfg。target/stm32f4x.cfg 對(duì)應(yīng)STM32F405/F407內(nèi)核VESC主控基本都是這個(gè)家族。adapter_khz 1000 表示把SWD時(shí)鐘設(shè)置成1MHz。很多連接失敗的情況把時(shí)鐘降一降就好了。0x08000000是STM32 Flash起始地址官方完整固件鏡像一般從這個(gè)地址燒起。如果拿到的是單獨(dú)的App固件需要按作者說明的偏移地址燒寫不要盲目用默認(rèn)地址。執(zhí)行完命令如果看到類似“wrote 65536 bytes from file vesc.bin”的輸出就說明寫入成功。然后可以斷開調(diào)試器重新用USB連接VESC-Tool驗(yàn)證。4.3 用STM32CubeProgrammer圖形化刷寫如果你不習(xí)慣命令行可以用ST官方的STM32CubeProgrammer。這個(gè)軟件不僅支持圖形化刷寫還能處理讀保護(hù)和Flash擦除功能很全。操作流程是打開STM32CubeProgrammer在右側(cè)選擇ST-LINK接口選SWD頻率設(shè)低一點(diǎn)比如1MHz模式選“Under reset”然后點(diǎn)擊Connect。如果連接成功左側(cè)會(huì)顯示芯片型號(hào)、Flash容量、當(dāng)前讀保護(hù)級(jí)別等。連接失敗時(shí)軟件往往會(huì)在日志區(qū)給出類似于“Error: STM32 SWD/JTAG Communication Failure”的提示這是最常見的一條錯(cuò)誤后面避坑部分專門說。連接之后在“Download”頁(yè)面選擇要燒錄的bin文件起始地址填0x08000000勾選“Erase necessary pages”或者“Full chip erase”點(diǎn)擊“Start Programming”即可。燒完以后如果還想把整個(gè)系統(tǒng)恢復(fù)到出廠狀態(tài)也可以先用“Full chip erase”把整片F(xiàn)lash清干凈然后再重新燒錄Bootloader和App固件。STM32CubeProgrammer還有一個(gè)命令行模式適合批量操作命令大概是這樣STM32_Programmer_CLI.exe -c portSWD modeUR -e all -w vesc.bin 0x08000000 -vmodeUR表示Under reset模式-v是校驗(yàn)。這條命令適合拿到一塊完全陌生的板子時(shí)做一次全片擦除加寫固件整個(gè)過程比圖形界面更穩(wěn)定。5. SWD連接避坑指南最容易翻車的幾個(gè)地方5.1 SWD/JTAG Communication Failure是怎么來的碰到這個(gè)錯(cuò)誤先別慌它幾乎是每個(gè)玩嵌入式的人都會(huì)遇到的。產(chǎn)生原因大致分幾類接線錯(cuò)誤、供電不穩(wěn)、調(diào)試器沒有正確握手、芯片被讀保護(hù)鎖住、SWD時(shí)鐘太高導(dǎo)致信號(hào)質(zhì)量不行。從最基礎(chǔ)開始排查大多數(shù)問題都能解決。我自己的經(jīng)驗(yàn)是十個(gè)Communication Failure里至少有一半是接線問題。SWDIO和SWCLK兩根線接反、杜邦線松脫、GND沒共地都會(huì)造成握手失敗。所以看到報(bào)錯(cuò)第一件事不是換軟件版本而是拿萬(wàn)用表檢查每個(gè)引腳的連通性最好重新拔插一遍所有跳線。另一個(gè)常見原因是調(diào)試器的3.3V沒有正確輸出或者VESC板上的3.3V電平不穩(wěn)定。如果接線沒問題再考慮供電。很多調(diào)試器號(hào)稱能輸出3.3V但電流能力有限而VESC板上的外圍電路加起來可能把電壓拉低。這時(shí)候可以給VESC單獨(dú)接低壓電源常見做法是給板子通一個(gè)3S鋰電池同時(shí)斷開電機(jī)相線然后讓調(diào)試器和VESC各自供電只用信號(hào)線連接。5.2 時(shí)鐘頻率、復(fù)位時(shí)序與連接順序SWD通訊對(duì)時(shí)鐘頻率比較敏感尤其當(dāng)杜邦線比較長(zhǎng)、排針氧化或者調(diào)試器是廉價(jià)仿品時(shí)高頻下很容易出現(xiàn)隨機(jī)失敗。VESC板布線并不復(fù)雜但用ST-Link V2默認(rèn)頻率去連偶爾也會(huì)抽風(fēng)。把頻率從默認(rèn)降到1000kHz甚至500kHz成功率會(huì)明顯提升。頻率低一點(diǎn)只是傳輸慢刷幾十KB固件也就多幾秒鐘完全無所謂?!癠nder reset”連接模式也非常有用。STM32在復(fù)位期間SWD訪問權(quán)限是最開放的很多讀保護(hù)或者應(yīng)用固件死死占住調(diào)試口的情況用這個(gè)模式都能繞過去。操作方法是在STM32CubeProgrammer里選Mode為Under reset然后軟件會(huì)控制調(diào)試器拉低復(fù)位腳在芯片剛從復(fù)位狀態(tài)恢復(fù)的瞬間嘗試握手。前提是VESC板上需要有NRST復(fù)位引腳并且連到了調(diào)試器如果板子沒有引出RST這種方法就用不了。連接順序也是我很強(qiáng)調(diào)的一點(diǎn)。推薦“先接調(diào)試器再給VESC上電”或者“GND先接再依次接SWDIO、SWCLK、3.3V”。千萬(wàn)不要在VESC滿載運(yùn)行或者電機(jī)轉(zhuǎn)動(dòng)的時(shí)候帶電插拔SWD調(diào)試口本身耐壓有限帶電插拔很容易把IO口打壞那就真的只能換芯片了。5.3 讀保護(hù)RDP導(dǎo)致的連接失敗與解鎖二手板、翻新板、別人刷壞的板子最容易遇到讀保護(hù)問題。STM32芯片支持讀保護(hù)Level 0、Level 1、Level 2其中Level 1或更高時(shí)SWD/JTAG握手會(huì)被限制于是報(bào)SWD/JTAG Communication Failure。很多賣家口中的“損壞板”其實(shí)只是被設(shè)置了讀保護(hù)芯片本身并沒壞。處理方式是用STM32CubeProgrammer連接如果日志提示檢測(cè)到讀保護(hù)或者“Device is busy”可以先嘗試Under reset模式連接。連接成功后在“Option Bytes”或“Read Out Protection”設(shè)置里把RDP從Level 1改成Level 0并執(zhí)行。執(zhí)行時(shí)會(huì)觸發(fā)全片擦除也就是說芯片里的固件、參數(shù)、校準(zhǔn)數(shù)據(jù)都會(huì)清空這是繞開保護(hù)的必要代價(jià)。如果芯片被設(shè)置為L(zhǎng)evel 2那就麻煩了因?yàn)長(zhǎng)evel 2下調(diào)試口會(huì)被永久禁用STM32CubeProgrammer也救不回來。所以買二手VESC時(shí)我習(xí)慣先確認(rèn)讀保護(hù)級(jí)別盡量買“可以解鎖”的板子別碰Level 2的。自己使用時(shí)也別手賤去設(shè)Level 2VESC根本用不到這個(gè)級(jí)別。6. 刷固件過程中的常見問題與排查速查表6.1 電腦識(shí)別不到USB設(shè)備這個(gè)問題在我?guī)团笥烟幚鞻ESC時(shí)出現(xiàn)頻率最高?,F(xiàn)象是插上USB后電腦毫無反應(yīng)或者提示未知USB設(shè)備。優(yōu)先換一根確定能傳數(shù)據(jù)的數(shù)據(jù)線然后查設(shè)備管理器看是否需要裝ST的VCP驅(qū)動(dòng)如果裝了驅(qū)動(dòng)還是未知設(shè)備再考慮用Zadig切換驅(qū)動(dòng)。部分國(guó)產(chǎn)克隆VESC的USB走線設(shè)計(jì)比較一般對(duì)線材質(zhì)量很敏感有時(shí)候換一根短一點(diǎn)的線就好了。如果USB口徹底沒反應(yīng)那就要檢查板子的3.3V和5V是否正常芯片是否還在工作。這時(shí)候可以試著用SWD連接看看能不能讀到芯片信息能讀到說明主控活的只是USB外圍有問題。6.2 FOC檢測(cè)不過、電機(jī)抖動(dòng)或者不轉(zhuǎn)刷完固件后電機(jī)檢測(cè)失敗太常見了。常見原因包括電機(jī)相線接觸不良、電調(diào)與電機(jī)功率不匹配、檢測(cè)電流設(shè)置太低、電池電壓過低等。FOC檢測(cè)實(shí)際上是通過施加特定電壓、測(cè)量電流響應(yīng)來估算電機(jī)參數(shù)如果接觸電阻大、電壓波動(dòng)大結(jié)果自然不準(zhǔn)。處理方法是先把相線重新壓緊確認(rèn)三根相線沒有短路或斷路然后適當(dāng)提高檢測(cè)電流上限一般建議10A到20A之間確保供電電壓穩(wěn)定不要用嚴(yán)重虧電的電池最后在電機(jī)懸空狀態(tài)下再跑一次檢測(cè)。如果檢測(cè)始終失敗可以把電機(jī)換成已知正常的電機(jī)做交叉驗(yàn)證判斷問題在電調(diào)還是電機(jī)。6.3 固件版本和VESC-Tool不匹配有時(shí)候VESC能連上但VESC-Tool提示固件版本太舊不支持當(dāng)前上位機(jī)操作。這個(gè)現(xiàn)象不是設(shè)備壞了只是協(xié)議版本跨度太大。處理方法有兩種一是先用舊版本的VESC-Tool連接再把固件升級(jí)到軟件支持范圍內(nèi)的版本二是用SWD方式直接刷入新固件鏡像跳過老固件和上位機(jī)之間的兼容問題?,F(xiàn)象常見原因處理方法USB插入無反應(yīng)數(shù)據(jù)線不通、驅(qū)動(dòng)缺失換線、裝VCP驅(qū)動(dòng)連接后提示固件太舊Bootloader/App版本過老用SWD寫入新固件SWD連接報(bào)Communication Failure接線錯(cuò)誤、時(shí)鐘過高、RDP保護(hù)檢查接線、降頻、Under reset刷寫進(jìn)度條卡住接觸不良、供電不穩(wěn)不要斷電重插USB后重試FOC檢測(cè)失敗相線接觸不良、電流限制低壓緊相線、提高電流、懸空測(cè)試最后再分享一個(gè)我自己的習(xí)慣拿到一塊二手VESC的第一件事不是先接電機(jī)而是先用ST-Link把讀保護(hù)狀態(tài)和固件版本查一遍確認(rèn)Bootloader還能正常響應(yīng)。很多高價(jià)收來的“問題板”其實(shí)就是RDP被設(shè)了Level 1或者Bootloader被刷亂用SWD擦掉重刷一遍就能滿血復(fù)活。只要SWD接口的四個(gè)引腳沒燒壞這塊板子基本都有救。希望這篇能幫你在刷固件的路上少交點(diǎn)學(xué)費(fèi)。