From: holtdoa <rj...@gm...> - 2006-07-07 18:37:00
|
I'm not a linux guru by any means, but I've done serial programming on PC for a decade or so, maybe I can help. First thing is what is the address of the port you are dealing with. There was some mumbo jumbo back in the beginning where COM1 wasn't always 0x3f8, if no device with that address was found, the the first one found was considered COM1 to the OS (DOS/Early Windows). From a DOS/CMD prompt, you can run "debug" at the "-" prompt, type "d 0:400" you should see somethng like this "0000:0400 F8 03 F8 02 E8 03 E8 02". This shows the port table, first two bytes are the address fro COM1 (in this case 03f8 just like we would expect). All of this is probably not necessary, but will serve as a sanity check that we are taling to the correct port address. Type "q" at the "-" prompt to quit out of debug. Assumming we are dealing with a 8250/16450 or compatable UART at base address 0x3f8, the Modem control register will be at offset four or 0x3fc. Bit 0 of this register controls DTR, bit 1 controls RTS, for either a 1=ON (positive RS-232 level) and 0=OFF (negative RS-232 level). Note if you happen to be dealing with TTL levels instead of RS-232, the levels will be inverted, RS-232 Positive = TTL 0 Volts, RS-232 Negative = +5 volts (or whatever the Vcc is). So to set RTS and DTR high on COM1 we would need something like: "outp(0x3fc,0x03);" Keep in mind that over the years the use of the RTS signal has been perverted into the hardware flow control for received data. If the OS thinks this port is using RTS/CTS flow control, it may interfere with your control of the RTS signal. -- View this message in context: http://www.nabble.com/Homebrew-IR-receiver%3A-RTS-at--10v-tf1662983.html#a5222428 Sent from the LIRC forum at Nabble.com. |