你好我的朋友。
本公司生产黑白激光打印机。 DRV8038在我们其中一台40PPM的打印机中设计,用于驱动BLCD电机。 DRV8038在内部寄存器模式下工作,从120个三霍尔换向自动转换为180个正弦换向。 DRV8038的BLCD电动机通常沿相反方向和反方向驱动。
问题是:当DRV8038只驱动一些力矩较小的车轮齿轮时,BLCD电机运行速度更快。 当DRV8038驱动轮齿轮和热凝器+滚筒作用力较大时,BLCD电机运行速度较慢。 当DRV8038驱动轮齿轮和热凝器+滚筒和碳粉盒施加最大力时,BLCD电机运行最慢。 但SPI寄存器值不会更改。
本公司还在本公司的打印机产品(如NEDIC)中应用了其它一些电机模块(BLCD电机及其匹配驱动器),但从未发生过这种情况。 电机模块始终以相同的速度运行,并具有不同的力矩。如果力矩对电机模块来说过大,电机模块将停止运行,但不会变慢。
我们希望DRV8038能够将其BLCD电机的速度提高到40PPM,但不会变慢和变慢。 或者DRV8308可能不适合,请推荐匹配型号。
这是我们公司首次与TI进行自设计电机驱动器,但我们的经验不足。 请帮助我们。 内部寄存器的配置如下所示。此配置是否有一些错误?
// CTRL1寄存器
G_CTRL1_REG.Address = 0x00;
G_CTRL1_REG.AG_SETPT = 9;//=1.5KHz (AutoGain = LOOPGAIN * fCLKIN / AG_SETPT)
G_CTRL1_REG.ENPOL = 0x0;//启用为高时设备处于活动状态
G_CTRL1_REG.DIRECPOL = 0x0;// DIR高时的正常方向
G_CTRL1_REG.BRKPOL = 0x0;//制动器处于高位时制动
G_CTRL1_REG.SYNRECT = 0x1;//同步整流可实现更好的速度控制和更高的效率
//G_CTRL1_REG.PWMF = 0x0;//speed= 1500高速 Ω+PWMF=025KHz,40US:U-Duty (24V)= 14.4us,U-120°=快4.51ms
G_CTRL1_REG.PWMF = 0x1;//speed= 1500高速+PWMF=050KHz / 20us:U-Duty (24V)= 7.00us,U-120°= 4.77ms快速
//G_CTRL1_REG.PWMF = 0x2;//speed= 1500高速+PWMF=100KHz / 20us:U-Duty (24V)= 3.26us,U-120°= 5.33ms慢
//G_CTRL1_REG.PWMF = 0x3;//speed= 1500高速 Ω+PWMF=200kHz/05us:U-Duty (24V)= 1.20us,U-120°=慢7.76ms
//G_CTRL1_REG.SPDMODE = 0x0;//时钟频率模式
//G_CTRL1_REG.SPDMODE = 0x1;//时钟PWM模式(PWMF有效MOD120=有效CLKIN无效)
G_CTRL1_REG.SPDMODE = 0x2;//内部寄存器PWM模式(PWMF有效MOD120=有效CLKIN无效)
G_CTRL1_REG.FGSEL = 0x0;//0:使用HALL_U生成FG 1:使用所有3个霍尔传感器的XOR 2:使用FG放大器输入3:使用TACH输入
//G_CTRL1_REG.BRKMOD = 0x0;//启用未激活时关闭(输出3态)
G_CTRL1_REG.BRKMOD = 0x1;//启用未激活时制动(输出3态)
G_CTRL1_REG.retry = 0x1;//发生故障时自动重试
//高级寄存器
G_Advance REG.Address = 0x01;
G_Advance REG.Advance = 33;//后移计时与霍尔信号(33/960*Hall_U周期)
// COMCTRL1寄存器
G_COMCTRL1_REG.Address = 0x02;
//G_COMCTRL1_REG.SPDREVS = 3;//003*2.56ms=7.68ms锁定前从到达的最小Hall_U时间
G_COMCTRL1_REG.SPDREVS = 4;//004*2.56ms=10.24毫秒锁定前到达的最小Hall_U周期
//G_COMCTRL1_REG.MINSPD = 50;//195*2.56ms=499.2毫秒可设置锁止前制动器的最小霍尔_U时间
//G_COMCTRL1_REG.MINSPD = 180;//180*2.56ms=460.8ms制动器在锁定前的最小霍尔_U时间
G_COMCTRL1_REG.MINSPD = 195;//195*2.56ms=499.2毫秒可设置锁止前制动的最小Hall_U周期
// MOD120寄存器
G_MOD120_REG.Address = 0x03;
G_MOD120_REG.BASIC = 0x0;//允许120°单呼/1-霍尔或180°正弦换向
//G_MOD120_REG.basic = 0x1;//force 120°standard/3-霍尔换向并禁用高级功能
//G_MOD120_REG.SPEEDTH = 0x5;//在锁定保持设置= 6.25 % 时,允许在Hall_U期间内出现速度变化
G_MOD120_REG.SPEEDTH = 0x6;//在锁定保持设置= 12.5 % 时,允许在Hall_U期间出现速度变化
G_MOD120_REG.MOD120 = 3970;//从120°操作平稳过渡到180°操作
//G_MOD120_REG.MOD120 = 4095;//速度= 1500高速 Ω+PWMF=100kHz/10us:U-Duty (24V)= 6.9us,U-120°= 3.32ms
//G_MOD120_REG.MOD120 = 1500高速;//speed=Pf ü r+PMMF=100kHz/10us:U-Duty (24V)=5.1us,U-120°= 3.32ms
//G_MOD120_REG.MOD120 = 2048;//speed=1500高速+PWMF=100kHz/10us:U-Duty (24V)=3.3us,U-120°=5.3ms
//G_MOD120_REG.MOD120 = 1048;//speed=+PWMF=100kHz/10us:U-Duty (24V)=1.4us,U-12.015万0高速°=15ms
//驱动器寄存器
G_DRIVE_REG.Address = 0x04;
G_DRIVE_REG.LRTIME = 0x0;
G_DRIVE_REG.HALLRST = 0x0;//设置每个换向计数器重置通过的hall_U循环数。 换言之,
//换向计数器每N hall_U边缘重置一次。 可用选项包括1,2,4和8。
G_DRIVE_REG.DELAY = 0x0;//配置霍尔信号后面的前进
//G_DRIVE_REG.DELAY = 0x1;//配置霍尔信号前的前进
G_DRIVE_REG.AUTOADV = 0x0;//禁用自动提前补偿
//G_DRIVE_REG.AUTOADV = 0x1;//启用自动提前补偿转得快多了
G_DRIVE_REG.AUTOGAIN = 0x1;//启用自动增益补偿
//G_DRIVE_REG.ENSINE = 0x0;//选择120°单霍尔换向(基本=0)
G_DRIVE_REG.ENSINE = 0x1;//选择180°正弦换向(基本=0)
G_DRIVE_REG.TDRIVE = 0x1;//=5us前置驱动器高电流驱动时间
G_DRIVE_REG.DTIME = 0x0;
G_DRIVE_REG.IDRIVE = 0x0;//=10mA预驱动器输出峰值电流
//G_DRIVE_REG.IDRIVE = 0x2;//=30mA反转有时不对
G_DRIVE_REG.IDRIVE = 0x3;//=50mA前置驱动器输出峰值电流
//G_DRIVE_REG.IDRIVE = 0x4;//=90mA所有120°换向,错误???
// SPDGAIN寄存器
G_SPDGAIN_REG.Address = 0x05;
G_SPDGAIN_REG.INTCLK = 0x3;//50MHz/2^3=6.25MHz
//G_SPDGAIN_REG.INTCLK = 0x5;//50MHz/2^5=1.5625MHz
G_SPDGAIN_REG.SPDGAIN = 0x007;//无效
// FILK1寄存器
G_FILK1_REG.Address = 0x06;
G_FILK1_REG.HALLPOL = 0x0;//霍尔信号逻辑电平是直接必须=0
G_FILK1_REG.BYPFILT = 0x0;//启用FILK1和FILK2配置的过滤器
G_FILK1_REG.FILK1 = 1200;//极频率滤波系数[100Hz~1600Hz] 1200=573.521Hz
// FILK2寄存器
G_FILK2_REG.Address = 0x07;
G_FILK2_REG.FILK2 = 950;//零频率的滤波系数[2Hz~100Hz] 950=56.286Hz
// COMPK1寄存器
G_COMPK1_REG.Address = 0x08;
G_COMPK1_REG.BYPCOMP = 0x0;//整套COMPK1和COMPK2配置的补偿器
G_COMPK1_REG.COMPK1 = 300;//极频率补偿系数300=142.3935Hz
// COMPK2寄存器
G_COMPK2_REG.Address = 0x09;
G_COMPK2_REG.AA_SETPT = 0x0;//=3Hz (自动高级=高级* fHall_U / AA_SETPT)
G_COMPK2_REG.COMPK2 = 600;//零频率补偿系数600=35.537Hz
// LOPGN寄存器
G_LOOPGN_REG.Address = 0x0A;
G_LOOPGN_REG.OCPDEG = 0x3;// VFETOCP触发器的脱模时间=5us / OCP忽略电压峰值的脱毛时间=5us
G_LOOPGN_REG.OCPTH = 0x3;// VFETOCP的保护阈值(FET的漏极至电源过压=1V,用于过电流保护)
G_LOOPGN_REG.OVTH = 0x0;// VOVLO保护阈值(VM过压=29V)<?? 0=29V 1=34V ?>
//G_LOOPGN_REG.OVTH = 0x1;// VOVLO保护阈值(VM过压=34V)<?? 0=29V 1=34V ?>
G_LOOPGN_REG.VREF_EN = 0x0;//VREG仅在启用时启用
G_LOOPPGN_REG.LOOPGAIN = 100;//设置速度控制回路的整体增益
G_LOOPPGN_REG.LOOPGAIN = 40;//设置速度控制回路的整体增益
Thks & Rgds