I've talked to David about Profibus. (Was that a year ago David?)
One of the things I didn't know back then is that Linux allways lets
the tx buffer drain completely, and then refills it to the top. This
means that if the TX buffer empty interrupt isn't serviced within one
character time (The transmitter shift register is shifting out one last
character when the FIFO is empty...), there is a gap. Those gaps may
be interpreted as an "end of packet" indication. That is unacceptable.
Linux often turns off interrrupts for "too long". Especially when
there are IDE disks near the machine....
Ted, I suspect that -=* generating *=- the 33 bit-times of idle time
is much more important than measuring it. You have those 33 bit times
to turn off your transmitter buffer. Better not do that before
transmission has really stopped. Better not do that more than 33 bit
times after the last bit was transmitted. That would mean that two
transmitters would be active at the same time, which is "not good".
So there is a 33bit time window where we should get the "half duplex"
controller to turn the transmit driver off, preferably somewhere
in the middle.
Roger.
-- ** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 ** *-- BitWizard writes Linux device drivers for any device you may have! --* "I didn't say it was your fault. I said I was going to blame it on you."- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/