On Thu, 11 Jul 2013, propcoder wrote: > Date: Thu, 11 Jul 2013 07:06:15 +0300 > From: propcoder <marius.alks...@gmail.com> > Reply-To: "Enhanced Machine Controller (EMC)" > <emc-users@lists.sourceforge.net> > To: emc-users@lists.sourceforge.net > Subject: Re: [Emc-users] Custom firmware for MESA and BLDC motors > > I am not sure I understand this correctly, but maybe this is possible: > > substract_encoder_offset --> mod_encoder_count --> take_only_needed_MSB > --> customized_table_lookup with custom pre-calculated encoder offsets > for 120 and 240 degrees --> scale_multiply_sines --> 3_PWMGENS > > I mean use pre-calculated sine table for particular encoder scale, > possibly shorter by 2, 4, 8, etc. times of encoder counts (rougher) > which would be smooth enough.
This is probably possible (have the driver fill the sine table with encoder counts or some fraction) but in any case after you have 2 to 6 sets of these per motor systems its a lot of FPGA real estate. Which is why at the required update rates (lets say 20 KHz minimum) its going to be less hardware to use a soft processor in the FPGA so the multipliers and lookup table and 0,120,140 offsets and mod operations are all done with shared hardware (a processor can be looked at as really just a fancy hardware muliplexing device) > > If made open-source, maybe these firmware files could be compiled by the > users theirself.. > > New ideas: > Idea #1: > use rough sine table in FPGA for fast speed and software for slow speed. > Or just give software a possibility to send it's own values, but if it > doesn't do that - use hardware's on transition to new table value. > > Idea #2 (at least): > make phase commutation in HW. I mean when sine crosses zero (on hall > signal slope), just commutate different phases and leave values the same. > > > On 2013.07.10 16:56, Peter C. Wallace wrote: >> Even if just commuation is done in a FPGA its probably a win do use a soft >> processor since you need to do mod_encoder_count --> scale multiply --> >> table_lookup with 0,120,240 deg offsets --> scale multiply sines --> >> 3_PWMGENS >> for each channel... > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > Peter Wallace Mesa Electronics (\__/) (='.'=) This is Bunny. Copy and paste bunny into your (")_(") signature to help him gain world domination. ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users