On 11/20/2017 11:36 AM, John Morris wrote: > > On 11/20/2017 04:09 AM, Chris Albertson wrote: >> I just found this other project. It is a g-code interpreter that >> runs on RPi3 boards and other ARMs like that. >> >> What is interesting is that it is written in 100% python and they >> get very good real time step generation using the standard non-real >> time kernel. Yes python step generation and standard Linux >> >> How? >> >> The method is so simple I'm mad at myself for not thinking of it. >> They use an ARM DMA channel to copy bits to GPIO. If you set up >> bits in RAM correctly the DMA copies them using hardware with zero >> software overhead, the bits are clocked with the system crystal >> clock. Nearly zero jitter. The method is portable across any ARM A >> type. >> >> DMA seem an obvious solution. I think the idea could be adapted to >> MK. >> >> This appears to be new, code put in git hub 2017 >> https://github.com/Nikolay-Kha/PyCNC > > Clever indeed. It would be neat to see a HAL comp using that scheme.
This is a classic technique used to generate high precision pulse trains. In the old (pre-DMA) days we'd also use a serial ports to output pulses with accurate timings. Particularly the fancy ports with a small FIFO made it a lot easier to get good results than raw bit-twiddling with the CPU. :) If anyone wants to write a HAL module for this it would be a welcome addition. It could give the RPi reasonable stepgen performance. -- Charles Steinkuehler [email protected] -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/machinekit. For more options, visit https://groups.google.com/d/optout.
