Chris,
Thanks for your comments.
In your previous post, you had mentioned that if a current comes out of the motor, and creates a voltage in the ADC of 1.65V to 3.3V, we have a positive current feedback. Whereas, I have the sensors in such a away that 1.65 to 3.3V is created when the current is going into the motor. Here is a small drawing illustrating my setup:
Would you still call this a positive feedback? I actually tried changing drv.h for positive feedback, but I couldn't run the motor then. I am able to run the motor only with the setting for negative feedback.
I did some tests to verify my current and voltage signals. Here is a chart comparing the current signal at the microcontroller's ADC pin (top) and the current measured using a current probe (bottom):
It looks pretty accurate to me.
For voltage feedback, I am using the same circuit suggested in user guide Figure 5-7. Here is the voltage signal (top) and actual phase voltage(bottom) at 1000 rpm:
I am looking at max. operating electrical frequency of around 916.67 and the voltage filter pole is at 714.15Hz. Is this good enough or should I change?
Regarding the wrong measured "dcBus" value, I checked the voltage feedback signal(+2.4V) and it seemed to properly reflect the bus voltage of +48V. However, the controller shows a totally wrong value, of around-31V. This seems to be a problem with the firmware. I have the USER_ADC_FULL_SCALE_VOLTAGE_V set properly to 66.32 and voltage offsets updated properly, to around 0.47. I am not sure why the value is still wrong. I was curious and checked the dcBus value on the DRV8312 kit while running the 24V kit bldc motor in lab 5e, and the value was shown to be around -27, while it should have been +24V. However, I could run the small motor even up to 5000 rpm without any issue.
Is there a way to plot the voltage and current measurements as read by the controller? The hardware signals look fine to me, but something seems to be wrong in the way they are translated in the firmware.
Shouldn't the controller be less dependent on the current and voltage measurements in lab 12, since it is getting the position values directly from the encoder?
Regarding the PWM & CTRL frequency, if I consider 45kHz PWM and CTRL frequency above 10kHz, the CPU utilization, 100 % * (DRV_acqAdcInt + DRV_readAdcData + Ctrl_run + DRV_writePwmData + Ctrl_setup + STVELCTL_run + STPOSCONV_run) / 90Mhz * 45kHz seems to be way over 100%. Am I missing something in the calculation or is it not possible to run at such high PWM frequencies? Will I have to disable the estimator and use only the encoder data to achieve this?
-Tamil


