User`s manual
User’s Manual 85
B.4.4.1 RS-232
RS-232 serial communication on header J5 on both Prototyping Boards is supported by an
RS-232 transceiver installed at U4. This transceiver provides the voltage output, slew rate,
and input voltage immunity required to meet the RS-232 serial communication protocol.
Basically, the chip translates the Rabbit 3000’s signals to RS-232 signal levels. Note that
the polarity is reversed in an RS-232 circuit so that a +5 V output becomes approximately
-10 V and 0 V is output as +10 V. The RS-232 transceiver also provides the proper line
loading for reliable communication.
A customer-supplied RS-232 transceiver may be installed at U5 on the RCM3400 Proto-
typing Board, and a 2 × 5 header from the bag of parts in the RCM3400 Development Kit
may be installed at J6 to access Serial Ports E and F, which are by default configured for
RS-485 and IrDA support on the RCM3400 Prototyping Board. Be sure to configure the
0 jumpers as explained in Section B.5 to be able to access Serial Ports E and F on
header J6.
RS-232 can be used effectively at the RCM3400 module’s maximum baud rate for distances
of up to 15 m.
RS-232 flow control on an RS-232 port is initiated in software using the serXflowcon-
trolOn
function call from RS232.LIB, where X is the serial port (C or D). The locations
of the flow control lines are specified using a set of five macros.
SERX_RTS_PORT—Data register for the parallel port that the RTS line is on (e.g., PCDR).
SERA_RTS_SHADOW—Shadow register for the RTS line's parallel port (e.g., PCDRShadow).
SERA_RTS_BIT—The bit number for the RTS line.
SERA_CTS_PORT—Data register for the parallel port that the CTS line is on (e.g., PCDRShadow).
SERA_CTS_BIT—The bit number for the CTS line.
Standard 3-wire RS-232 communication using Serial Ports C and D is illustrated in the
following sample code.
#define CINBUFSIZE 15
#define COUTBUFSIZE 15
#define DINBUFSIZE 15
#define DOUTBUFSIZE 15
#ifndef _232BAUD
#define _232BAUD 115200
#endif
main(){
serCopen(_232BAUD);
serDopen(_232BAUD);
serCwrFlush();
serCrdFlush();
serDwrFlush();
serDrdFlush();
}