主题中讨论的其他器件:DRV8320
在文件 is09_Flying_start.c 中、死区时间似乎设置为100ns、如下行所示。
drvSPI8320Vars.ctrl_Reg_05.dead_time = DRV8320_Deadtime_100_NS;
这意味着什么?
死区时间如何设置为100ns? 尝试了解在硬件寄存器中实际设置它的代码。 需要帮助。 谢谢。
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.
在文件 is09_Flying_start.c 中、死区时间似乎设置为100ns、如下行所示。
drvSPI8320Vars.ctrl_Reg_05.dead_time = DRV8320_Deadtime_100_NS;
这意味着什么?
死区时间如何设置为100ns? 尝试了解在硬件寄存器中实际设置它的代码。 需要帮助。 谢谢。
您好、Akila、
请参阅以下代码。 DRV8320_DeadTime_100_NS 是用于指定死区时间的预定义值、如下所示。
typedef enum
{
DRV8320_DEADTIME_50_NS = (0 << 8), //!< DEAD_TIME = 50ns
DRV8320_DEADTIME_100_NS = (1 << 8), //!< DEAD_TIME = 100ns
DRV8320_DEADTIME_200_NS = (2 << 8), //!< DEAD_TIME = 200ns
DRV8320_DEADTIME_400_NS = (3 << 8) //!< DEAD_TIME = 400ns
} DRV8320_CTRL05_DeadTime_e;
控制寄存器直接读取该值并在 main 中设置死区。
typedef struct _DRV8320_Ctrl05_t_
{
DRV8320_CTRL05_VDSLVL_e VDS_LVL; // Bits 3-0
DRV8320_CTRL05_OcpDeg_e OCP_DEG; // Bits 5-4
DRV8320_CTRL05_OcpMode_e OCP_MODE; // Bits 7-5
DRV8320_CTRL05_DeadTime_e DEAD_TIME; // Bits 9-8
bool TRETRY; // Bits 10
}DRV8320_Ctrl05_t;
//! \brief Object for the DRV8320 registers and commands
//!
typedef struct _DRV8320_SPIVars_t_
{
DRV8320_Stat00_t Stat_Reg_00;
DRV8320_Stat01_t Stat_Reg_01;
DRV8320_Ctrl02_t Ctrl_Reg_02;
DRV8320_Ctrl03_t Ctrl_Reg_03;
DRV8320_Ctrl04_t Ctrl_Reg_04;
DRV8320_Ctrl05_t Ctrl_Reg_05;
bool writeCmd;
bool readCmd;
uint16_t manWriteAddr;
uint16_t manReadAddr;
uint16_t manWriteData;
uint16_t manReadData;
bool manWriteCmd;
bool manReadCmd;
}DRV8320_SPIVars_t;
最棒的
John
如上所述、您可能会在项目文件(is0x_xxx.c)中找到以下代码、只需将正确的值设置为 drvSPI8320Vars.Ctrl_Reg_05.Deid_time 即可。
drvSPI8320Vars.ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P300_V;
drvSPI8320Vars.ctrl_Reg_05.dead_time = DRV8320_Deadtime_100_NS;
drvSPI8320Vars.writeCmd = 1;
HAL_writeDRVData (halHandle、&drvSPI8320Vars);
不需要、 在初始代码中 DBCTL 只配置一次、在大多数电机控制应用中、死区时间不需要更新。
死区时间在 DBFED 和 DBRED 寄存器中设置、C2000控制器将相应地通过硬件生成死区时间。 您可以查看 F280049C 技术参考手册的 PWM 一章。
如上所述、一些栅极驱动器具有其死区时间控制、例如 DRV8320RS。 在这些情况下、C2000控制器不需要知道和控制死区时间。
感谢您的回答。 我想知道 DRV8320RS 如何控制死区时间的详细信息吗?
我还需要知道 DRV8320RS 可以更改哪些其他器件配置值?
例如、以下值表示什么? 用户是否不应更改它? 如果可以更改、该值应设置为什么? 我看到 VDS_LEVEL = 1.300V、如何知道这是不是正确的值?
drvSPI8320Vars.ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P300_V;
设置值取决于使用的 MOSFET、即电源板的最大电流。
您可以查看 DRV8320RS 的数据表、其中详细介绍了控制寄存器。 您可以根据硬件设置寄存器。