On Tue, Apr 06, 2010 at 10:45:51AM +1200, Gavin Lambert wrote:
> 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

I have just discovered that there are now 'standard' linux ioctls to
work with rs485 lines : TIOCGRS485 & TIOCSRS485.

(see 
http://git.kernel.org/?p=linux/kernel/git/gerg/m68knommu.git;a=commitdiff;h=c26c56c0f40e200e61d1390629c806f6adaffbcc)

Of course, not all hardware drivers implement them.

And also, I do not know how to use them.

Philippe

-- 
Philippe De Muyter  phdm at macqel dot be  Tel +32 27029044
Macq Electronique SA  rue de l'Aeronef 2  B-1140 Bruxelles  Fax +32 27029077
_______________________________________________
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