La spécification RS232 nécessite une tension de signal comprise entre -3 et -30V pour un '1' logique, et une tension de signal comprise entre + 3V et + 30V pour un 0 logique, l'impédance d'entrée est d'environ 3k et l'impédance de sortie doit être environ 300 ohms.
Si vous voulez implémenter une interface entièrement compatible, alors oui, vous aurez besoin de quelque chose comme le MAX232 - ou une alternative, comme le MAX3221 qui vient dans un tout petit paquet TSSOP.
Alternativement, vous pouvez utiliser l'une des lignes de liaison du DTE (PC ou similaire) pour fournir la tension négative et utiliser un simple changeur de niveau à transistor pour gérer l'inversion du signal (du MCU) et le décalage de niveau. Cela nécessite cependant que l'ETTD soit configuré de telle sorte que ses lignes de prise de contact soient dans un état approprié.
Une autre option est de profiter du fait que la plupart des équipements de nos jours implémentent RS232 en utilisant quelque chose comme un appareil MAX232. Bien qu'ils soient entièrement conformes à la spécification, ils étendent également les choses de sorte que les niveaux d'entrée sont fondamentalement de +2,8 à +30 pour un `` 0 '' logique, de +1,4 à -30V pour un zéro logique (de la mémoire) - en d'autres termes, les récepteurs incluent en fait les niveaux de signal TTL. Ainsi, vous pouvez simplement inverser le signal sur les broches UART et le transmettre directement à l'appareil DTE. Cette technique est utilisée sur de nombreux appareils, y compris de nombreux GPS portables. Je ne dis pas que vous êtes 100% compatible, mais vous constaterez que cela fonctionne le plus souvent.
Vous devez toujours inverser les signaux UART (à moins que vous ne frappiez vous-même les broches), deux onduleurs devraient être plus petits que le circuit associé MAX232 plus, mais probablement pas de beaucoup.