Quoth Andrew Kohlsmith:
> > I would hate to try and do it from software with an interrupt.
> > Yuck.
> 
> It's not that bad. :-)  IRQ on transmit holding or shift register
> empty (ideally the latter). If you have only a THRE type interrupt

> then you have to set a timer for 1 word time (usually 9 bits) and 
> after that timer, disable the transmitter. Of course when you go 
> to send data again you have to make sure you turn on the 
> transmitter.

We've gone that route, for a master device (ie. other hardware will
start transmitting back on the half-duplex channel almost
immediately after the end of transmission) and had no end of trouble
with getting the interrupt processed in time to avoid corrupting the
reply.  And this was on a board that wasn't even running an OS, so
demands were relatively light.  Sure, it worked fine *most* of the
time, but that's not good enough. :)  (Of course, it also had a
pretty low-spec CPU, which didn't help.)

We eventually switched to a UART that had hardware control of that
line, and the problems went away.


_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to