Other Parts Discussed in Thread: LAUNCHXL-F280049C, DRV8311, DRV8316, MOTORWARE, C2000WARE
I am trying to get the DRV8311HEVM board working with the LAUNCHXL-F280049C processor board and a small brushless DC motor.
I am running through the labs provided in the solution for the DRV8311HEVM in this post: https://e2e.ti.com/f/1/t/1037895
I have worked through labs 1 to 4 and believe everything is working as expected.
However for lab 5 the values determined by the motor identification routine are way off, and the motor does not spin if I re-enable 'flagRunIdentAndOnLine' after the motor is identified.
If we start with the winding resistance Rs, my motor is approx 3.3ohms per phase, or 6.6ohms phase to phase. The motor identification is calculating about 200 ohms.
I have tried adjusting the gain on the current sensing as the default setting gives a measurement range of approx +/- 13A, whereas this motor is limited to +/- 0.6A. This does not fix things.
my user.h file currently has these settings:
//! DRV8311 = VREF = 3V, GAIN = 1V/A || 3.3V / 1V/A = 3.3A
#define USER_ADC_FULL_SCALE_CURRENT_A ((float32_t)(3.3))
#define IA_OFFSET_A (1.51954913) // ~=0.5*USER_ADC_FULL_SCALE_CURRENT_A
#define IB_OFFSET_A (1.52126324) // ~=0.5*USER_ADC_FULL_SCALE_CURRENT_A
#define IC_OFFSET_A (1.51737309) // ~=0.5*USER_ADC_FULL_SCALE_CURRENT_A
#define VA_OFFSET_V (0.498054296) // ~=1.0
#define VB_OFFSET_V (0.495817453) // ~=1.0
#define VC_OFFSET_V (0.495953172) // ~=1.0
#define USER_MOTOR NFP_1215_912
#elif (USER_MOTOR == NFP_1215_912)
#define USER_MOTOR_TYPE MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS (1)
#define USER_MOTOR_Rr_Ohm (NULL)
#define USER_MOTOR_Rs_Ohm (3.3)
#define USER_MOTOR_Ls_d_H (0.00005)
#define USER_MOTOR_Ls_q_H (0.00005)
#define USER_MOTOR_RATED_FLUX_VpHz (NULL)
#define USER_MOTOR_MAGNETIZING_CURRENT_A (NULL)
#define USER_MOTOR_RES_EST_CURRENT_A (0.3)
#define USER_MOTOR_IND_EST_CURRENT_A (-0.3)
#define USER_MOTOR_MAX_CURRENT_A (0.6)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz (60.0)
#define USER_MOTOR_NUM_ENC_SLOTS (500)
#define USER_MOTOR_INERTIA_Kgm2 (1.15e-06)
#define USER_MOTOR_FREQ_MIN_HZ (5.0) // Hz
#define USER_MOTOR_FREQ_MAX_HZ (300.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 (2.0) // Volt
#define USER_MOTOR_VOLT_MAX_V (7.0) // Volt
Any idea what might be happening, and how I can debug it? Its a bit difficult to debug when the code for the motor id is the ROM.
Thanks in advance.