This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BOOSTXL-DRV8323RS:MOSFET 开关速度和死区时间。

Guru**** 2555630 points
Other Parts Discussed in Thread: BOOSTXL-DRV8323RS, DRV8323, CSD88599Q5DC

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1566228/boostxl-drv8323rs-mosfet-switching-speeds-and-deadtime

器件型号:BOOSTXL-DRV8323RS
主题中讨论的其他器件: DRV8323CSD88599Q5DC

工具/软件:

大家好、我最近使用了 BOOSTXL-DRV8323RS 来对一些 BLDC 电机控制器进行原型设计。 然后、我基本复制了 BOOSTXL 板、但将 MOSFET 更 改为更高功率的 MOSFET。 这是部件号: NTMFSC0D9N04CL。 我尝试运行 Lab02b 来测试定制 PCB、但电机在校准期间会消耗大量电流、并计算出 Rs 值基本上为无穷大。 我添加了 4.7 Ω 栅极电阻器、但未更改。 我还尝试更改以下值:  

//! \brief 定义了 PWM 死区下降沿延迟计数(系统时钟)
//!
#define HAL_PWM_DBFED_CNT 54


//! \brief 定义了 PWM 死区上升沿延迟计数(系统时钟)
//!
#define HAL_PWM_DBRED_CNT 54.

似乎改变这些都没有任何作用。 我尝试将它们设置为 9999、它仍然表现出相同的行为、没有任何变化。 我是否应该在其他地方更改死区时间? 我还尝试将其添加到 main 中:

#ifdef DRV8323_SPI
//连接到 8323 SPI 的“Watch Window“界面
DRV_SPI_8323_Vars_t gDrvSpi8323Vars;
#endif

#ifdef DRV8323_SPI
//打开 DRV8323(如果存在)
HAL_enableDrv (halHandle);

//初始化 DRV8323 接口
HAL_setupDrvSpi (halHandle、&gDrvSpi8323Vars);

//设置电流检测放大器增益和 VREF_DIV、如原始代码所示
gDrvSpi8323Vars.Gain_Gain_20VpV Ctrl_Reg_;
gDrvSpi8323Vars.VREF_DIV Ctrl_Reg_= 1;


//将死区时间设置为 400ns
gDrvSpi8323Vars.dead_time = deadtime Ctrl_Reg_= 400_ns;

//设置高侧栅极驱动峰值拉电流
gDrvSpi8323Vars.IDRIVEP_HS = Ctrl_Reg_ HS_1p000_A;

//设置高侧栅极驱动峰值灌电流
gDrvSpi8323Vars.IDRIVEN_HS Ctrl_Reg_= ISINK_HS_1p250_A;

//设置低侧栅极驱动峰值拉电流
gDrvSpi8323Vars.IDRIVEP.IDRIVEP_LS Ctrl_Reg_= ISour_LS_1p000_A;

//设置低侧栅极驱动峰值灌电流
gDrvSpi8323Vars.IDRIVEN_LS Ctrl_Reg_= ISINK_LS_1p250_A;

//将新值写入 DRV8323
gDrvSpi8323Vars.WriteCmd = true;
HAL_writeDrvData (halHandle、&gDrvSpi8323Vars);

//读回值以进行验证
gDrvSpi8323Vars.ReadCmd = true;
HAL_readDrvData (halHandle、&gDrvSpi8323Vars);
#endif

我尝试将电流设置为比所示值更低的值、但仍然没有运气、没有任何变化。 如有任何建议、将不胜感激。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aiden:

    我不确定会发生什么、您是否尝试过编辑 user.h 文件中的任何内容? 这是您列出的内容吗?

    此致、

    Yara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yara:

    我刚刚在原始 BOOSTXL-DRV8323RS 电路板上再次测试了代码、以确保我没有更改代码中的任何内容、并且仍然可以正常工作、没有任何缺陷。 我曾尝试将 PWM 频率降低到 5kHz、但我曾尝试更改电流检测增益。 和 res_est_CURRENT。 他们都没有改变任何东西。 我不确定我的死区时间是否在代码中生效、或者这甚至是问题。 任何疑难解答建议都会有所帮助。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aiden:

    我问的是 user.h 文件、因为根据我的理解、该文件中存储了一些电机参数。 我不确定里面是否存储了任何 FET 参数、但值得一看、因为  BOOSTXL-DRV8323RS 旨在与原始 FET CSD88599Q5DC 一起使用、并且可能已经填充了这些值。

    这也可能是与布局相关的问题。  如果 FET 的占用空间不同、您如何复制 BOOSTXL-DRV8323RS 布局?

    此外、 NTMFSC0D9N04CL 的 Qg 和 Qgd 大约是 CSD88599Q5DC 的 Qg 和 Qgd 值 的 3 倍、这意味着您的开关速度要慢得多(开关损耗更高,热量更多)

    您的 VM 电压是多少?  

    此致、

    Yara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在查看 BoostXL-DRV8323RS 原理图时、创建了一个定制 PCB。 我 实际上只交换了 MOSFET。 我发现问题、组装 PCB 时交换了 LPF 的电流检测电容器和电阻器。 现在全部投入使用。  

    我的 VM 电压为 24VDC。

    另外一点是 KP 由代码设置为约 1.6。 电机静止时会晃动。 我必须手动将其设置为 0.07 以停止振荡。 我需要解决的 PID 计算是否存在问题? 原始 BOOSTXL 板上也发生了这种情况。 此外、当电机带载时、开关速度会慢得多、这是否会出现问题?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aiden:

    我不完全熟悉代码中的现有参数、但我认为它们几乎总是需要根据您使用的电机进行调整手动或我认为有特定的“实验室“解决特定的参数、最终编辑 user.h 文件。 您只需确保 user.h 文件保存正确、并且在实验中使用编辑过的版本、而不是默认版本。

    通常、较慢的开关速度可能意味着以热量(通常是 FET)的形式损失更多的能量、但 EMI 性能会更好。 开关速度快、损耗更少、但 EMI 性能更差。  

    此致、

    Yara