Cross-posting from the 8052.com forum http://www.8052.com/forum/index.phtml A while back (http://www.8052.com/forum/read.phtml?id=23083), I asked about how to get a PC to read the 9th bit in Mode 2/3: Multiprocessor Serial bus format. I need to be able to detect the state of the 9th bit for each received byte. Mahmood Elnasser suggested the cport library: http://www2.arnes.si/~sopecrni/downloads/CPort263.zip I've downloaded this, and it doesn't look like it'll do the job :-( (It looks like it'll have the same problem as AsyncPro) The OnRxChar Event could return any number of characters, but the LastErrors Method - as its name suggests - only tells me what the last error was; ie, I can't tell which of the received bytes had the 9th bit set (Parity error). Any help would be greatly appreciated. I'm currently looking around at direct IO drivers for Windows (yes, I know it'd be a doddle in MS-DOS).
Look at http://www.wcscnet.com. They deal with the 9'th bit.
Thanks Jon Their COMM-DRV.VxD page does indeed mention "With one call the first byte is sent with 9 bits while the others are transmitted normally." http://www.wcscnet.com/CdrvVBro.htm But this is not quite what I want: I need all bytes transmitted with 9 bits, and b9 is set for "special" bytes and clear for "normal" bytes: From the bus Master, b9 set indicates an address byte (at the start of a message); From a Slave, b9 set marks the last byte of a response. Have you actually used any of their products? What was your opinion?
I had to support some multiport UARTS several years ago (before the 9 bit support was added). I used the LIB product. It worked flawlessly, and was well documented. With a little work, I am thinking you might be able to translate the 9'th bit as address to a 9'th bit as end of packet indicator. Definitely worth a Email to ask them.
Yes, they say it has a "StoreAll" mode in which data & status are queued together It certainly looks worth a try!