Lebowski's motor controller IC, schematic & setup, new v2.A1

Lebowski said:
The plan is to add high torque startup or even high torque at standstill, SENSORLESS.

I did some measurement on the ME 602 scooter motor and found the winding
impedances change by + or - 15 % based on the rotor position, power needs
to be supplied to the lowest inductance (of the 3) to make the motor move.

This does work quite well for me, the lowest phase inductance of the 6 (polarity counts) will give you the rotor position +/-30 degree error, you then just need to energize 90 degree ahead in your chosen direction and repeat until your fast enough to pick up the BEMF...

See here for my result: http://endless-sphere.com/forums/viewtopic.php?f=30&t=36479&start=15#p534016
 
I've seen this thread... you use something like putting a fixed voltage pulse on the inductors
and measuring the rise of current. I find this too inaccurate and want to go in a different direction.
Pulsing and measuring current is too fidely for my taste, you need to time the ADC exactly etc etc...
 
Lebowski said:
I all of a sudden got very motivated to get the controller PCB done, cause in my mind I'm already working on the next holy grail of controller design for which I need a 2nd complete controller.

The plan is to add high torque startup or even high torque at standstill, SENSORLESS.
That's the spirit. :shock: :twisted: We love it! More, more, more... :D

Hey, seeing all that you've accomplished this should go like clockwork -you being in Switzerland & all... :lol:
 
Pretty impressive work, Lebowski! Great job.

(I've been away from here for a fair while and have only just caught up with this.......)

Jeremy
 
Jeremy Harris said:
Pretty impressive work, Lebowski! Great job.

(I've been away from here for a fair while and have only just caught up with this.......)

Jeremy


Greetings Mr Jeremy, long time no see.

I hope we will maybe see you a bit more often, I really miss the contributions you gave to this forum, it helped me a lot.
Are your house coming together?
 
We had a rainy weekend here with unpredictable weather, so lots of time to work on the PCB.

I got familiar with KiCad by following some only tutorials and got most of the schematic of the
controller drawn...
 
Lebowski said:
We had a rainy weekend here with unpredictable weather, so lots of time to work on the PCB.

I got familiar with KiCad by following some only tutorials and got most of the schematic of the
controller drawn...
Light speed, warp speed, a very good speed... 8)

Ratking said:
Jeremy Harris said:
Pretty impressive work, Lebowski! Great job.

(I've been away from here for a fair while and have only just caught up with this.......)

Jeremy


Greetings Mr Jeremy, long time no see.

I hope we will maybe see you a bit more often, I really miss the contributions you gave to this forum, it helped me a lot.
Are your house coming together?
Hi Jeremy Sir,

By now you're Knighted on ES, so time to come back from your adventures & rejoin the round table. We need your wisdom & advice, or, at least, have you post again soon! :D

How is your off-the-grid set-up working out? Any new ES related projects planned anytime soon? :idea:
 
Thanks for the kind words, I'll post something on the hassle of trying to build a house here later.

Jeremy
 
Jeremy Harris said:
Thanks for the kind words, I'll post something on the hassle of trying to build a house here later.

Jeremy


Omg! So good to see you my friend!!! Woot!!! When you left, it put a hole in this place that nobody else could fill. It's really a pleasure and privilege to have your participation here when you get the chance. We've been doing some awesome stuff here too. :)
 
Lebowski said:
We had a rainy weekend here with unpredictable weather, so lots of time to work on the PCB.

I got familiar with KiCad by following some only tutorials and got most of the schematic of the
controller drawn...
Hello.

Nice to know you prefer to do the task using KiCad :)

Is this controller OpenSource? if so, is there a link to the firmware?

You know, I started to work also on my controller, OpenSource, with name EBike Smart Controller: http://endless-sphere.com/forums/viewtopic.php?f=3&t=38337
 
He already posted in your own thread ;)

http://endless-sphere.com/forums/viewtopic.php?f=3&t=38337#p559556
 
CNCAddict said:
He already posted in your own thread ;)

http://endless-sphere.com/forums/viewtopic.php?f=3&t=38337#p559556
Ok, thank you, I got it -- this project is not OpenSource.
 
Lebowski said:
casainho said:
CNCAddict said:
He already posted in your own thread ;)

http://endless-sphere.com/forums/viewtopic.php?f=3&t=38337#p559556
Ok, thank you, I got it -- this project is not OpenSource.

My controller contains unique technology (not described in literature) which
I invented myself. It's not open source.
Sure. I wish you good luck with your project.

There are others as me that need OpenSource controllers, we are getting there like this shared project Open BLDC controller. Later we are also capable to go commercial, produce and sell a professional controller (even if it is OpenSource).
 
since I've been busy with KiCad (to make a PCB) I now got some decent schematics.
Note that all the snubber (the RC series across the power components) component values
are not final and among other things depend on board layout !

The code running on the 12F617 for the DCDC converter (an MPLAB X project):

View attachment dcdc_converter.X.zip

The 12F617 has a comparator with on one input a 0.6V reference source and the other input
is alternated between the 17V and 5V feedback signal. When the feedback signal is below
0.6V the 12F turns on the power transistor (via the ncp5181 driver) for 10 u-sec. After a pulse
a certain wait time (dead_time) is observed to prevent astronomical rise of inductor current
on startup. The 10 u-sec is timed by the CCP module for the 5V supply, the 17V uses TMR2
for timing and the pulse is switched off in the interrupt routine.
On startup the 12F waits around 0.5 sec to allow the capacitors around the gate driver to charge fully,
the first 10-usec pulse has to 'hit the money' so it needs a stable 17V from the zener diode pre-charge
before it can produce the first pulse. After startup has completed and the wait-time after each
pulse has been reduced to its minimum the 12F makes the 'power_ready' signal 'high' to turn
on the main controller IC.
 

