Quote Originally Posted by menta View Post
"Since the serial transmission is done in hardware, it is not possible to set the levels to an inverted state to eliminate an RS-232 driver. Therefore a suitable driver should be used with HSEROUT. "
Like Joe said...listen very carefully...

SERIN/SERIN2/SEROUT/SEROUT2/DEBUG/DEBUGIN - software driven
You can set the modes, normal, inverted, whatever. Totally and completely driven by software. You can emulate the logical levels of standard RS232, but not the actual voltages present in standard RS232 (i.e. inverted)...or... You can emulate the logic levels and voltage levels of what is sometimes called TTL-RS232 (i.e. normal)...

HSERIN/HSERIN2/HSEROUT/HSEROUT2 - hardware driven
You can NOT the modes here, only the baud rates, bits per character, and a few other parameters. This is completely driven by the hardware inside the PIC. There is NO inversion anywhere inside the PIC, whether it be thru hardware or software. With HSERxxx commands, you can also emulate the logical levels of standard RS232, but again, not the voltage levels. BUT!!! The output from the PIC is (as described above) sometimes called TTL-RS232 (i.e. normal).

In short, HSERxxx - needs a MAX232 device if talking to an RS232 compliant device. May or may not need a MAX232 type device if talking to any other type device (i.e. directly to another PIC. What drives a Serial LCD? Anyone?).

SERxxx - may or may not need a MAX232 type device depending on the application.

So, take your project, figure out what it's outputting, take the device you're talking to, figure out what it wants, take your project again and change it to match...