Any comments?
HELLO MR RAJ,
I AM JAGADEESH FROM PUNE, WE ARE MANUFACTURING BLDC MOTORS(MINIATURE MOTOR), CAN U SEND ME
YOUR REQUIREMENT OR SPEC ON JVHEGDE AT G MAIL DOT COM
I am going to copy parts of e-mails I received and I sent, all about the startup.
Subject: About rotor position detection
Hello,
I tried to understand yout algorithm to detect the start position of the rotor. But its not easy.
It would be very nice, if you can call some sentences about the prinziple and some sentences to describe the algorithm, so that I can easier read the program code.
With best regard
My answer (with a few modifications):
It’s not easy to explain.
I tried to use the inductance measurement that is widely talked. You can see the links on that page and on http://bldc.wikidot.com/p-esc-motor.
I didn’t made all the theoretical calculus because this is not a Thèse. This is a hobby and I am alone in this project.
I am detecting the point where there is more inductance and the point where there is less inductance.
To study this you can see the program startposition. The numbers you see on the figure correspond to voltages you get (see the ADC) at the 6 different situations.
The program begins with the RESET Handler (RESET:). Than it initialize several systems and begins an infinite loop (Loop1:).
TEST1 is the basis:
rcall Read_ADC_Str1
sts ADCPos_Ini_I+1, temp2
delay n
rcall Read_ADC_Str4
sts ADCPos_Ini_I+4, temp2
delay n
rcall Read_ADC_Str2
sts ADCPos_Ini_I+2, temp2
delay n
rcall Read_ADC_Str5
sts ADCPos_Ini_I+5, temp2
delay n
rcall Read_ADC_Str3
sts ADCPos_Ini_I+3, temp2
delay n
rcall Read_ADC_Str6
sts ADCPos_Ini_I+6, temp2
delay n
sts is used to keep the values in SRAM.
I have a lot of work to do and not enough time. This Wiki site was created to get a community working on this project.
Alone I have no time to big explanations. Neither the disposition at least for now. Sorry.
Use the forum, maybe someone helps.
Regards
Fernando
The software (startpos.asm) is tuned for the hardware I use now so you must tune the software for your hardware. There is at least two important variables: how much to wait for the ADC reading (after the beginning of the pulse) and the voltage level you get at the ADC (with this hardware less than 5V and high enough to obtain good sensitivity).
So if you use a different hardware you can not just copy the program. How can I tune for my hardware without expensive equipment? With the Visual Basic program (startpos.exe) that shows what is happening inside the ESC.
1. I measure inductance changes with the ADC (voltages)
2. I have to saturate the motor with the current pulses to obtain a unique position for the 360 electric degrees. Otherwise I get the same value for the measures 1 and 4, 2 and 5, and 3 and 6. Try higher voltages if needed.
Note: Measure 1 is A+B- and measure 4 is B+A-, they are obtained at the C terminal and with opposite voltages between A and B. Why this sequence? To keep the rotor stopped with opposite magnetic fields. After the pulse, how much time I am waiting for the ADC reading? Aprox. 270 micro seconds (27*10 us).
3. I get the response curves of the motor and I plot an Excel graph. See the Excel file "ADC Values" at http://bldc.wikidot.com/downloads.
If the curves are OK we can use this motor/ESC couple.









