InstaSPIN FOC软硬件使用指南

随着市场需求的发展,c2000实时处理器不断地在性价方面做优化, 高性价比的f28002x系列在2020年开始量产。 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 三相电机控制板
piccolo tmdscncd28035iso controlcard或者tmdscncd28069miso controlcard
1个 bldc/blac nema17 55w 电机
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_01\solutions\drv8312_c2_kit\f28002x
\ccs\sensorless_foc”路径下)
步骤二:确保hal.c(在..\c2000ware_motorcontrol_sdk_f28002x_3_00_00_01\solutions\
drv8312_c2_kit\f28002x\drivers\source\hal.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 on vbus feedback, 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_01\solutions\
drv8312_c2_kit\f28002x\drivers\include\user.h路径下) 中电流,电压,截止频率参数如下:
//! \brief defines the nominal dc bus voltage, v
//!
#define user_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
#define user_adc_full_scale_voltage_v         ((float32_t)(66.32f))
//! \brief defines the maximum current at the ad converter
//!
// drv8312 motor control kit
#define user_adc_full_scale_current_a         ((float32_t)(17.3f))
//! \brief defines the analog voltage filter pole location, hz
//!
#define user_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)
#define user_motor_type                   motor_type_pm
#define user_motor_num_pole_pairs         (4)
#define user_motor_rr_ohm                 (null)
#define user_motor_rs_ohm                 (0.417878777f)
#define user_motor_ls_d_h                 (0.0007190173f)
#define user_motor_ls_q_h                 (0.0007190173f)
#define user_motor_rated_flux_vphz        (0.0327013217f)
#define user_motor_magnetizing_current_a  (null)
#define user_motor_res_est_current_a      (1.5f)
#define user_motor_ind_est_current_a      (-1.5f)
#define user_motor_max_current_a          (5.0f)
#define user_motor_flux_exc_freq_hz       (20.0f)
#define user_motor_num_enc_slots          (null)
#define user_motor_inertia_kgm2           (7.06154e-06f)
#define user_motor_min_max_hz             (5.0)           // hz
#define user_motor_freq_max_hz            (390.0)         // hz
#define user_motor_freq_low_hz            (10.0)          // hz
#define user_motor_freq_high_hz           (400.0)         // hz
#define user_motor_volt_min_v             (4.0)           // volt
#define user_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\
solutions\common\sensorless_foc\docs\labs路径下)
注意事项:
c2000ware_motorcontrol_sdk_f28002x_3_00_00_01 软件包并未公开发布,有需要的客户请联系所对应的ti销售和fae 进行申请。
参考文档:
1.instaspin foc 详细说明文档,请参考手册
instaspin-foc and instaspin-motion user's guide


聚灿拟募投项目变更 由LED芯片转LED外延片芯片生产
igbt工作原理及应用
MDKv5.25比较实用的功能
iphone8什么时候上市?iphone8最新消息:iphone8即将发布,逆天功能或支持3D相机功能
数智化与双碳化的交集,芯片行业机遇与挑战的并集
InstaSPIN FOC软硬件使用指南
消弧线圈接地补偿装置的使用方法和性能
远距离wifi传输技术的应用
彩电的白平衡与暗平衡的调整
基于STC89C55RD+单片机的LED点阵显示系统的设计
联动云租车消费的历史高点,创造 “消费破1亿元”的新纪录
基于金字塔的激光雷达和摄像头深度融合网络
干涉测量是解决天文学前沿最紧迫问题的唯一途径
NI发布最新PXIe-1491多媒体测试方案
华为阿里有机会在AI芯片领域追赶英伟达?
五花八门的应用彰显5G实力,2021年5G应用将超乎想象
ams TMG4903光学传感模块构建手势识别技术
单片机远距离多机串行通信应用
湖南大学等发表柔性SAW传感综述论文,被期刊选为亮点论文
浦东欲将打造国内顶级机器人产业高地