Hello, all,
A really strange problem has just been reported in the
hal_ppmc.c driver.
Let me set the stage a bit, first. A few users run multiple
Universal Stepper Controllers or
Universal PWM Controllers on one parallel port. The boards
have a "daisy-chain" option where
the 2nd board can pass the handshaking signal back through
the first. All other signals are
just bussed across. One of the features is when the board
assigned as "master" latches its
encoder counts, it also signals the "slave" to do the same,
using the parallel port pin 10.
I rarely test this, but have tested it on every major
revision of the FPGA configuration.
Well, a guy in Canada has a pair of boards connected this
way, and the slave board would not
update the encoder counts. I immediately suspected the
daisy-chain cable, but he checked it
with a logic analyzer, and the pulses were getting across.
I was at a loss, and started suspecting
a software issue. So, he tried LinuxCNC 2.7.7, and it
worked correctly!
So, he now reports that 2.7.7 works, 2.7.8 works, but 2.7.9
does NOT work. 2.7.9 does require
the EPP direction to be explicitly commanded by setting a
register bit on the parport control register,
which is the way the older version of hal_ppmc.c worked.
The 2.7.9 version, by default, allows the
EPP logic on the port to flip the direction around based on
the INB or OUTB instruction. This works on SOME PCI parport
cards, and does NOT work on others, hence I added the loadrt
command line option epp_dir=<0,1> to select the mode.
Anyway, now after all that description, I need to track down
what has changed. Since the EPP communication generally
either works fine or doesn't work at all depending on the
way you select this turn-around of the port, I am having a
bit of a problem believing that change caused the issue.
Can somebody give me some instructions so I can find exactly
what changes were made between
the 2.7.8 release and the 2.7.9 release? The git history
REALLY doesn't show any other changes.
There's a FSF license comment that was changed, then there
was my change to the low-level port
direction control, and then before that was a commit in 2014
having to do with uint32.
I'll try to get some more info from the user to see what
else might be different, like what RT system, whether any of
these installs were set up with 64-bit architecture, etc.
Is there any possibility there
has been a change to compiler version or compiler options
between when 2.7.8 was biult and 2.7.9?
(Yes, I'm picking at straws, here!)
Thanks much for any comments,
Jon
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers