衡阳派盒市场营销有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>通過USB使用ESC和FPGA控制BLDC電機的速度

通過USB使用ESC和FPGA控制BLDC電機的速度

2023-06-19 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

DShot 協議

在 DShot 之前,飛控更新速度比標準 PWM 速率更快,這會導致性能和調整問題。開發了更快的模擬 PWM,即 OneShot125 和其他幾個。對于基于 PWM 的協議,接收器必須測量脈沖以確定速度,很少有發射器和接收器具有相似的時鐘精度,因此可能存在一些差異,因此飛行控制器軟件包括一個校準步驟來找到最大值和最小值。

DShot 是數字的,速度與遙測請求和校驗和一起被編碼為“數據包”,因此無需校準。DSHOT 支持多種速度 150、130、600 和 12000。因此,數字越大,數據包比特率越快,因此數據包發送到 ESC(電子速度控制器)的速度越快

這是一個基本的 DSHOT 數據包:

poYBAGOYi8CAQg0XAAAzE6EUWhc416.png
?

數據包流從左到右發送,因此首先發送速度位 10,然后發送速度位 9,依此類推。那么,邏輯 1 和邏輯 0 是如何編碼的?寬度決定值是 1 還是 0,寬度越長,值為 1。對于 DSHOT150,下表是:

DSHOT 150 單個比特周期:6.67us 高電平時間(1):5.000us 高電平時間(0):2.500us

DSHOT 300 單個比特周期:3.33us 高電平時間(1):2.500us 高電平時間(0):1.250us

DSHOT 600 單個比特周期:1.67us 高電平時間(1):1.250us 高電平時間(0):0.620us

DSHOT1200 單個比特周期:0.83us 高電平時間(1):0.025us 高電平時間(0):0.313us

PC 應用程序將格式化 16 位,代碼位于 HTML nwjs 應用程序中。

使用 FPGA 的 DSHOT 150

對于本項目,不支持接收遙測信息,僅以 150 速率傳輸 DSHOT 16 位值。FPGA 的職責是以編程的時鐘速率將 16 位值發送到 ESC,該值將由 PC 軟件編碼,這簡化了 FPGA 邏輯。

該項目利用了使用 FPGA 項目解碼 PWM。

DSHOT150 在 ip/DSHOT/dshot_out.v 中實現:

`default_nettype none
`timescale 1 ns / 1 ns

module dhot_output #(
		parameter update_guardtime = 1000000, //1 second 
		parameter clockFrequency = 50000000
	) (
		input  wire        i_clk,          //       clock.clk
		input  wire        i_reset,        //       reset.reset
		input  wire [15:0] i_dshot_value,
		input  wire        i_write,       //            .write
		output wire	       o_pwm
	);
	


/* state machine state of single bit */
localparam [3:0] INIT_TIME  = 4'h0,
 		HIGH_TIME   = 4'h1,
     	 	LOW_TIME    = 4'h2,
                IDLE_	    = 4'h3;
		
/* DSHOT Bit time:              (1 - TH1)   (0-T0H)
DSHOT 150 Bit time is 6.67us    5.00us      2.50us
DSHOT 300 Bit time is 3.33us    2.50us      1.25us
DSHOT 600 Bit time is 1.67us    1.25us      0.625us
DSHOT1200 Bit time is 0.83us    0.025       0.313us
*/

/* For DSHOT150 clk is 50Mhz so 0-T0H is  2.50 * 50 = 125
                                0-Off is (6.67 - 2.50us) * 50 = 208.9
*/                                
                                
localparam [15:0] LOW_HIGH_TIME = 125;
localparam [15:0] LOW_LOW_TIME = 209;

/* For DSHOT150 clk is 50Mhz so 0-T1H is  5.00 * 50 = 250
                                0-Off is (6.67 - 5.00us) * 50 = 83.5
*/

localparam [15:0] HIGH_HIGH_TIME = 250;
localparam [15:0] HIGH_LOW_TIME = 84;

