The TI E2E™ design support forums will undergo maintenance from Sept. 28 to Oct. 2. If you need design support during this time, contact your TI representative or open a new support request with our customer support center.

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.

LVSERVOMTR: DRV8301-69M-KIT kit and LVSERVOMTR running issue

Part Number: LVSERVOMTR
Other Parts Discussed in Thread: DRV8301-69M-KIT

Hello,

i got the DRV8301-69M-KIT and LVSERVOMTR motor (verified to be Teknic_M2310PLN04K).

i redid lab 1b and 5e to make sure the wire connection and system ran correctly.

my connection is: Teknic T (white) connects to A on DRV8301-69M-KIT, Teknic R (black) connects to B on DRV8301-69M-KIT, and Teknic S (red) connects to C on DRV8301-69M-KIT.

all good. i can spin the motor and adjust the speed.

then, i redo lab 12a by connecting the J4 of the Teknic cable to the DRV8301-69M-KIT J4 terminal, see picture below.

some snap shot of my user.h:

i am running 60v on this motor which i think it works fine on lab 1b and 5e.

#define USER_IQ_FULL_SCALE_VOLTAGE_V      (60.0) 

#define USER_IQ_FULL_SCALE_CURRENT_A          (41.25)

#define USER_SYSTEM_FREQ_MHz             (90.0)

#define USER_PWM_FREQ_kHz                (10.0)

the motor does not run when i adjust to non-zero speed.

the lab supply current jumped to 0.65A and motor stalled.

i am not sure what's going on yet.

i ran DRV8301-69M-KIT with my custom motor in InstacMotion control and things worked fine.

i bought a new set of DRV8301-69M-KIT and LVSERVOMTR motor for dynamometer purpose and would like to check out the motion control, but it does not work.

i have no clue now.

can you please shine some lights?

Best Regards,

henry

  • this is the eQEP setup codes from InstaSPIN:

    void HAL_setupQEP(HAL_Handle handle,HAL_QepSelect_e qep)
    {
    HAL_Obj *obj = (HAL_Obj *)handle;


    // hold the counter in reset
    QEP_reset_counter(obj->qepHandle[qep]);

    // set the QPOSINIT register
    QEP_set_posn_init_count(obj->qepHandle[qep], 0);

    // disable all interrupts
    QEP_disable_all_interrupts(obj->qepHandle[qep]);

    // clear the interrupt flags
    QEP_clear_all_interrupt_flags(obj->qepHandle[qep]);

    // clear the position counter
    QEP_clear_posn_counter(obj->qepHandle[qep]);

    // setup the max position
    QEP_set_max_posn_count(obj->qepHandle[qep], (4*USER_MOTOR_ENCODER_LINES)-1);

    // setup the QDECCTL register
    QEP_set_QEP_source(obj->qepHandle[qep], QEP_Qsrc_Quad_Count_Mode);
    QEP_disable_sync_out(obj->qepHandle[qep]);
    QEP_set_swap_quad_inputs(obj->qepHandle[qep], QEP_Swap_Not_Swapped);
    QEP_disable_gate_index(obj->qepHandle[qep]);


    QEP_set_ext_clock_rate(obj->qepHandle[qep], QEP_Xcr_2x_Res);

    QEP_set_A_polarity(obj->qepHandle[qep], QEP_Qap_No_Effect);
    QEP_set_B_polarity(obj->qepHandle[qep], QEP_Qbp_No_Effect);
    QEP_set_index_polarity(obj->qepHandle[qep], QEP_Qip_No_Effect);

    // setup the QEPCTL register
    QEP_set_emu_control(obj->qepHandle[qep], QEPCTL_Freesoft_Unaffected_Halt);


    QEP_set_posn_count_reset_mode(obj->qepHandle[qep], QEPCTL_Pcrm_Max_Reset);

    QEP_set_strobe_event_init(obj->qepHandle[qep], QEPCTL_Sei_Nothing);
    QEP_set_index_event_init(obj->qepHandle[qep], QEPCTL_Iei_Nothing);
    QEP_set_index_event_latch(obj->qepHandle[qep], QEPCTL_Iel_Rising_Edge);
    QEP_set_soft_init(obj->qepHandle[qep], QEPCTL_Swi_Nothing);
    QEP_disable_unit_timer(obj->qepHandle[qep]);
    QEP_disable_watchdog(obj->qepHandle[qep]);

    // setup the QPOSCTL register
    QEP_disable_posn_compare(obj->qepHandle[qep]);

    // setup the QCAPCTL register
    QEP_disable_capture(obj->qepHandle[qep]);

    // renable the position counter
    QEP_enable_counter(obj->qepHandle[qep]);


    return;
    }

  • this is the motor and the corresponding spec.  the predefined user.h file for Teknic motor has encoder line as 1000.

    that means it can count up to 4000 counts / rev.

    but the motor spec said it support different counts / rev.

    can you please confirm if the encoder count of 1000 line is correct for this motor?

    can someone please from TI shining some lights on my questions?  

    Thanks

    Henry

  • so i checked the motor spec and it said M2310P-LN-04K so that last 2 digit is 04 which means 4000 count / rev.

    so the user.h has motor encoder lines set to 1000 which seems to be all right.

    i am still not able to get it rotate on lab 12a.

  • ok i troubled shoot further and found out that the A/B/I encoder from the motor is dead.

    the Hall sensor seems to be still wok.

    I put the scope probe underneath J4 pins. 

    with 5VD input the A/B/I is constant 5V output.

    it does not change when i rotate the motor shaft.

    if i do not provide 5VD input, A/B/I are 0v output.

    see the video below that does not display any output when i rotate the motor shaft.

    i did the same measurement on J10 connector with 5v and GND input.

    there, i can clearly see the COMM S-T, COMM R-S, COMM-T-R toggling when i rotate the motor shaft.

    can someone please let me know if i miss something for encoder to output or it was dead?

    Thanks,

    Henry

  • hello, so finally we found out what happened.

    the GND wire of J4 and J10 were crimped together in the Molex connector.

    there is an issue on the crimping such that J4 GND is not connected.

    once we fixed that issue, the encoder works fine and i can run lab 12b and my application project using this new motor.

    i dont know if TI or Teknic built this molex connector, but certainly there is a craftmanship issue there.

    Best Regards,

    Henry