Dual Motor Control Using STM32H755zit3, Not in sync.
- July 3, 2026
- 0 replies
- 21 views
I have written a code to control two Hall sensor based geared BLDC Motors. I am using DRV-8353rs motor driver for this. We have designed a custom pcb as our motor control board. I have attached a pdf showing the circuit connection which we are following. I am also attaching the relevant code files needed to analyse this as well as a couple of tests I have run till now. I am generating pwm for motor 1 via Tim 1 and motor 2 via Tim 8 ( using complimentary pwm generation from 3 channels i,e CH1 CH1n CH2 CH2N CH3 CH3N). There are mainly two concerns which I am unable to resolve right now.
1. The motor running on tim 8 is always faster than the motor on tim1. The difference is smaller at lower duty cycles and increases along with it.
2. When running in reverse, the current consumption is approximately 1.5 that of what it draws when running in the clockwise.
I am an amateur in this domain, and most of my work has been heavily dependent on chatGPT and Claude. For this issue, this is the reply I got from Claude Fable at Max Capacity...and I have got no Clue How to proceed forward. Any sort of guidance will be extremely helpful.
Claude Fable Reply
I am listing all the current findings below for reference.
FR - Motor 1 on TIM 1
BR - Motor 2 on TIM 8
This is the exact hall Reading of both the motors when hand spun and reading the hall states.
This is clock wise
FR 3 FR 1 FR 5 FR 4 FR 6 FR 2 FR 3 FR 1 FR 5 FR 4 FR 6 FR 2 FR 3 FR 1 FR 5 FR 4 FR 6 FR 2 FR 3 FR 1 FR 5 FR 4 FR 6 FR 2
BR 3 BR 1 BR 5 BR 4 BR 6 BR 2 BR 3 BR 1 BR 5 BR 4 BR 6 BR 2 BR 3 BR 1 BR 5 BR 4 BR 6 BR 2 BR 3 BR 1 BR 5 BR 4 BR 6 This is counter clockwise i,e reverse
FR 6 FR 4 FR 5 FR 1 FR 3 FR 2 FR 6 FR 4 FR 5 FR 1 FR 3 FR 2 FR 6 FR 4 FR 5 FR 1 FR 3 FR 2 FR 6 FR 4 FR 5 FR 1 FR 3
BR 2 BR 6 BR 4 BR 5 BR 1 BR 3 BR 2 BR 6 BR 4 BR 5 BR 1 BR 3 BR 2 BR 6 BR 4 BR 5 BR 1 BR 3 BR 2 BR 6 BR 4 BR 5 BR 1
This is the live comparison of both the motors
at 20% forward
FR 17 rpm (134 edges) BR 19 rpm (144 edges)
FR 63 rpm (480 edges) BR 66 rpm (504 edges)
FR 63 rpm (476 edges) BR 67 rpm (505 edges)
FR 62 rpm (471 edges) BR 67 rpm (509 edges)
FR 61 rpm (464 edges) BR 66 rpm (501 edges)
FR 58 rpm (444 edges) BR 66 rpm (497 edges)
FR 57 rpm (434 edges) BR 65 rpm (495 edges)
FR 57 rpm (434 edges) BR 65 rpm (496 edges)
FR 58 rpm (437 edges) BR 65 rpm (490 edges)
FR 58 rpm (438 edges) BR 63 rpm (481 edges)
FR 57 rpm (432 edges) BR 62 rpm (472 edges)
FR 57 rpm (430 edges) BR 62 rpm (474 edges)
FR 56 rpm (427 edges) BR 63 rpm (475 edges)
FR 57 rpm (431 edges) BR 63 rpm (477 edges)
FR 57 rpm (430 edges) BR 63 rpm (478 edges)
at 30% forward
FR 1 rpm (12 edges) BR 2 rpm (18 edges)
FR 90 rpm (684 edges) BR 107 rpm (808 edges)
FR 93 rpm (703 edges) BR 112 rpm (844 edges)
FR 92 rpm (700 edges) BR 114 rpm (859 edges)
FR 94 rpm (710 edges) BR 115 rpm (870 edges)
FR 95 rpm (716 edges) BR 115 rpm (873 edges)
FR 94 rpm (713 edges) BR 116 rpm (875 edges)
FR 94 rpm (715 edges) BR 114 rpm (860 edges)
FR 95 rpm (719 edges) BR 113 rpm (856 edges)
FR 97 rpm (732 edges) BR 113 rpm (851 edges)
FR 96 rpm (728 edges) BR 112 rpm (844 edges)
FR 96 rpm (729 edges) BR 114 rpm (859 edges)
FR 97 rpm (733 edges) BR 115 rpm (868 edges)
FR 99 rpm (747 edges) BR 116 rpm (877 edges)
FR 99 rpm (747 edges) BR 116 rpm (881 edges)
at 40% forward
FR 14 rpm (110 edges) BR 17 rpm (128 edges)
FR 137 rpm (1039 edges) BR 163 rpm (1232 edges)
FR 141 rpm (1069 edges) BR 170 rpm (1285 edges)
FR 142 rpm (1074 edges) BR 172 rpm (1300 edges)
FR 142 rpm (1072 edges) BR 172 rpm (1301 edges)
FR 141 rpm (1066 edges) BR 173 rpm (1309 edges)
FR 142 rpm (1071 edges) BR 176 rpm (1329 edges)
FR 143 rpm (1077 edges) BR 168 rpm (1272 edges)
FR 145 rpm (1098 edges) BR 170 rpm (1283 edges)
FR 146 rpm (1105 edges) BR 173 rpm (1308 edges)
FR 146 rpm (1100 edges) BR 169 rpm (1278 edges)
The PCB Gets hot at this point. Drew in 4.5 A of Current
Now in the backward Direction.
at 20% duty cycle
some startup erros were noticed, one motor started without the other, after reset the the other motor started and the first one didnt, Both of them started together after the 2nd reset on the 3rd try. I am assuming there is a slight issue with the reverse startup or align function. Below are the rpm readings.
FR 30 rpm (227 edges) BR 30 rpm (227 edges)
FR 41 rpm (312 edges) BR 41 rpm (312 edges)
FR 41 rpm (313 edges) BR 41 rpm (310 edges)
FR 41 rpm (313 edges) BR 41 rpm (311 edges)
FR 41 rpm (313 edges) BR 41 rpm (311 edges)
FR 41 rpm (314 edges) BR 41 rpm (310 edges)
FR 41 rpm (315 edges) BR 41 rpm (311 edges)
FR 41 rpm (315 edges) BR 41 rpm (311 edges)
FR 41 rpm (315 edges) BR 41 rpm (311 edges)
FR 41 rpm (314 edges) BR 41 rpm (311 edges)
FR 41 rpm (315 edges) BR 41 rpm (310 edges)
FR 41 rpm (315 edges) BR 41 rpm (311 edges)
FR 41 rpm (315 edges) BR 41 rpm (310 edges)
FR 41 rpm (316 edges) BR 41 rpm (311 edges)
FR 41 rpm (315 edges) BR 41 rpm (312 edges)
at 30% duty cycle
FR 11 rpm (84 edges) BR 12 rpm (94 edges)
FR 57 rpm (434 edges) BR 55 rpm (421 edges)
FR 57 rpm (433 edges) BR 55 rpm (421 edges)
FR 57 rpm (434 edges) BR 55 rpm (421 edges)
FR 57 rpm (434 edges) BR 55 rpm (421 edges)
FR 57 rpm (435 edges) BR 55 rpm (421 edges)
FR 57 rpm (434 edges) BR 56 rpm (422 edges)
FR 57 rpm (434 edges) BR 55 rpm (420 edges)
FR 57 rpm (434 edges) BR 56 rpm (422 edges)
FR 57 rpm (436 edges) BR 56 rpm (422 edges)
FR 57 rpm (434 edges) BR 55 rpm (421 edges)
FR 57 rpm (435 edges) BR 56 rpm (423 edges)
FR 57 rpm (435 edges) BR 56 rpm (422 edges)
FR 57 rpm (435 edges) BR 56 rpm (422 edges)
at 40% duty cycle ( drew in 7.5 A of current) PCB Got hot
FR 18 rpm (141 edges) BR 18 rpm (138 edges)
FR 69 rpm (523 edges) BR 66 rpm (501 edges)
FR 69 rpm (525 edges) BR 66 rpm (502 edges)
FR 69 rpm (524 edges) BR 66 rpm (502 edges)
FR 69 rpm (525 edges) BR 66 rpm (501 edges)
FR 69 rpm (524 edges) BR 66 rpm (502 edges)
FR 69 rpm (524 edges) BR 66 rpm (502 edges)
FR 69 rpm (525 edges) BR 66 rpm (502 edges)
FR 69 rpm (527 edges) BR 66 rpm (502 edges)
FR 69 rpm (526 edges) BR 66 rpm (503 edges)
FR 69 rpm (525 edges) BR 66 rpm (503 edges)
FR 69 rpm (526 edges) BR 66 rpm (503 edges)
FR 69 rpm (525 edges) BR 66 rpm (503 edges)
There is a drastic difference in the current drawn for Reverse direction compared to the forward direction but the speed of the Reverse direction is very low compared to the other direction.
