> On 20 Nov 2017, at 20:07, Charles Steinkuehler <[email protected]> 
> wrote:
> 
>> 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.

So is there no need for an Realtime kernel? How can one be sure that the HAL 
realtime thread is finished on time?

-- 
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