Not sure where to post this I hope "Hardware" is correct
First, I have read Garth's RS232 primer until I am red in the face so please don't ask me to go read it - I can nearly recite it off by heart
I am using both/either Rockwell 65C51 and WDS 65C61 - both do the same. I am using interrupt driven input (Garth's round robin buffers) but not interrupt driven interrupt driven output - instead I am using a simple delay loop on output while each byte is sent.
Here is my issue: If my input buffer fills and I turn on RTS with a $09 in the 6551s command register then my terminal program on the PC does indeed stop sending data until enough bytes in the input buffer are consumed and $01 is stored in the command register turning RTS off. All well and good EXCEPT,
while RTS is asserted the 6551 will not transmit data. Is this correct? It doesn't seem right to me. The Rockwell datasheet
Attachment:
rock51.JPG [ 18.88 KiB | Viewed 1558 times ]
actually says that the transmitter is turned off while bits 2 and 3 are zero - although since no other datasheet says the same - here is WDC's datasheet. I have always assumed it is a typo in Rockwells sheet.
Attachment:
wdc51.JPG [ 30.4 KiB | Viewed 1558 times ]
Surely, if the transmitter is disabled while RTS is asserted then the '51 can only ever be half duplex.