ESP - Arduino -Level Converter

Gast #4461807
Lesenswert?

Hallo,

ich weiß das hier schon immer mal wieder über die Level-Konvertierung 
zwischen ESP8266 und Arduino diskutiert wurde.

Ich habe in meiner Bastelkiste zwei unterschiedliche I2C-LevelConverte 
gefunden. Der Erste arbeitet mit einem Mosfet und einem Spannungsteiler
(ähnlich diesem http://letsmakerobots.com/node/39234)

und der Zweite hat in etwa folgenden Aufbau. 
https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide

Meine Frage ist jetzt, warum bekomme ich mit dem ersten Konverter das 
Serial-Interface ans laufen und mit dem Zweiten nicht??

Ich hoffe ihr könnt mich aufklären.

Habt Dank!
Peter
Gast #4461865
Lesenswert?

Nein!
Deine I2C Wandler sind Bidirektional.
UART Wandler Unidirektional.
I2C Ports arbeiten Open Drain, Uart Ports PushPull.

Wenn die Pullups genügend klein sind, mag das sogar funktionieren.
Darin werden sich deine LevelShifter vermutlich unterscheiden.
Gast #4462049
Lesenswert?

Also aus eigener Erfahrung kann ich sagen dass der ESP an den UART 
Eingängen auch 5V verträgt. Aber das garantiert dir der Hersteller 
nicht, ist also die Bastellösung für Schmerzfreie.

Der 1-BJT Minimalpegelwandler für I2C müsste ja rein theoretisch auch 
funktionieren, man lässt einfach die Pull-Ups weg.
Gast #4462131
Lesenswert?

Sascha schrieb:
> Also aus eigener Erfahrung kann ich sagen dass der ESP an den UART
> Eingängen auch 5V verträgt. Aber das garantiert dir der Hersteller
> nicht, ist also die Bastellösung für Schmerzfreie.

Wie wärs wenn du in Zukunft die Pfuschlösungen einfach für dich behälst? 
Wenn der Hersteller nicht sagt, dass die Ports 5V tolerant sind, dann 
ist die Wahrscheinlichkeit sehr klein, dass es doch so ist. Und kaputt 
ist nicht unbedingt "der ESP geht gar nicht mehr", sondern eher "er hält 
seine Spezifikationen nicht mehr ein". Wenn etwas kaputt gegangen ist, 
kann es gut sein, dass du es nicht bemerkt hast oder es erst nach 
längerer Zeit zu schäden kommt. Kaputte ICs zu debuggen macht jedenfalls 
Spaß, deswegen würde ich allgemein von so etwas abraten.

Sascha schrieb:
> man lässt einfach die Pull-Ups weg

I²C ohne Pullups? Wie soll das gehen?

Bei I²C, 5V <-> 3,3V und Avrs kann man übrigens einfach die Pullups an 
die 3,3V anschließen. Ein 5V Avr erkennt 3V als High.
Gast #4462383
Lesenswert?

Habe ich das jetzt richtig verstanden, das man einfach auf den 
I2C-Level-Converter ein paar Widerstände (Pull-Ups) auslötet und das 
Teil kann auch für die UART-Schnittstelle verwendet werden?

Und danke für eure Hilfe
Gruß Peter
Gast #4462519
Lesenswert?

DokuLeseVerweigerer schrieb:
> avr schrieb:
>> Im Gegensatz zu seiner Aussage steht das im Datenblatt!
> Ja?
> Wo?

Wo wohl? Sicher nicht unter Pinout und sicher auch nicht unter Memory 
Programming. Wenn du das richtige Kapitel gefuden hast, steht es gleich 
auf der ersten Seite.

DokuLeseVerweigerer schrieb:
> Bisher habe ich nur sowas gefunden:
> Vcc * 0,7 = 3,5V

Quelle? Ich habe mal in die Datenblätter vom Atmega168/PA/PB 
reingeschaut. Bei allen gilt mindestens:

VCC = 1.8V - 2.4V   0.7VCC
VCC = 2.4V - 5.5V   0.6VCC

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren