I'm sure you are going to have lots of fun with this. I suspect you might be over simplifying it too.
It's not really that important that you can generate 1 Mhz stepping frequencies using the hardware timer on the micro-processor. Nowadays that's probably a first or second year college lab assignment -- rather trivial really. I'd be more concerned about dealing with synchronizing steps between motors or a spindle. For example. Say you have a spindle turning 100 RPM. That's 1.6666666666666666... revolutions per second (RPS). You want to cut a thread pitch that matches the lead screw pitch so the lead screw has to turn the same RPM as the spindle or also 1.66666666... RPS. Assuming you are using a stepper drive with 8 MicroSteps/step onto a 200 step per rev motor. That's 1600 steps per revolution. So your step frequency is 2,666.666666... Hz. (1600 steps per revolution x RPS) Nowhere near that 1Mhz top end. Now if your counter circuit has a 2MHz input frequency it's pretty easy. Divide by 750 to get that frequency. Simple so far. Right? Now your spindle drops to 99 RPM which is 1.65 RPS so let's make the stepper turn 1.65 RPS which is a step rate of 2640 Hz. Now all you have to do is program your counter to divide by 757.575757575757... Oh wait a sec. It's probably an integer divider. So you will be out by 0.57575757575 Hz. Not a big deal I guess. Only about 0.08%. Or maybe it is. I wouldn't accept it. Now use that same approach trying to move three motors to move a tool on a curve through 3D space and since each motor will run various speeds through this path you will find all sorts of rounding and truncating errors. And I haven't even touched on accelerating/deceerating from a stopped position and maintaining synchronization. John Dammeyer > -----Original Message----- > From: Nicklas Karlsson [mailto:[email protected]] > Sent: April-04-16 12:22 PM > To: [email protected] > Subject: [Emc-users] Stepper generator > > > I am currently implementing a stepper generator on micro controller which > may output square waves with clock frequency accuracy with use of built in > timer peripheral. It may generate square wave probably up to at least in the > MHz range and be extended downwards as far as needed by some > adjustment in software. It seems to work great and it should only be > finnished off. I currently use relatively expensive micro controller but cheap > available for around $1 in large quantity should also work just as fine since it > have the same peripheral I used. > > It no problem to output a sequence of square pulses or with a certain > frequency. Linuxcnc seems to output step velocity and read back > accumulated number of steps generated. > > What puzzle me is period may vary. As is now I start to use values as soon as > they are received via Ethernet. I have used other networks like CAN before > there everything is synchronized with "broad casted" with a high priority > sync message. Do anybody have a clue how synchronization should be done > for mesa Hostmot cards via Ethernet? Or more generally in Linuxcnc? > > > Nicklas Karlsson > > ---------------------------------------------------------------------------- -- > _______________________________________________ > Emc-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-users ------------------------------------------------------------------------------ _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
