On 04/23/2019 11:21 AM, Joe Hildreth wrote:
Jon,

I make boards that use the parallel port as a communications
channel for motion control.
These use the IEEE-1284 (EPP) mode for faster communication.
How do you test if a card works properly in EPP mode?  This would be good 
information to add to the list for those using your hardware.


All I am concerned with is if it works with my boards. But, in the process, I learned more than I ever WANTED to know about EPP. EPP is a horrible "standard", because it really doesn't seem to be a standard. There is the IEEE-1284 designation, but I've never seen the standards document, probably because I can't afford it. The best thing I ever found was the datasheet from an old ISA-bus multi-IO chip. Also, there is a Microsoft document that generally lays out how it is supposed to work. But, chip makers don't follow any of that. The Microsoft doc shows timing diagrams with no numbered specs on timing. But, at least, the data bus is shown as stable before the strobes are asserted. Well, some chips assert the strobes FIRST, then the data FOLLOWS. Not even at the same time, but the strobes come 50 ns FIRST! Crazy!

There was a very old PCI board that failed to hold the CPU in a wait state, so the strobe would come on and then a bunch of bytes would be sent rapidly on the data bus. No WAY to fix that one in software.

Anyway, one of the areas of confusion is how the data bus direction is handled. One way is the driver program commands all direction changes by setting/clearing a bit in the control register. Another way is the use of INB and OUTB CPU instructions allows the board to turn the bus around as needed, automatically. Some boards require the first way, some require the second, and some will handle either. So, I had to put in a command line switch on the hal_ppmc driver to allow the user to select which mode the driver used. This allowed just about any EPP board to work.

As for testing, I have a set of public diagnostic programs on my web site for my boards, and they do communications reliability testing by sending random data to the board and then reading it back.

If I had ONLY KNOWN how big a muddle the EPP was, I likely would have done something different.

Jon



_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to