After a 3 year absence, I finally got around to building a drive based on the information presented by Mariss in the "5 Microstep drive CPLD tutorial" threads. The circuit is essentially the one presented at the end of that document. I added the JTAG programming port and the voltage regulators. The board is double sided, made by toner transfer, with .05" vias and 12 mil traces. The layout is very roughly based on the Geckodrive G251. As it turned out, this is not suitable for my toner transfer board because the unevenness and the lack of through hole plating made it impossible to clamp the fets down. I will try a different fet layout on the next iteration.
The verilog code is the one posted by Pminmo. I made changes to support 10 instead of 5 microsteps. I am currently testing it on a Keling kl23h276-30-8b nema 23, 280 oz-in, 4 amp stepper.
Driving it with 33v and 2 amps, I am able to reach 1800 rpm unloaded, which is the maximum limits of the demo version of Mach 3. I applied a very simple mechanical resonance damper to prevent the motor from stalling.
It is still work in progress. Because I don't have a ground plane, it is difficult to avoid parasitic inductances which resulted in periodic oscillations from the mosfets. I was able to stop them by using gate resistors, but seems to cause severe shoot through. I am experimenting with different solutions. I will probably need to redo the power section.