Avalon 從接口

要訪問 DSHOT 150,需要創建 Avalon 從站,就像之前創建從站內存映射接口一樣,然后拖放到系統內容并重新映射內存地址。我已經包括了一個額外的 ESC 電機控制器 PWM。兩者如下圖所示:

pYYBAGOYi9CAasClAAOZimuOsW4595.png
阿瓦隆巴士
?

這是新的內存映射:

pYYBAGOYi9aAGwoQAAHrNPdCW4s303.png
?

頂層

更新了 fast_serial.v 以將電機的輸出映射到 FPGA 的引腳 D2、D3、D4 和 D5。目前,Avalon 總線不支持將輸出重新映射為 PWM 或 DSHOT。以下代碼經過多路復用器硬編碼,可根據本地參數 MOTOR_CONTROL 將 DSHOT 或 PWM 映射為輸出。

assign D5 = (MOTOR_CONTROL)?dshot_out_1:pwm_out_1;
assign D4 = (MOTOR_CONTROL)?dshot_out_2:pwm_out_2;
assign D3 = (MOTOR_CONTROL)?dshot_out_3:pwm_out_3;
assign D2 = (MOTOR_CONTROL)?dshot_out_4:pwm_out_4;

要啟用 DSHOT150 或 OnseShot 125,需要創建一個 Avalon 內存映射地址來選擇 ether DSHOT 或 PWM,然后驅動多路復用器。也可以使用相同的方法支持串行和遙測,但使用 inout。

這是新的 nwjs 應用程序的屏幕截圖,電機可以由通道 0 驅動,也可以通過電機滑塊驅動。建議拆下螺旋槳,將電機牢固地用螺栓固定在厚板上。

poYBAGOYi9yALZV8AABmg8hiQjU602.png
?

Enable Motor 按鈕打開 DSHOT 生成,因此,ESC 會發出幾聲嗶嗶聲,通知用戶電機已“武裝”。增加滑塊將增加速度。此外,LED 滑塊還允許更新 LED。打開發射器,所有控件都處于活動狀態。

串行端口接口從 FTDI 芯片接收數據很慢,因為驅動程序在傳輸時有緩沖,在 Linux 上降低它:

setserial /dev/ low_latency

另一種方法是libftdi,有一個API來設置latency_timer,ftdi_set_latency_timer,我做了一個簡單的修改,允許值為0。由于從FPGA到FTDI的傳輸數據是25Mhz,所以Avalon數據包作為一個USB到達數據包,但以微幀速率。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
百家乐官网庄闲多少| 玩百家乐官网犯法| 临夏市| 利德赌博| 大发888登录下载| 马德里百家乐的玩法技巧和规则| 网络百家乐的破解| 百家乐官网光纤冼牌机| 百家乐官网破解秘籍| 百家乐官网娱乐城足球盘网| 百家乐官网网站开户| 利高在线娱乐城| 利来国际城| 环球棋牌评测网| 大发888 df登录| 打百家乐纯打庄的方法| 圣淘沙百家乐游戏| 百家乐打连技巧| 百家乐官网15人桌| 娱乐城百家乐官网的玩法技巧和规则 | 大发888 娱乐免费游戏| 威尼斯人娱乐城佣金| 天博百家乐的玩法技巧和规则| 澳门百家乐赌| 菲律宾百家乐开户| 定做百家乐桌子| 百家乐网投打法| 百家乐的注码技巧| 网上百家乐正规代理| 网络百家乐诈骗| 定做百家乐桌子| 百家乐博赌城| V博百家乐的玩法技巧和规则| 送58百家乐的玩法技巧和规则| 大哥大百家乐的玩法技巧和规则| 嘉禾百家乐的玩法技巧和规则| 百家乐博娱乐场开户注册| 免费百家乐的玩法技巧和规则| 长春百家乐的玩法技巧和规则| 百家乐菲律宾| 富二代百家乐的玩法技巧和规则 |