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.

Reply via email to