ST意法半导体
直播中

laisvl

8年用户 1030经验值
私信 关注
[问答]

MCW 5.2 GUI中的驱动器极性是否是受支持的功能?

我们有一个使用 STM32F303 处理器的定制板。为其选择的栅极驱动器不是 STEVAL-001ESC IC。ST IC 具有低侧驱动器“低电平有效”的极性。我们使用的 IC 将低侧驱动器设为“高电平有效”。但是,当我们进行此更改时,似乎阶段未正确打开。
比较生成的软件,唯一的变化是 MCW 5.2 更新从低电平有效到高电平有效导致 5 个文件被更改,其中没有一个是 C 或 H 文件。它是 .ioc、.elf、.log 等文件。*.ioc 文件似乎显示了正确的更改,例如:
MotorControl.PHASE_VL_POLARITY= L_ACtiVE_LOW
改为:
MotorControl.PHASE_VL_POLARITY= L_ACTIVE_HIGH
也发生在其他 2 个阶段。
然而,似乎没有相应的 C 或 H 代码更改,并且板上栅极驱动器的输出似乎也没有改变。所以看起来它可能没有包含这个变化。我们已经在该板上成功构建并运行了 STEVAL-001ESC 的库存固件,并且对代码相当满意。  
请注意,在这个定制板上,我们已经覆盖了生成代码中的 GPIO 锁,并进行了快速测试以验证硬件/引出线是否正确。在这种情况下,我们跳过 PWM 并直接使用 HAL_GPIO_WritePin 函数命令栅极驱动器引脚。在这种情况下,设置/重置直接写入引脚,所有硬件都正常工作,电机如预期的那样晃动。
那么,任何人都可以回答这些问题:
  • MCW 5.2 GUI 中的驱动器极性是否是受支持的功能?
  • 如果是这样,这种极性是如何实现的?我们在任何 C 文件中都看不到它。
  • 如果没有,谁能建议在生成的代码中手动实现它的最佳位置?








回帖(1)

张建军

2023-1-3 14:38:13
更新按钮是一种解决方法,因为我们确实使用两个单独的工具来生成项目。Workbench 生成 IOC,cubeMX 借助此 IOC 生成带有初始化代码的项目。更新按钮的目的是在客户修改 IOC 时不覆盖它。
流程如下:
项目最初由 MC 工作台生成。
IOC加载cubeMX
用户添加其他外围设备(SPI、其他 GPIO 等...)并保存自定义的 IOC
用户想要更新其自定义 IOC 中的电机控制参数。
如果他应用生成,他将失去他的 IOC。
Update 按钮将仅修改 IOC 内的 MotorControl IP。
在您的情况下,它不会完成这项工作,因为极性是定时器配置:
TIM1.OCNPolarity_1=TIM_OCNPOLARITY_HIGH
TIM1.OCNPolarity_2=TIM_OCNPOLARITY_HIGH
TIM1.OCNPolarity_3=TIM_OCNPOLARITY_HIGH
所以它不会改变。我知道这很混乱,因为你也有那些领域
MotorControl.PHASE_UL_POLARITY=L_ACTIVE_HIGH
MotorControl.PHASE_VL_POLARITY=L_ACTIVE_HIGH
MotorControl.PHASE_WL_POLARITY=L_ACTIVE_HIGH
这将被更新,因为它们确实属于 MotorControl IP,但它们不在此上下文中使用....
我们计划将 Workbench 合并到 cubeMX 中以避免将来出现这种限制。
关于NUCLEO板,F303RE或者F446都是罚款。F302R8和F401只有1个ADC。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分