Attachments

  • sine_controller.jpg
    sine_controller.jpg
    108.1 KB · Views: 1,668
  • sine_controller-output_stage_B.jpg
    sine_controller-output_stage_B.jpg
    67.6 KB · Views: 1,668
  • sine_controller-gate_driver_B.jpg
    sine_controller-gate_driver_B.jpg
    61.2 KB · Views: 1,668
  • sine_controller-brainbox.jpg
    sine_controller-brainbox.jpg
    135.7 KB · Views: 1,668
Got my controller working again! i replaced the driver chip, and it works like before!

now the "bad" news, i definitely need to add some snubbers!

this is the high side gate signal
h_a_gate1.jpg
h_a_gate.jpg
h_a_gate2.jpg

this is the phase a to gnd signal going to the motor
h_a_source.jpg
h_a_sourc1.jpg

and the low side gate signal. not sure what is going on here?
l_a_gate.jpg
 
The snubber are between the drain and source.
To chose snubber component values I follow the following cookbook:

- As you can see in your picturs, there's ringing on the drain/source voltage of the FET. Measure the frequency of the ringing.
- Experiment by placing different values of capacitors across the drain / source. Determine the capacitor value for which the
frequency of the ringing is about half to one-third of the original ringing frequecy. This gives you the capacitor value for
the snubber. For a 4115 I found 3.3 to 4.7 nF a good fit (depends on battery voltage, more voltage -> lower cap).
- calculate the impedance of the capacitor at the new (lower) ringing frequecy using X = 1 / (2 * pi * f_new_ring * C_snub)
- the snubber resistor should be taken as 1.5 times the capacitor impedance X.

Now the only thing to watch out for is the power dissipated in the snubber resistor. This is given by:

P_snub_r = f_pwm * C_snub * (V_bat)^2

First put snubbers between all drain/sources of the FET's (see also attached picture where the snubbers are the 4.7 nF and 6.8 Ohm components)

After this is done, look at the gate / source signals. Chose the gate resistors such that there's no significant overshoot which can
blow the gate oxide. Im my controller I didn't need gate resistors, the gate signals looked nice and clean after snubbing the drain/source's.
If the drain/sources are not snubbed the ringing will 'transfer' to the gate by means of the Cgd, this is what you're seeing.

sine_controller-output_stage_B.jpg
 
i have 10 ohm gate resistors in place.

i also have a 10k (or 20k) and a 15v (or 17v) zener diode beteween the gate and source of each fet.

i have ordered some 1nf 2.2nf and 4.7nf capacitors along with a few 100 low value 0.25w resistors to make a snubber.

Thanks for posting the calculations again. i have them written down somewhere, but this saves me a few hours of searching :D

Will post again when i have some progress.

can i damage something by only snubbing one phase first? i would think this is not a problem but i am not 100% sure
 
nieles said:
i have 10 ohm gate resistors in place.

i also have a 10k (or 20k) and a 15v (or 17v) zener diode beteween the gate and source of each fet.

i have ordered some 1nf 2.2nf and 4.7nf capacitors along with a few 100 low value 0.25w resistors to make a snubber.

Thanks for posting the calculations again. i have them written down somewhere, but this saves me a few hours of searching :D

Will post again when i have some progress.

can i damage something by only snubbing one phase first? i would think this is not a problem but i am not 100% sure

I snubbed one phase first too, I used the 'generate test signal' from the PWM menu when I chose the snubber values.
Just don't put any power through the output stage before it's snubbed. When you use the 'generate test signal' option
all 3 PWM channels move in sync, so no effective voltage is put accross the motor. I did not have my motor connected
when I chose the snubber values. Very important is to have a 0.47 uF high voltage cap on the battery supply. Put this cap
as close as possible to the power FETs but inbetween the FET's and the battery. The job of this cap is to shorten
the (to be snubbed) inductive loop.

Make sure that the snubber caps have the correct voltage rating ! (must be higher than the battery voltage)
 
i have 8 of these beteween V+ and gnd. close to the fets
http://www.ebay.nl/itm/470nF-100V-Philips-Vishay-Polyester-MKT-368-Lot-20-/120711822499?pt=UK_Sound_Vision_Other&hash=item1c1afc3ca3

so i should be okay there!

the capacitors i have for the snubbers are these:
http://www.ebay.nl/itm/20-Polyester-Poly-Film-Capacitors-1nF-100V-/120911918301?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item1c26e974dd#ht_1242wt_794
 
Niles would you not be able to reduce the ringing by reducing the voltage you are applying to the fet gates?
 
nieles said:
not 100% sure what you mean, but i am only using 12v supply for the gates, going lower will not fully turn the fets on.
Are you using 4115 fets?
Looks like a 9 volt supply would be OK. I think it was bigmoose who pointed out to me you want to be just above the miller plateau.
Post edited:
 

Attachments

  • Capture 4115 gate charge.JPG
    Capture 4115 gate charge.JPG
    40.9 KB · Views: 3,166
I use 17V for the gate drive. The nasty bit in the whole curve is the miller plateau, while
the FET is in there it's dissipating power (because it's already conducting and has
a large voltage across it). To get through the plateau quickly you need a lot of 'overvoltage'
above the plateau. So, 17V gives you 10 V overvoltage (10V above the 7V plateau) meaning
that the gate current will be 10V / whatever resistance your gate driver is (typically
5 to 7 Ohm for a NCP 5181).

My FET's are on in 0.2 usec.
 
Back
Top