Ich habe mal eine Frage. Bin mir irgendwie nicht mehr ganz sicher.
Ich nutze das UART Modul mit dem SC16IS750 der über I2C am Arduino angeschlossen wird. Nun funktionieren alle Komponenten auf dem Modul mit 3.3V (ein Spannungswandler ist drauf). Am Vin wird 5V vom Arduino angeschlossen, die Adresseinstellung erfolgt auch mit 3.3V und GND.
Jetzt wird ja TX/RX und SDA/SCL angeschlossen. TX/RX funktionieren ja mit 5V, da vom Arduino.
Wenn ich jetzt die Widerstände an den SDA/SCL Leitungen hinzufügen will, dann müssen diese auch mit 5V als Pullup verbunden werden und nicht mit 3.3V oder? Der IC verträgt bis zu 5.5V an allen Eingängen, ausser der Stromversorgung sofern er eingeschaltet ist. Und die SDA/SCL Leitungen müssten ja auch zwischen 0V und 5V sein, da vom (5V) Arduino.
Hier das Modul mit SC16IS750: SparkFun I2C/SPI-to-UART Breakout - SC16IS750 - BOB-09981 - SparkFun Electronics
Hier das Datenblatt zum SC16IS750: https://www.nxp.com/docs/en/data-sheet/SC16IS740_750_760.pdf
2.1 Allgemeine Merkmale
Einzelner Vollduplex-UART
Wahlweise I2C-Bus oder SPI-Schnittstelle
3,3 V oder 2,5 V Betrieb
Industrieller Temperaturbereich: 40 C bis +95 C
64 Byte FIFO (Sender und Empfänger)
Vollständig kompatibel mit dem Industriestandard 16C450 und gleichwertig
Baudraten bis zu 5 Mbit/s im 16-Takt-Modus
Automatische Hardware-Flusskontrolle mit RTS/CTS
Automatische Software-Flusskontrolle mit programmierbaren Xon/Xoff-Zeichen
Einfache oder doppelte Xon/Xoff-Zeichen
Automatische RS-485-Unterstützung (automatische Erkennung der Slave-Adresse)
1] 5.5 V steady state voltage tolerance on inputs and outputs is valid only when the supply voltage is present.
4.6 V steady state voltage tolerance on inputs and outputs when no supply voltage is present.
OK
Aber besser nicht befeuern wen kein VCC Vorhanden oder achten damit die IO Pins 4,6 V nicht überschreiten
Ja das ist laut Datenblatt, habe ich im ersten Post ja auch so geschrieben.
Aber wegen des I2C Pullup Widerstandes, dieser dann auch an 5V vom Arduino? Wenn ich den Pullup auf 3.3V vom Arduino lege, dann hat SDA/SCL einen falschen Wertebereich, oder nicht?
Die TTLlevel Schnittstelle wie TX ubd RX ist nicht das gleiche wie RS232. Das auf keiner Hardware. Es braucht einen Interfacebaustein der die erforderliche Spannungspegel bereitstellt bzw verkraftet und das Signal invertiert.
Es wird zwischen Arduino Uno und Mega über RX/TX Daten ausgetauscht. Sollte soweit funktionieren. Dieses Modul ist schon etwas älter. Ich hatte es schon einmal im Einsatz, aber ohne die Pullups. Das hat manchmal Werte empfangen, die ich gar nicht gesendet habe. Nach einem Reset per Knopfdruck lief es ohne Probleme. Nun möchte ich versuchen, ob der gefehlte Pullup vielleicht diesen Fehler verursacht hat. Könnte aber auch sein, dass der originale Arduino Uno und ein Klon nicht ganz so gut zusammen funktioniert haben. Mit diesem IC ist es möglich, den Arduino trotz angeschlossenem UART Port zu programmieren und muss nicht immer die TX/RX Leitungen abhängen. Eine schöne Sache, wenn man ohne I2C arbeitet!