随着市场需求的发展,F28002x系列拥有100MHz C28x 32Bit DSP CPU,高达128KB Flash和24KB RAM,有两个独立的12位ADC转换器,每个ADC转换器高达3.45MSPS采样率,有16个ADC通道,有14路ePWM输出(其中8路支持高精度HRPWM,最高可到达150ps精度),有四个窗口比较器CMPSS,支持CAN和LIN通讯,有48脚/64脚/80脚LQFP三种封装,因此,非常适合做各种风机,水泵,油泵,空调压缩机等电机控制应用以及做交错式PFC,图腾柱PFC,LLC,移相全桥等数字电源拓扑控制。
F280023C/F280025C型号内置TI高性能的无传感器InstaSPIN FOC控制算法,其优异的观测器性能,可以提升客户产品的启动性能,也可以让客户产品运行在更低的工作频率。过调制功能可以让客户产品运行在更高的工作频率,从而提升了电机运行的效率。InstaSPIN FOC同时还自带电机参数自学习功能,通过自学习功能,可以识别电机的电阻,电感和反电势参数, 从而自动生成速度环和电流环控制的PID,因此大大简化了客户匹配电机的过程,减少了客户的开发时间。同时降低了客户对于FOC电机控制的经验要求,因此深受广大客户的欢迎。从而广泛应用于白电空调压缩机,冰箱压缩机,洗衣机电机,无人机动力电机,新能源汽车空调压缩机,各种风机,水泵,油泵等控制场合。
本文将介绍基于F280025C ControlCard和DRV8312-Kit的InstaSPIN FOC软硬件使用指南。
硬件准备工作
首先, 请准备好下面三个硬件:
1. TMDSCNCD280025C -- F280025C ControlCard
2. DRV8312-C2-KIT/DRV8312-69M-KIT — DRV8312电机控制套件这个套件包含以下内容:
DRV8312 三相电机控制板
PiccoloTMDSCNCD28035ISOcontrolCARD或者TMDSCNCD28069MISOcontrolCARD
24 V 电源
USB 线
3. TMDSADAP180TO100 — 180PIN到100PIN转接卡
因为DRV8312-KIT是比较早的电机控制套件, 设计时ControlCARD的接口是按第二代C2000 ControlCARD设计的100PIN接口, 而F280025C ControlCARD是按照第三代C2000 ControlCARD设计的120接口,因此F280025C ControlCARD需要通过TMDSADAP180TO100转接才能接到DRV8312-KIT的接口上。
硬件设置
接下来请按下面步骤来设置硬件。
步骤一. DRV8312-KIT跳线和拨码开关设置:
如下图所示:JP1跳线接到VR1, M1接到H ,RSTA/RSTB/RSTC拨到中间(MCU)位置
步骤二.F280025C ControlCard拨码开关设置
如下图所示:S1A全拨到上面, S3 拨到上面 ,S5 左边的拨到下面,右边的拨上面
步骤三:将F280025C ControlCard接到TMDSADAP180TO100上, 然后将它们一起接到DRV8312-KIT的J1 ControlCard插槽上,如下图所示:
步骤四:
1.将电机三相输入接到M0A/MOB/MOC,
2.将Mini USB接口一端链接电脑USB口,一端连接到F280025C ControlCard J1:A接口上,
3.24V电源接到J9
整体安装完成图如下:
软件准备工作
请确保已经安装C2000Ware_MotorControl_SDK_F28002x_3_00_00_01
步骤一:打开CCS,导入项目CCS项目,例如is05_motor_id_eabi
(项目在“..C2000Ware_MotorControl_SDK_F28002x_3_00_00_01solutionsdrv8312_c2_kitf28002x
ccssensorless_foc”路径下)
步骤二:确保hal.c(在..C2000Ware_MotorControl_SDK_F28002x_3_00_00_01solutions
drv8312_c2_kitf28002xdriverssourcehal.c路径下)文件,HAL_setupADCs(HAL_Handle handle)函数中,ADC SOC配置如下:
// configure the SOCs for drv8312kit_revD
// IA-FB - A1/RA0
ADC_setupSOC(obj->adcHandle[0],ADC_SOC_NUMBER0,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN1, 14);
// IB-FB - C1/RC0
ADC_setupSOC(obj->adcHandle[1],ADC_SOC_NUMBER0,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN1, 14);
// IC-FB - A3/RA1
ADC_setupSOC(obj->adcHandle[0],ADC_SOC_NUMBER1,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN3, 14);
// ADC-Vhb1 - C11/RC1
ADC_setupSOC(obj->adcHandle[1],ADC_SOC_NUMBER1,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN11, 14);
// ADC-Vhb2 - A7/RA2
ADC_setupSOC(obj->adcHandle[0],ADC_SOC_NUMBER2,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN7, 14);
// ADC-Vhb3 - C7/RC2
ADC_setupSOC(obj->adcHandle[1],ADC_SOC_NUMBER2,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN7, 14);
// VDCBUS - A14/RA3. DRV8312 board does not have capacitor onVbusfeedback, so
// the sampling needs to be very long to get an accurate value
ADC_setupSOC(obj->adcHandle[0],ADC_SOC_NUMBER3,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN14, 200);
// throttle - C0->RC3
ADC_setupSOC(obj->adcHandle[1],ADC_SOC_NUMBER3,ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN0, 14);
步骤三:确保user.h(在..C2000Ware_MotorControl_SDK_F28002x_3_00_00_01solutions
drv8312_c2_kitf28002xdriversincludeuser.h路径下)中电流,电压,截止频率参数如下:
//! brief Defines the nominal DC bus voltage, V
//!
#defineUSER_NOMINAL_DC_BUS_VOLTAGE_V ((float32_t)(24.0f))
//! brief Defines the maximum voltage at the AD converter
//!
// Full scale voltage of AD converter, not the current voltage
#defineUSER_ADC_FULL_SCALE_VOLTAGE_V ((float32_t)(66.32f))
//! brief Defines the maximum current at the AD converter
//!
// DRV8312 motor control kit
#defineUSER_ADC_FULL_SCALE_CURRENT_A ((float32_t)(17.3f))
//! brief Defines the analog voltage filter pole location, Hz
//!
#defineUSER_VOLTAGE_FILTER_POLE_Hz ((float32_t)(714.14f))
步骤四:增加下面部分内容,并确保 #define USER_MOTOR my_motor_new
#define my_motor_new 600
#elif(USER_MOTOR == my_motor_new)
#defineUSER_MOTOR_TYPE MOTOR_TYPE_PM
#defineUSER_MOTOR_NUM_POLE_PAIRS (4)
#defineUSER_MOTOR_Rr_Ohm (NULL)
#defineUSER_MOTOR_Rs_Ohm (0.417878777f)
#defineUSER_MOTOR_Ls_d_H (0.0007190173f)
#defineUSER_MOTOR_Ls_q_H (0.0007190173f)
#defineUSER_MOTOR_RATED_FLUX_VpHz (0.0327013217f)
#defineUSER_MOTOR_MAGNETIZING_CURRENT_A (NULL)
#defineUSER_MOTOR_RES_EST_CURRENT_A (1.5f)
#defineUSER_MOTOR_IND_EST_CURRENT_A (-1.5f)
#defineUSER_MOTOR_MAX_CURRENT_A (5.0f)
#defineUSER_MOTOR_FLUX_EXC_FREQ_Hz (20.0f)
#defineUSER_MOTOR_NUM_ENC_SLOTS (NULL)
#defineUSER_MOTOR_INERTIA_Kgm2 (7.06154e-06f)
#defineUSER_MOTOR_MIN_MAX_HZ (5.0) // Hz
#defineUSER_MOTOR_FREQ_MAX_HZ (390.0) // Hz
#defineUSER_MOTOR_FREQ_LOW_HZ (10.0) // Hz
#defineUSER_MOTOR_FREQ_HIGH_HZ (400.0) // Hz
#defineUSER_MOTOR_VOLT_MIN_V (4.0) // Volt
#defineUSER_MOTOR_VOLT_MAX_V (24.0) // Volt
至此软硬件准备工作完毕,接下来可以参考MotorControl SDK InstaSPIN Lab Guide.pdf进行具体的InstaSPIN FOC软件调试工作。
(MotorControl SDK InstaSPIN Lab Guide.pdf在..C2000Ware_MotorControl_SDK_F28002x_3_00_00_01
solutionscommonsensorless_focdocslabs路径下)
审核编辑:郭婷
-
电源
+关注
关注
184文章
17573浏览量
249476 -
转换器
+关注
关注
27文章
8624浏览量
146859 -
adc
+关注
关注
98文章
6430浏览量
544072 -
比较器
+关注
关注
14文章
1633浏览量
107098
发布评论请先 登录
相关推荐
评论