Konvertieren von RS-232 zu I2C?

Ich habe Hardware, die über 3-Draht-RS-232 kommuniziert, und ich möchte damit über I2C kommunizieren. Ein anderer Beitrag hier spricht über das Wrapping von I2C in Serie oder umgekehrt. Ich denke darüber nach, eine MCU zu verwenden, um sowohl RS-232 als auch I2C als meine Konvertierung ein- / auszugeben, und ich bin mir der Notwendigkeit bewusst, einen MAX232 oder etwas Ähnliches zwischen RS-232 und der MCU zu verwenden. Muss ich RS-232 zuerst in seriell wie UART und dann in I2C konvertieren, oder kann ich RS-232 direkt in eine MCU stecken, die diese Daten dann über I2C oder umgekehrt ausgibt? Oder muss die MCU und die RS-232-Kommunikation unbedingt auf seriell konvertiert werden, und wenn ja, brauche ich mehr als den MAX232-Chip?

Dafür gibt es bei Interesse fertige Lösungen
Warum willst du I2C verwenden?
Typische MCUs haben einen oder mehrere UARTs. Um also zu RS232 oder RS485 usw. zu gelangen, können Sie etwas nur mit dem MAXxxxxx-Chip zum Laufen bringen, der dies tut. I2C dient dazu, mit einem bestimmten Chip zu sprechen, der nur so spricht (oft ein Sensor). Es ist normalerweise eine triviale Aufgabe für eine MCU, die Daten hin und her zu schaufeln. Wenn es überhaupt keinen MCU-Firmware-Programmierer gibt, können Sie immer noch ein handelsübliches „i2c -> USB“-Brückengerät erhalten, was dazu führt, dass der Host-PC auf dem Laufenden bleibt. Ein Raspberry Pi könnte auch verwendet werden. IMO ist die MCU-Lösung jedoch vielseitiger, b / c bessere Steuerung des Timings in der Firmware
Nexperia stellt I2C-verbundene UARTs und DUARTs her, sie sollten tun, was Sie brauchen (fügen Sie auch einen Transceiver hinzu, um die richtigen Pegel zu erhalten).

Antworten (2)

Der MAX232 oder ähnliches ist ein Leitungstreiber/Empfänger, der zwischen RS-232-Signalpegeln und -polarität und Pegel und Polarität des seriellen MCU-UART-Anschlusses umwandelt.

USB wird an Ihrer Aufgabe nicht beteiligt sein.

Der MAX232 konvertiert also in UART für die MCU und das ist alles, was ich brauche?
@InBedded16, Re, "...und das ist alles, was ich brauche?" Aus den wenigen Informationen, die Sie gegeben haben, können Sie nicht sagen, was Sie brauchen.

RS232 ist bereits ein serielles UART-Protokoll. Sie müssen es nicht in USB oder irgendetwas umwandeln, bevor Sie einen RS232-Pegelübersetzer verwenden und ihn an MCU-UART-Pins anschließen.

Außerdem scheinen Sie I2C in UART konvertieren zu wollen, nicht UART in I2C. Es gibt I2C-Chips, die UART implementieren. Oder Sie können eine MCU anschließen, um zwischen diesen zu konvertieren, oder einfach eine ausreichend große MCU mit genügend Pins erwerben, um UART direkt zu verwenden.