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