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

Reply via email to