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.

[参考译文] 步进电机问题

Guru**** 656470 points
Other Parts Discussed in Thread: TM4C1294NCPDT, DRV8711
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1182315/stepper-motor-issue

主题中讨论的其他器件:TM4C1294NCPDTDRV8711

尊敬的先生:

我们使用的是 TM4C1294NCPDT 微控制器、我们在硬件单元中设计了4个步进电机。它与 LHS (左侧)和 RHS (右侧)分离。每个步进电机使用 DRV8711步进驱动器 IC。

第1步进电机具有高电流和高速。

第2个步进电机具有低扭矩和最小速度。

上述电机在 RHS 侧也具有相同的过程。

之前我们仅运行 LHS 或 RHS。现在我们计划同时运行 LHS 和 RHS (4个步进电机)。所有步进电机均已配置为1ms 计时器中断。现在我们面临中断延迟(这意味着 LHS 和 RHS 序列不相同、具有一些延迟)。

左侧:

第1个步进电机:

Control_Register.MODE  = 0x02;

扭矩_寄存器.扭 矩  = 0xF0;

DECAY_Register.TDECAY  = 0x10;

STALL_Register.SDTHR   = 0x1A;

步进电机2:

Control_Register.MODE  = 0x02;

扭矩_寄存器.扭 矩  = 0x64;

DECAY_Register.TDECAY  = 0x10;

STALL_Register.SDTHR   = 0x40;

上述配置与 RHS 侧相同。

如果我同时操作 LHS 和 RHS、则意味着会出现哪种问题、否则、该问题的替代选项是什么。

提前感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我并不是完全关注这个问题。  是否使用 CTRL 寄存器(地址= 0x00)对步进电机进行索引并写入位2?   

    此致、

    Ryan  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢你的答复

    LHS 步进电机1:

    Control_Register.Address = 0x00;
    Control_Register.ENBL = 0x01;
    Control_Register.RDIR = 0x00;
    CONTROL_Register.RSTEP = 0x00;
    Control_Register.MODE = 0x02;
    Control_Register.EXSTALL = 0x00;
    Control_Register.ISGAIN = 0x02;
    Control_Register.DTIME = 0x03;

    LHS 步进电机2:

    Control_Register.Address = 0x00;
    Control_Register.ENBL = 0x01;
    Control_Register.RDIR = 0x00;
    CONTROL_Register.RSTEP = 0x00;
    Control_Register.MODE = 0x02;
    Control_Register.EXSTALL = 0x00;
    Control_Register.ISGAIN = 0x01;
    Control_Register.DTIME = 0x03;

    上述代码与 RHS 相同。

    谢谢你。、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tom、

    我仍不关注问题所在。  您能回答上述问题吗?  您是否使用步进输入(硬件引脚)或控制寄存器来移动电机?

    此致、

    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们将步进输入硬件引脚用于移动电机。

    当 STEP 输入为高电平时、应开始生成脉冲。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。、

    为避免中断延迟,所有步进电机均通过单个计时器进行配置。例如,

    电机1 = Timer0A

    电机2= Timer1A

    电机3= Timer2A

    电机4= Timer3A

    我编写一个代码、比如、

    空 Timer0A_Initialize (空)

    SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0);
    TimerConfigure (TIMER0_BASE、TIMER_CFG_A_PERIODICASE);
    TimerLoadSet (TIMER0_BASE、TIMER_A、g_Timer0A_ClockSetValue);
     IntPrioritySet (INT_TIMER0A、0);
    IntEnable (INT_TIMER0A);
    TimerIntEnable (TIMER0_BASE、TIMER_TINA_TIMEOUT);
    TimerEnable (TIMER0_BASE、TIMER_A);

    在第1个步进电机中、我添加 了 IntPrioritySet (INT_TIMER0A、0); 我设置了该电机中的最高优先级。

    此外、我还知道最低优先 级的 IntPrioritySet (INT_TIMER0A、0xE0);  

    我的问题是、是否可以将所有电机设置为更高的优先级、或者其他电机将设置更低的优先级。

    注:我们总共使用14个中断。如果您需要有关这方面的任何信息、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tom、

    我不是一名固件专家、也不了解 TMxx 处理器。  起初、我认为这可能是 DRV8711问题、但它似乎与 MCU 上的软件更相关。  是这样吗?

    如果是、我将邀请一位 TMxx 专家。

    此致、

    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Ryan、

    实际上、我曾尝试过它的 DRV8711问题和 中断延迟问题。

    首先,我需要知道的是,这款 DRV8711能够运行4个步进(例如,对于-DRV8711为1和2,对于另一个 DRV8711为3和4)

    我想 TMXX 专家会解决我的问题。请解决这个问题。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tom、

    您能否共享完整的原理图?  每个 DRV8711仅用于运行1个步进电机。  尚未考虑使用一个 IC 运行多个 IC、但可能是可行的。

    此致、

    Ryan