Ja das leidige Thema :-D Ich bin auf der Suche nach einem Bidirektionalem Levelshifter - eigentlich für I2C. Aktuell setze ich einen PCA9306DCTR ein (Schaltung als Bild) - jedoch habe ich da so meine "Schwierigkeiten". Wenn das Signal nicht wirklich I2C ist, dann funktioniert dieser auch nicht. Ich habe hier einen SHT11 Sensor, welcher daran nicht funktioniert, weil dort die Startsequenz sowie die ACK Sequenz vom I2C Standard abweicht. Die einfachste Möglichkeit wäre halt dort einen "allgemeinen" Levelshifter einzusetzen. Hat da jemand etwas, in einem kleinen Package, anzubieten? Liebe Grüße René
Für was brauchst du einen Levelshifter von 3.3 auf 5 V für den SHT11? Eingangsspannungsbereich 2.4 - 5.5 V
Chris K. schrieb: > Für was brauchst du einen Levelshifter von 3.3 auf 5 V für den > SHT11? > Eingangsspannungsbereich 2.4 - 5.5 V Ja jain - also der SHT11 würde nicht alleine an dem Strang hängen. Diese Platine ist eigentlich für andere I2C Devices gedacht. Vorrangig für PIR Melder. Jedoch möchte ich diesen Port auch für andere Devices nutzbar machen, eben auch SHT11 - das beides nicht gleichzeitig funktionieren würde, da sich durch das "fehlerhafte" I2C des SHT1x wahrscheinlich der Bus mit den anderen Devices kollidiert ist mir bewusst - in diesem Szenario wäre dann der SHT der einzigste Teilnehmer am Bus. Gedanke wäre auch gewesen den SHT einfach einen Abgriff vor dem PCA auf der 3V Leitung zu geben - da greift dann aber wieder der PCA ein und gibt bei einer fehlerhaft erkannten Startseq ein NACK auf die Leitung. Deswegen die Frage nach einem Levelshifter welcher nicht aktiv in die Leitung eingreift.
Dann mach lieber 2 ähm ein Pseudo i2C und ein richtiger i2C bus ansonsten wäre der SHT11 ein richtiges i2C device geworden. Mit zusätzlichen Pegelwandler wird das nicht besser oder nimm nen neueren SHT sensor die scheinen richtig i2C geworden zu sein https://sensirion.com/media/documents/33FD6951/63E1087C/Datasheet_SHT4x_1.pdf
Rene K. schrieb: > Bidirektionalem Levelshifter Ich nutze TXS0108E, sowohl am I2C als auch am SPI. Mal Datenblätter ansehen, die gibt es auch mit weniger als 8 Kanälen.
Oh, den SHT4 schaue ich mir natürlich auch mal an! Danke dafür und die Idee mit dem zweiten Pseudo I2C Bus ist natürlich auch clever. Aber da brauche ich ja wieder 2GPIO dafür. @Manfred Oh danke! Für zwei Kanäle gäbe es da den TXS0102DCTR - das wäre im Grunde genau das richtige dafür! Dann kann ich die Ausgänge ja auch für komplett andere Dinge nutzen statt nur für I2C.
Rene K. schrieb: > @Manfred > Oh danke! Für zwei Kanäle gäbe es da den TXS0102DCTR - das wäre im > Grunde genau das richtige dafür! Dann kann ich die Ausgänge ja auch für > komplett andere Dinge nutzen statt nur für I2C. Für mich ist das ein Baustein, der transparent Pegel umsetzt und den der Signalinhalt nichts angeht. Mir ist etwas unklar, warum das der PCA9306 nicht auch tun soll. Wenn es nur um Signale in eine Richtung geht, schaue mal 74HCT125 und 74LVC125 an, deren Eingangspegel von der Betriebsspannung abweichend sein dürfen.
Vielleicht brauchst dur nur andere Pullups Werte "11.2 How to size pull-up resistor value" im Datenblatt mal anschauen.
Chris K. schrieb: > Vielleicht brauchst dur nur andere Pullups Werte > "11.2 How to size pull-up resistor value" im Datenblatt mal anschauen. o.O Was mich daran gerde arg wundert... nach dieser Tabelle, bräuchte ich auf der 3V Leitung überhaupt keine Pull-Ups?!
Rene K. schrieb: > Die einfachste Möglichkeit wäre halt dort einen "allgemeinen" > Levelshifter einzusetzen. > > Hat da jemand etwas, in einem kleinen Package, anzubieten? Der "allgemeine" bidirektionale Levelshifter für I2C besteht aus einem N-Kanal MOSFET. Du brauchst einen davon für SCL und einen für SDA. Schon SOT23 wäre nicht sooh riesig, aber wer weiß, was du als "kleines" Package bezeichnest. Mit ein bisschen Suchen finden sich sicher auch zwei passende FETs in einem gemeinsamen Gehäuse.
Rene K. schrieb: > nach dieser Tabelle, bräuchte ich auf der 3V Leitung überhaupt keine > Pull-Ups? Um ein Signal von 5 V nach 3.3 V zu wandeln, brauchst du in der Tat keine Pullups. Aber wenn du auf der 3.3-V-Seite mehr als ein I²C-Gerät hast, dann brauchen dieser Teil des Bus doch welche.
den SN74CB3T3306 gibts in VSSOP - klein genug ?
Die AN10441 kennst Du? Da wird ein I2C-Pegelwandler beschrieben. Für einfache Aufgaben ausreichend: https://cdn-shop.adafruit.com/datasheets/AN10441.pdf
Manfred schrieb: > Für mich ist das ein Baustein, der transparent Pegel umsetzt und den der > Signalinhalt nichts angeht. Mir ist etwas unklar, warum das der PCA9306 > nicht auch tun soll. So, ich habe dann mal einen "richtiges" I2C Device genommen (LM75) - das funktioniert an der Schaltung tadellos. Ich werde aber dennoch die Pull-Ups bei der nächsten Version etwas kleiner machen, weil die Steigung der Flanken ja doch miserabel ist. EDIT: da war das doch glatt der falsche IC fotografiert. U6 ist der richtige, U2 ist das EEPROM.
:
Bearbeitet durch User
Rene K. schrieb: > Ich werde aber dennoch die > Pull-Ups bei der nächsten Version etwas kleiner machen, weil die > Steigung der Flanken ja doch miserabel ist. Die Flankensteilheit ist bei I2C nicht das Kriterium. Entscheidend ist, dass SDA rechtzeitig stabil ist, bevor SCL den L-Pegel verlässt (t_SU) und noch ausreichend lange stabil bleibt, nachdem SCL wieder den L-Pegel erreicht hat (t_HD). Fig.31 http://i2c2p.twibright.com/spec/i2c.pdf
Wolfgang schrieb: > Rene K. schrieb: >> Ich werde aber dennoch die >> Pull-Ups bei der nächsten Version etwas kleiner machen, weil die >> Steigung der Flanken ja doch miserabel ist. > > Die Flankensteilheit ist bei I2C nicht das Kriterium. Entscheidend ist, > dass SDA rechtzeitig stabil ist, bevor SCL den L-Pegel verlässt (t_SU) > und noch ausreichend lange stabil bleibt, nachdem SCL wieder den L-Pegel > erreicht hat (t_HD). > Fig.31 http://i2c2p.twibright.com/spec/i2c.pdf Daraus folgt, dass bei hohen Bus-Frequenzen die Pullups niedriger sein sollen und bei niedrigen Bus-Frequenzen die Höhe der Pullups keine so grosse Rolle spielt. Und daraus folgt, dass man mit niedrigeren Pullups immer gut fährt. Ich nehme für die Pullups bei 5 Volt 1k8 und bei 3.3 Volt 1k2.
Mit den 10kΩ die die Chinesen verbauen, bin ich nie richtig glücklich gewesen. Die haben dabei wohl berücksichtigt, dass man vielleicht solcher Maker-Platinen parallel schaltet (ist ja ein Bus). Ich verwende 2,2 kΩ bei 3,3V. 5 Volt habe ich in Kombination mit I²C schon lange nicht mehr benutzt.
Rene K. schrieb: > funktioniert an der Schaltung tadellos. Mit 200k (R11) vor VREF2 bezweifele ich das.
Manfred schrieb: > Rene K. schrieb: >> funktioniert an der Schaltung tadellos. > > Mit 200k (R11) vor VREF2 bezweifele ich das. Doch funktioniert, der R11 ist sogar ein Muss wenn vref1 und vref2 unterschiedlich sind - nur wenn der PCA als Speed-Translator eingesetzt wird bei gleicher Spannung von Sda1/scl1 und sda2/scl2 wird dieser natürlich weggelassen. Siehe Datenblatt unter Punkt 11.1 sowie ebenso den Schaltungsvorschlag darüber:
1 | ..For the bidirectional clamping configuration (higher voltage to lower voltage or lower |
2 | voltage to higher voltage), the EN input must be connected to VREF2 and both pins |
3 | pulled to HIGH side Vpu(D) through a pull-up resistor (typically 200 kΩ). This allows |
4 | VREF2 to regulate the EN input.. |
Wie hast du ihn denn verbaut? Und wieso kommst du darauf das es so nicht funktionieren sollte?!?
Rene K. schrieb: > Manfred schrieb: >> Rene K. schrieb: >>> funktioniert an der Schaltung tadellos. >> >> Mit 200k (R11) vor VREF2 bezweifele ich das. > > Doch funktioniert, der R11 ist sogar ein Muss wenn vref1 und vref2 > unterschiedlich sind Wie die Schaltung mit R11 funktioniert, wird hier erklärt: https://www.ti.com/lit/pdf/slva675 https://training.ti.com/tlm-lsf-bias (Video)
:
Bearbeitet durch User
Beitrag #7355764 wurde vom Autor gelöscht.
der ist klein und brauch nicht viel Aussenbeschaltung
Beitrag #7355779 wurde von einem Moderator gelöscht.
BilliBanni schrieb im Beitrag #7355779:
> Sowas funktioniert auch.
Ich habe ja eine Farbsehschwäche, aber ich bin 100% sicher, dass das
Foto einen 1kΩ Widerstand zeigt, nicht wie darunter steht: 10kΩ
Rene K. schrieb: > Ich bin auf der Suche nach einem Bidirektionalem Levelshifter - Mit einem FET und 3 Widerständen pro Signal geht das (s. Bildle). Diese Schaltung ist bei mir mehrfach im Zusammenhang mit Raspi und ext. 5V-Logik im einsatz. Was über die Logikleitungen für Signale gehen ist da völlig egal. Bei mir funktioniert das auch i2c oder SPI bestens.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.