Please feel free to make add / contribute to the code. If the referenced module is standard, then the driver should not be too difficult, just send 8 bytes for the digits and 1 extra for the LEDs. The buttons can be labeled as GPIO_ext inputs. I can create the driver module also, but I don't have that specific board laying around. The verilog can be indeed imported.
In the meanwhile I have been busy updating the stepgen. Yesterday finally found the bug which was frustrating the test. The designed stepgen is an S-curve profile for each cycle. Means within each cycle is a acceleration and possibly a deceleration phase. The latter phase was never activated. As I found finally out, the apply time of the second phase was written over by the new data of the next cycle.
Does it work now? Unfortunately, still not as smooth as I wanted. Things to do before I commit:
- restarting the board must ensure standstill. In some very specific circumstances (Linuxcnc crashes) it needs a power cycle before restarting Linuxcnc.
- there is still some minor following error which should theoretically not there.
Update:
The uncommanded motions have been resolved by setting the apply_time on reset to MAX_INT and stop the motion. Now it is safe to restart LinuxCNC in any case. The following error has been boiled down to a difference in the actual period of LinuxCNC (and any possible jitter around it) and the number of clock cycles of the FPGA. Om average the FPGA is a little faster then the computer, leading to compensation happen all the time. Now the timing of the stepgen is determined by the clock-cycles of the FPGA. Going to test tomorrow and push these changes.