Hi Guys:
Heres a photo of my system running test program just uploaded. Ill explain the numbers a bit as well.
Notice the Driver version is 1.03, if yours isnt, your driver didnt load, an older one did.
Notice RPM is about 394.6RPM, 101 slots, slot time is about 1505uS , thats the time from slot to slot. With 100 slots , that woudl be
394.74 approx, so thats pretty good. ( for the math oriented.. the calc is ...)
1 slot time is .001505 , times 101 slots is .152005 seconds per 101 slots, and if we look to the reciprical, 1/.152005 is 6.5787 revs per second, times 60 is 394.74 RPM..

Note the index time ( time from one index to another is 152347.3us or .152347 seconds.. much liek the above calc from there..
Interrupt time is the time from int to int. Its about 21.8uS , ( .0000218 seconds) whic when you divide into 1 second is 45800hz ( my kernal speed at the moment..).
101 slots is how many slots it sees in the TIMING input from one INDEX input to the next..
Main PCI timer base is the speed of your PCI timer, on mine its about 3579545 counts per second. This timer value on a system is documented not to change and be very accurate, its why Im switching to this method. Your number may be similar or not, the program will take this into account.
Your cpu(s) shoudl show your cpu Throttling is disabled.
If TIMING input is disabled, then encoder #3 is used as the counter. If you try a G32 motion, the Q is a quality value, it will show 1.00 if the speed doesnt change after the thread starts. It lowers (?) or raises if it slows or speeds up. In the end this value will determine how much slower the motors move.
Slot based RPM is based on a 64 slot average time, whcih should be pretty stable, but if your fooling it with just a TIMING input set to the same pin as
your INDEX< then you will have to make sure the spindle rotates 64 times before this stabiizes. Threading lock RPM is the speed locked in at start of G32 mode to set the master reference speed.
Index based RPM is the RPM based on INDEX to INDEX input only so you can see if the slots are more accurate.
Last Index Time is simply the time in uS from one INDEX pulse to another..
Last SLOT is the non-averaged last slot time.
The Corr BAR is a visual display of how much the spindle has slowed or sped up since G32 started.
You can test all this by zeroing your Z axis, and simply entering G32Z0 , youll then be in G32 mode, and the Q and Corr bar
will activate. Entering a G0 in MDI will cancel G32 mode.
In the Scope:
I havent yet relabeled the Y axis to uS from ms, so ignore that, its all in uS..
Youll notice on mine that the high is 1517uS or .001517 seconds between pulses.. and low is .001494, so the range is only .000013 seconds or so, thats
very stable indeed.About 1 interrupt time. ( 23us or so..).
The variance from low to high on the scope should really never exceed 1 interrupt time in normal operation. If it does, somethign is varying, ( and thats what Im searchign for. )
Im using my normal INDEX from my lathe, and feeding in a set frequency to my TIMING input from my new PMDX-112 testing baord. ( I love this thing..

)
So the slots are simulated, but with a very stable frequency. This way I eliiminate outside causes of loss of timing.
Thats it. Have fun, post pictures, if they are screwed up, not to worry, I may need to change to a lager number handler. Your PCI time may exceed
32 bits. I didnt think it would, it woudl mean a PCI timer running at higher than 4,294,967,295 hz.. 4Ghz would be one high speed timer.

As you can see there a fairt amount of design here to show as much as I can get, I really want to find any loss of timing and where it is at. This is the first time Ive used the PCI timer, but as I say, its known to be very stable, so if we can get all this working, your feedrates and such will become more accurate as
I use this timer for other things, pulse counts, feedrate measurments, timign statistics in DriverTest..ect..
Just thought Id explain whats going on in allthis in case it helps in your playing.
Thx for the testing.
Art