Digi RCM4000 Network Card User Manual


 
104 RabbitCore RCM4000
B.4.4.1 RS-232
RS-232 serial communication on header J4 on both Prototyping Boards is supported by an
RS-232 transceiver installed at U3. 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 4000’s signals to RS-232 signal levels. Note that
the polarity is reversed in an RS-232 circuit so that a +3.3 V output becomes approxi-
mately -10 V and 0 V is output as +10 V. The RS-232 transceiver also provides the proper
line loading for reliable communication.
RS-232 can be used effectively at the RCM4000 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 // set size of circular buffers in bytes
#define COUTBUFSIZE 15
#define DINBUFSIZE 15
#define DOUTBUFSIZE 15
#define MYBAUD 115200 // set baud rate
#endif
main(){
serCopen(_MYBAUD); // open Serial Ports C and D
serDopen(_MYBAUD);
serCwrFlush(); // flush their input and transmit buffers
serCrdFlush();
serDwrFlush();
serDrdFlush();
serCclose(_MYBAUD); // close Serial Ports C and D
serDclose(_MYBAUD);
}