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