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.
Hello Mr.Rick,
I have the data as in the pdf file you sent. But I am asking how to make the pattern to activate MOSFET's in order to give the supply to the stator coil when using 5 pole pairs and three hall sensors?
Will the commutation output pattern be differed if you use only one pole pair ?
for 1 pole pair: mech revolution(360°)/1 pole pair= 360°, that means rotor travelled one full rotation. To activate six MOSFET's the six step commutation pattern: 360°/6=60°,that means for every 60° every hall sensor changes its state.
for 5 pole pair: mech revolution(360°)/5 pole pairs=72°, that means rotor travelled only 72°. To activate six MOSFET's the six step commutation pattern: 72°/6=12°,that means for every 12° the hall sensors changes their state.
In both scenarios will the commutation output pattern be same or different? I hope you got my question.
Thanks
Hi Bunny,
In the link provided by Rick, the hall sensor (HA,HB & HC) & Phase (U,V & W) relation is given in image format as shown. Something similar should be there in your motor datasheet.
In case, commutation table is not available in the data sheet, then you can populate this by running the motor in open loop by locking the rotor in known positions and capture the hall patterns. To run the motor in open loop, apply commutation pattern in sequence (U+V- , U+W-, V+W-, V+U-, W+U-, W+V-) and capture the corresponding hall sequence.
Locking the rotor means, aligning rotor flux to the stator flux therefore there is no torque between them and Its getting locked. But to get optimum torque we should maintained 120 to 60 degree phase difference between them.Therefore advance phase commutation sequence by 120 degree to obtained optimum torque. This can be done by rearranging the table.
Thanks
Abhishek
Hi Bunny,
In case of hall sensor, commutation pattern doesn't depend on pole pair. Because this sensor gives electrical angle. But for other sensors like encoder pole pair effect because in that case you will get mechanical angle (shaft position). In case of hall sensor you need pole pair to calculate the physical speed of the motor not commutation pattern.
speed = 120f/p;
Thanks
Abhishek
Hi Mr.Abhishek,
(0, 0, 0x00), /* Hall pattern=0, forward direction (error) */
(1, 3, 0x31), /* Hall pattern=1, forward direction */
(2, 6, 0x07), /* Hall pattern=2, forward direction */
(3, 2, 0x34), /* Hall pattern=3, forward direction */
(4, 5, 0x1C), /* Hall pattern=4, forward direction */
(5, 1, 0x0D), /* Hall pattern=5, forward direction */
(6, 4, 0x13), /* Hall pattern=6, forward direction */
(0, 0, 0x00), /* Hall pattern=7, forward direction (error) */
(0, 0, 0x00), /* Hall pattern=0, reverse direction (error) */
(1, 5, 0x13), /* Hall pattern=1, reverse direction */
(2, 3, 0x0D), /* Hall pattern=2, reverse direction */
(3, 1, 0x1C), /* Hall pattern=3, reverse direction */
(4, 6, 0x34), /* Hall pattern=4, reverse direction */
(5, 4, 0x07), /* Hall pattern=5, reverse direction */
(6, 2, 0x31), /* Hall pattern=6, reverse direction */
(0, 0, 0x00) /* Hall pattern=7, reverse direction (error) */
Can you please look at the pattern and tell me if it's wrong?
Thanks in advance
Please ref your Micro-controller datasheet to understand this pattern.
Also check which modulation tech. you are using? high side, low side or sync rect. Based on that verify Pattern.
For an example pattern could be
0x021 => 0xPhase-W Phase-V Phase-U
Phase-W is 0 means not conducting
Phase-V is 2 means low side conducting (complete on)
Phase-U is 1 means high side conducting (PWM)
Thanks
Abhishek
That's great...
If you have current probe, capture the phase current waveform. Due to wrong commutation sequence also motor may draw high current. In this case your motor will get heated up.
If modulation tech. is synchronous rectification then check dead time configuration also. In this case your device will get heated up. Capture the high side and low side PWM of same leg to verify.
Thanks
You can probe directly hall sensor wires coming from motor or GPIO pins where these hall signals are connected.
Thanks
Hi Bunny,
This waveform is not clear to me. Can you increase the time scale and capture more samples?
If motor is very small then put some load on motor so that it will draw more current and you can capture clear waveform.
Thanks
Hi Abhishek,
I see the current is always varying when I Keep the Motor in running state. But the current is not constant. Even when I applied load, the current is always varying which can be seen on the SMPS display. Can you tell me what exactly the mistake is?
Thanks
Hi Bunny,
Phase current will vary because at different instant you are energizing different phase winding. But if you will read DC link current at PWM on instant then you will get constant current and it will be equal to your supply current.
I have attached sample of phase current and voltage waveform for your reference, this will give you idea, how these waveform look like.
Thanks
Hi Bunny,
Still current waveform is not very good. Need to improve further...
Thanks
Bunny,
There must be some issue, once debugged waveform will be fine. I have written few steps probably this will help you.
Hall Sensors:
Phase Energization:
(curr_Hall1, next_Hall1, PH1), (curr_Hall2, next_Hall2, PH1)… (curr_Hall6, next_Hall6, PH1)
If PH1 => U+V-, then verify (using CRO) PWM waveform on Phase U high side and always high on Phase V low side. No waveform on Phase W high/low side.
(curr_Hall1, next_Hall1, PH2), (curr_Hall2, next_Hall2, PH2)… (curr_Hall6, next_Hall6, PH2) -> Capture Hall2
.
.
(curr_Hall1, next_Hall1, PH6), (curr_Hall2, next_Hall2, PH6)… (curr_Hall6, next_Hall6, PH6) -> Capture Hall6
Note: Once you will apply same pattern, rotor will be locked at one position. Motor will draw more constant current. Therefore don’t apply higher duty cycle (Apply Max 5 to 10% PWM duty). Also if possible limit current in your power supply for safety.
Once captured correct commutation pattern, then in every hall state change ISR, apply the commutation pattern based on hall state.
Thanks
Abhishek
Hi,
Ch-4 : Signal strength (amplitude) of hall is very low. Make sure this is not due to probe setting (10x/1x). If not probe issue then this can create the problem.
Ch-2/3 : Fine
Ch-1 : Current is not good. If motor is not spinning (locked) then this should be DC current (straight line). If spinning correctly then this should be similar to sample current I have posted before.
Thanks
Abhishek
Hi Abhishek,
Ch4: yes,hall sensor Signal strength is low because of the probe Setting of oscilloscope. Because the probe which I have for fourth channel is only having 1x factor. so I couldn't Change 10x factor.
And you mean Phase current is not good? Is it to be changed and how?
thanks
Hi,
Current is the response of, how you apply voltage (commutation pattern) on motor phase windings. If commutation is fine then current should be fine.
If you don’t mind we can debug this offline, send me a private message.
Thanks
Abhishek