La especificación RS232 requiere un voltaje de señal de entre -3 y -30 V para un '1' lógico, y un voltaje de señal de entre + 3V y + 30V para un 0 lógico, la impedancia de entrada es de aproximadamente 3k y la impedancia de salida debe ser alrededor de 300 ohmios.
Si va a implementar una interfaz totalmente compatible, entonces sí, necesitará algo como el MAX232, o una alternativa, como el MAX3221 que viene en un paquete TSSOP bastante pequeño.
Alternativamente, puede utilizar una de las líneas de intercambio de manos del DTE (PC o similar) para suministrar el voltaje negativo y usar un simple cambiador de nivel de transistor para manejar la inversión de la señal (desde la MCU) y el cambio de nivel. Sin embargo, esto requiere que el DTE esté configurado de modo que sus líneas de intercambio se encuentren en un estado adecuado.
Otra opción es aprovechar el hecho de que la mayoría de los equipos en estos días implementan RS232 usando algo como un dispositivo MAX232. Si bien son totalmente compatibles con la especificación, también extienden las cosas de modo que los niveles de entrada son básicamente de +2.8 a +30 para un '0' lógico, de +1.4 a -30V para un cero lógico (desde la memoria); en otras palabras, los receptores En realidad incluyen niveles de señal TTL. Por lo tanto, solo puede invertir la señal en los pines UART y pasarla directamente al dispositivo DTE. Esta técnica se utiliza en bastantes dispositivos, incluidos muchos GPS de mano. No estoy diciendo que seas 100% compatible, pero encontrarás que esto funciona más a menudo que no.
Aún necesita invertir las señales UART (a menos que usted mismo esté golpeando los pines), dos inversores deben ser más pequeños que el MAX232 más los circuitos asociados, pero probablemente no mucho.