無刷電調基礎知識以及BLHeli韌體燒錄和引數調整

夢幻之心星發表於2021-02-01

標題: 無刷電調基礎知識以及BLHeli韌體燒錄和引數調整
作者: 夢幻之心星    sky-seeker@qq.com
標籤: [#基礎知識,#電調,#BLHeli,#韌體,#燒錄,#調參]
目錄: [電調]
日期: 2021-02-01

基礎知識

電調

  • ESC代表電子速度控制器,簡稱為電調。電調從飛行控制器接收油門訊號,並以所需速度驅動無刷電機。
    電調工作原理

電調韌體

  • 電調韌體是在每個電調上執行的軟體,它確定電調的效能,支援的協議以及可以使用的配置介面。電調可以使用的韌體取決於硬體。
  • SimonK:最古老的兩種開源電調韌體之一,已經過時不再更新。
  • BLHeli:最古老的兩種開源電調韌體之一,由於其廣泛的功能和友好的使用者介面而變得流行。
  • BLHeli_S:BLHeli韌體的第二代。專門為具有Busybee處理器的電調開發。
  • BLHeli_32:第三代和最新一代BLHeli韌體。專門為32位電調編寫,不再開源。

電調處理器

  • 市場上大多數電調使用ATMEL、Silabs和ARM的處理器。不同的處理器具有不同的規格和功能,並且受不同的韌體支援。
  • ATMEL 8位:支援SimonK和BLHeli韌體。
  • SILABS 8位:支援BLHeli或BLHeli_S韌體。
    • 主要處理器是F330F39X系列的F390F396
    • Busybee處理器是F330和F39X的升級。有BusyBee1(EFM8BB10F8)和BusyBee2(EFM8BB21F16)兩種。
  • ARM 32位:支援BLHeli_32韌體。

電調協議

  • 電調協議是飛行控制器和電呼叫於通訊的語言,決定了訊號從飛控到電調的傳送速度。
  • 四軸飛行器使用的電調協議及訊號寬度

電調BEC

  • BEC表示 電池消除電路,本質上是電壓調整器。作用是將主電池組的電壓降壓到5V輸出。
  • 通常內建在電調中,消除了為5V電子裝置供電所需的單獨電池的麻煩。

BLHeliSuite

手冊

  • BLHeliSuite的手冊位於BLHeliSuiteManuals目錄
  • BLHeliSuite的手冊主要檔案內容:
    • BLHeli manual xx xx.pdf:Atmel MCU和SiLabs MCU的電調的引數
    • BLHeli programming adapters.pdf:介面卡的製作和使用
    • BLHeli supported xx ESCs.pdf:支援的Atmel和SiLabs電調的圖片及引數
    • BLHeliSuite 4w-if interfaces pinout.pdf:Arduino板上用於Atmel/SiLabs電調的BLHeliSuite的4w-if的引腳配置
    • BLHeliSuite 4w-if protocol.pdf:用於Atmel/SiLabs電調的BLHeliSuite的4w-if的通訊協議
      BLHeliSuite的Manuals目錄

介面卡

首次重新整理電調韌體
  • SiLabs MCUs電調支援以下介面卡
    • Arduinos:使用SILABS C2 (4way-if)介面。初次使用Arduinos作為介面卡時需要對Arduinos進行程式設計燒錄。
    • SiLabs Toolstick:使用SILABS C2 (Toolstick) 介面。
    • USB Flashing stick:使用SILABS C2 (Toolstick) 介面。
    • BLHeli Skywalker stick:使用SILABS C2 (Toolstick) 介面。
  • Atmel MCUs電調支援以下介面卡
    • Arduinos:使用ATMEL ISP Interface (AVRDude) 介面。初次使用Arduinos作為介面卡時需要對Arduinos進行程式設計燒錄。
    • USBasp:使用ATMEL ISP Interface (AVRDude) 介面。
重新整理電調載入程式
  • 重新整理電調載入程式為BLHeli主要有USB/Com4way-if兩種型別的介面。
  • Arduinos(4way-if):使用SILABS BLHeli Bootloader (4way-if)ATMEL BLHeli Bootloader (4way-if) 介面。使用Arduinos作為介面卡時需要對Arduinos進行程式設計燒錄。
  • Arduinos(USB/UART 1-Wire bridge):使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 介面。使用Arduinos作為介面卡時需要對Arduinos進行程式設計燒錄。
  • Favourite stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 介面。
  • FTDI stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 介面。
  • Multistar stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 介面。

背景說明

  • 介面卡:Arduino Nano ATMEGA328P
  • 電調:主控晶片SIL F330,功率管AON6504,供電1-4S,電流20A-30A,無BEC
    電調圖片

操作說明

前期準備

  1. 下載Arduino Nano所用的USB轉串列埠晶片CH340C的驅動程式CH341SER.ZIP,安裝驅動。
  2. 下載BLHeliSuite,一般下載BLHeliSuite16714902.zip即可。
  3. 根據電調外觀和資訊,查閱手冊BLHeli supported xx ESCs.pdf 以確定電調型號。或者根據電調PCB確定電調的主控晶片型號。
  4. 根據電調的主控晶片型號,查閱手冊BLHeli programming adapters.pdf以確定需要用到的介面卡和介面,以及介面卡的製作方法。
  5. 根據所使用的介面卡和所需操作使用的介面,查閱手冊BLHeliSuite 4w-if interfaces pinout.pdf 以確定引腳連線。

製作介面卡

  1. 連線介面卡和電腦,開啟BLHeliSuite。
  2. 點選Make interfaces標籤頁。
  3. 點選Port選擇USB-SERIAL CH340 對應的埠,點選Arduino Board選擇Nano w/ ATmega328開發板,點選Baud選擇115200波特率,點選Arduino 4way-interface
    製作介面-主介面
  4. 點選OK,選擇最後一個檔案後點選開啟
  5. 點選Yes
    製作介面-確認對話方塊
  6. 等待燒錄Arduino,出現Arduino flashed sucsessfully by Avrdude表示已成功將Arduino Nano燒錄為介面卡。點選OK
    製作介面-燒錄成功介面

連線電調

  1. 連線介面卡和電調(VCC GND C2D C2CK)。
    引腳連線圖
  2. 點選Select ATMEL/SILABS Interface選擇SILABS C2 (4way-if)介面。
    介面選擇
  3. 點選SiLabs ESC Setup標籤頁。
  4. 點選Port選擇USB-SERIAL CH340 對應的埠,點選connect,點選Read setup讀出電調引數設定。
    連線電調
  5. 出現setup read successfully表示已成功連線到電調並讀取到電調的引數。點選OK

重新整理韌體

  1. 點選Flash BLHeli
  2. 在彈出的視窗中選擇韌體名稱、韌體型別(MAIN:直升機主槳;TAIL:直升機尾槳;MULTI:多槳)、韌體版本,點選OK
    重新整理韌體
  3. 點選Yes
    重新整理韌體-確認對話方塊
  4. 等待燒錄韌體,出現sucsessfully表示已成功將電調韌體燒錄到電調。點選OK。在下一個彈出的視窗中點選Yes

調整引數

  1. 點選ESC Setup選擇Save Setup to ini file 以備份電調當前的引數。
    備份電調設定
  2. 修改電調引數。降低啟動功率,降低電調輸出的PWM頻率,開啟低轉速功率保護。
    電調引數設定
  3. 點選Write setup將引數寫入電調。
  • 多軸程式設計參數列
    多軸程式設計參數列

  • 電調引數說明,詳見官方手冊BLHeli manual xx xx.pdf

    英文引數 中文引數 引數說明
    Startup power 啟動功率 啟動時允許的最大功率,實際的功率取決於油門的輸入。
    Motor timing 電機進角 通常設定中進角即適用於大部分電機,但如果電機運轉不順暢時,可以嘗試改變進角。
    Demag compensation 消磁補償 防止電機換向後消磁時間過長而引起的電機停轉。補償值越高,保護越好。但補償值太高,會降低最大功率。
    Motor direction 電機轉向 在雙向模式下,油門中點為零點,中點以上為正轉,中點以下為反轉。
    Startup Beep Volume 蜂鳴器音量 設定正常執行下蜂鳴音量。
    Beacon/Signal Volume 信標音量 設定信標的音量。如果零油門訊號的時間超過一個設定的時間,電調控制馬達發出警報聲。以便於找回丟失的飛行器。
    Beacon delay 信標延遲 設定信標開始發出之前的延時。
    PPM Min throttle;
    PPM max throttle;
    PPM center throttle
    最小油門;
    最大油門;
    中位油門
    設定電調的油門行程量。中位油門只用於雙向模式。正常情況下, 油門訊號值在1000us-2000us之間。 對於其他數值輸入訊號, 則需要做相應比例換算。
    Temperature protection 溫度保護 溫度保護閥值可以設定為80℃-140℃。
    Low RPM power protect 低轉速功率保護 禁用可以保證低KV電機在低電壓執行時實現全功率。但是禁用後會加劇同步丟失的風險,導致燒壞電機。
    Brake on stop 停車制動 在通電狀態,零油門時會有剎車功能。如果油門沒有零點,此項設定無效。
    Closed Loop Mode 閉環模式 設定控制環的執行速度範圍。在閉環模式下,執行時的油門值對應電機的轉速目標。關閉時將禁用控制環。
    Closed Loop P-Gain 閉環比例增益 設定轉速控制環的比例增益。控制從速度誤差到電機功率的增益。
    Closed Loop I-Gain 閉環積分增益 設定轉速控制環的積分增益。控制從積分速度誤差到電機功率的增益。
    Motor Gain 電機增益 縮放給定輸入施加到電機的功率。僅適用於PWM輸入,對PPM輸入則無效。會限制電機的最大功率。
    PWM Output Dither PWM輸出抖動 增加電機PWM關閉週期的長度。減少在PWM頻率等於電機換向頻率的諧波的轉速區域中的問題,並且可以減少達到全油門的步進。不適用於閉環模式。
    PWM Frequency/Damped PWM頻率/阻尼 設定電調輸出的PWM頻率。高PWM頻率約為20kHz,低PWM頻率約為8kHz,輕阻尼模式始終使用高pwm頻率。低頻率PWM減小了到滿功率的步進。輕阻尼模式會增加電機的損耗,從而加快減速速度。
    Enable PWM Input 啟用PWM輸入 如果禁用,則僅接受1-2ms 脈寬的PPM和 OneShot125(125-250us)作為有效輸入訊號。啟用後支援1kHz,2kHz,4kHz,8kHz和12kHz 的PWM輸入訊號。
    Input Polarity 輸入極性 用於反轉油門。與提供負PWM的接收器一起使用。使用PPM輸入時,必須將其設定為正。

注意事項

  • 據說電調名稱所寫的FVT Littlebee 20A並不是真實型號,升級韌體可能導致電調燒燬。
  • 電調在驅動電機運轉前需要執行解鎖序列以進行解鎖
    1. 上電時, 電調發出3聲蜂鳴聲。
    2. 當檢測到油門訊號時, 發出一聲低音。 表示解鎖訊號序列開始。
    3. 當油門減小到零時, 發出一聲高音。 表示解鎖訊號序列結束。
      電調解鎖序列
  • SILABS電調介面標號為A、B、C、D,Atmel電調介面標號為1、2、3、4、5、X。通過介面所對應的標號,可以在Make interfaces介面方便快捷的得知需要製作的介面卡。
  • 在使用Arduino Nano w/ ATmega328P作為介面卡時。如果Arduino Nano使用的是舊版的載入程式,波特率設定為57600;如果Arduino Nano使用的是新版的載入程式,波特率設定為115200
    Arduino Nano w/ ATmega328P 載入程式燒錄設定

參考資料


版權宣告:本文為「夢幻之心星」原創,依據 CC BY-NC-SA 4.0 許可證進行授權,轉載請附上原文出處連結及本宣告。


部落格園地址:https://www.cnblogs.com/Sky-seeker
微信公眾號:關注微信公眾號,獲取即時推送
微信名:夢幻之心星 微訊號:Sky-seeker


相關文章