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);

 

}

 

 

104

RabbitCore RCM4000

Page 110
Image 110
Digi RCM4000 user manual 4.1 RS-232