TXS0108E schafft SPI Signal nicht

#6693943
Lesenswert?

Hallo!

Ich versuche ein SPI signal und ein UART Signal von reinem Raspberry Pi 
3B über ein TXS0108E an ein Arduino Mega zu senden.

Zum testen versuche ich auf einen Breadboard und einem TXS0108E Breakout 
die Schaltung zu testen. Ich hab dafür die SPI Ausgänge vom Raspberry 
direkt an den TXS0108E gehängt und zum testen auf der Seite des Arduino 
nichts anderes angehängt außer einer Loop, die das MOSI direkt an MISO 
verbindet.

Anschließend hab ich mit einem Oszi die Signalpegel geprüft und 
festgestellt, das der TXS0108 diese nicht korrekt wiedergibt.

Grundsätzlich soll der Raspberry Pi und der Arduino Mega für UART 
kommunizieren und die SPI Schnittstelle mit einem zusätzlichen Reset-Pin 
möchte ich nur zum späteren flashen des Arduino verwenden.

Da ich das erste mal mit einem Pegelwandler arbeite und mit SPI/UART, 
versuche ich zu verstehen warum das Signal so falsch dargestellt wird. 
Laut meinen Recherchen sollte der TXS eigentlich für SPI geeignet sein 
(speziell bei meinem Testsignal von 9600Hz).

Ist es evtl. besser wenn ich einen Unidirektionalen Pegelwandler 
verwende? Gibts hier Empfehlungen? Beispielsweise SN74LV1T04 da mit 
beiden Spannungen verwendbar? Gibts vl. auch einen in einem DIP gehäuse?

Danke für eure Hilfe!
#6693950
Lesenswert?

Also ich vermute da ein Problem bei der Messung. Was hast du genau wie 
angeschlossen? Das sieht so aus als würden Treiber gegeneinander 
treiben.

Das Signal geht über A4 rein, kommt an B4 raus. Dann in B3 rein und aus 
A3 wieder raus. Dann darf A3 nicht vom Raspberry getrieben werden.

Und generell, diese Bausteinserie verwende ich oft und hatte noch nie 
Probleme.
Gast #6693954
Lesenswert?

Thomas M. schrieb:
> Zum Testen versuche ich auf eine_m_ Breadboard und einem TXS0108E Breakout
> die Schaltung zu testen.

Bei Breadboard und Arduino bekomme ich immer Würgereiz.

Den TXS0108E auf Chinaboard nutze ich am 5V-Arduino sowohl um SD-Karten 
(SPI) zuverlässig anzusteuern als auch am I2C, bislang ohne jegliche 
Probleme.

Das habe ich aber nicht auf Kinderbrettchen mit dubiosen Kabeln 
zusammengesteckt, sondern vernünftig auf Lochraster gelötet.
#6693972
Lesenswert?

Im Anhang hab ich aktuell die Verkabelung.

Die Pins links A3 und A4 kommen direkt vom RPI Pin 21 und 19 (MOSI und 
MISO). An diesem hängt sonst nichts. VCCa kommt direkt von PIN 1 (3,3) 
und wird auf OE weitergeleitet. VCCb und GND kommt vom Netzteil. (RPI 
und Arduino werden vom gleichen Labornetzteil betrieben).

Wenn ich aber die Loop ohne den TXS mache, kommen die Daten korrekt an 
bzw. sind die Signale in Ordnung
Angehängte Dateien:
#6694257
Lesenswert?

Thomas M. schrieb:
> Ist es evtl. besser wenn ich einen Unidirektionalen Pegelwandler
> verwende?

Aber sicher. Denn dein IC ist einer mit automatischer 
Richtungsumschaltung! Diese sind SEHR mit Vorsicht zu genießen, denn die 
machen nur allzuoft Probleme!

> Gibts hier Empfehlungen? Beispielsweise SN74LV1T04 da mit
> beiden Spannungen verwendbar? Gibts vl. auch einen in einem DIP gehäuse?

Für eine einfache 3,3->5V Wandlung reicht praktisch ein IC der HCT 
Familie, z.B. 74HCT244. Für die Gegenrichtung 5V -> 3,3V kann man einen 
74HC4050 nehmen.
#6694348
Lesenswert?

Thomas M. schrieb:
> Im Anhang hab ich aktuell die Verkabelung.

Kann es ein, dass GND gar nicht verdrahtet ist? Außerdem ist eine 
Steckbrettverdrahtung keine gute Idee bei so einem schnellen und 
giftigen IC!

"9.3.3 Output Load Considerations
TI recommends careful PCB layout practices with short PCB trace lengths 
to avoid excessive capacitive loading and to ensure that proper one-shot 
riggering takes place. PCB signal trace-lengths should be kept short 
enough
such that the round trip delay of any reflection is less than the 
one-shot duration. This improves signal integrity by ensuring that any 
reflection sees a low impedance at the driver."

Wenn gleich deine Leitungslängen keine 30ns Laufzeit erreichen, so ist 
die Verkabelung alles andere als HF-tauglich. Das klingelt 
wahrscheinlich so sehr, daß der IC mehrfache Signalflanken sieht und 
dementsprechend oft schaltet.
#6694999
Lesenswert?

Falk B. schrieb:
> Kann es ein, dass GND gar nicht verdrahtet ist? Außerdem ist eine
> Steckbrettverdrahtung keine gute Idee bei so einem schnellen und
> giftigen IC!

GND ist angeschlossen (Grüner draht - dieser geht direkt ans Netzteil 
zurück. Die GND auf dem Breadboard ist eine durch MOSFET IRLZ34N 
gesteuerte GND Leitung, daher verwende ich eine direkte Leitung hier)

Falk B. schrieb:
> Wenn gleich deine Leitungslängen keine 30ns Laufzeit erreichen, so ist
> die Verkabelung alles andere als HF-tauglich. Das klingelt
> wahrscheinlich so sehr, daß der IC mehrfache Signalflanken sieht und
> dementsprechend oft schaltet.

Ich werde versuchen einen Unidirektionalen zu verwenden und schauen wie 
die Ergebnisse sind. Später soll das natürlich eine Platine werden aber 
zum testen und probieren sind halt diese Breadboard einfacher :).

Danke für eure Hilfe!
#6695527
Lesenswert?

Wäre es besser wenn ich die 5V Leitung Schalte?

Hintergrund: Ich möchte mit dem RPI den Arduino Mega Ein/Aus schalten 
können inkl. seiner Peripheriegeräte (2x LED Strips, 2x Piezo 
Knocksensoren, 1x Ultraschallsensor, 1x Linienlaser (Hängt nicht direkt 
am Arduino aber soll auch mit geschalten werden). Sprich, wenn der RPI 
runterfährt soll der Arduino mit den Peripheriegeräten keinen Strom 
bekommen. Es soll einfach der Standbystrom reduziert wenn der RPI nicht 
läuft. Wenn der RPI hochfärt wird ein GPIO auf H gesetzt das den MOSFET 
aktiviert und wenn er runterfährt, wird der GPIO auf L gesetzt.
Gast #6696156
Lesenswert?

Thomas M. schrieb:
> Wäre es besser wenn ich die 5V Leitung Schalte?

Nur so macht man das. Dabei ist zu beachten, dass am ausgeschalteten IC 
keine Daten mit High-Pegel anliegen, sonst steht auch dadurch Ärger ins 
Haus.

Falk B. schrieb:
> Dazu braucht man hier einen P-Kanal MOSFET.
Anhang, hier so aufgebaut und funktioniert. Eingeschaltet wird per 
Taster direkt in der Batterieleitung. Aus wird über den µC angefordert, 
damit der eine evtl. noch offene Ausgabe zuende bringt, bevor er sich 
abklemmt.

Daneben nochmal die Simpelgrundschaltung.

> Aber löse erstmal die anderen Probleme.
Ich bin sicher, dass die sich mit einem ordentlichen Aufbau lösen 
lassen.
Angehängte Dateien:
#6696403
Lesenswert?

Thomas M. schrieb:
> Anschließend hab ich mit einem Oszi die Signalpegel geprüft und
> festgestellt, das der TXS0108 diese nicht korrekt wiedergibt.

Solche IC wie TXS0108 sollte man nur dann verwenden, wenn beidseitige 
Übertragung mit automatischer Richtungsänderung wirklich unbedingt 
notwendig ist. Für einseitige Übertragung paßt gewöhnliche Logik besser, 
sie arbeitet viel sauberer.
Es gibt viele Varianten. Will man "richtige" Pegelwandler, kann man 
SN74LVC8T245 nehmen: beide Seiten dürfen mit 1,65 bis 5,5 Volt in allen 
Varianten arbeiten.
Will man einfacher machen, so kann man für 2,5 - 3 - 3,3 Volt -> 5 Volt 
HCT oder VHCT benutzen, umgekehrt passen VHC und LVC gut. Diese 
IC-Serien sind groß, man kann Pegeländerung zusammen mit anderen 
Funktionen mischen, z.B. mit 74VHCT138 oder mit 74LVC74 oder mit 
74VHCT595 usw.
#6696412
Lesenswert?

Manfred schrieb:
> Nur so macht man das. Dabei ist zu beachten...

Wenn alles nur dazu dient, ATmega ein- und auszuschalten, gibt es auch 
andere Möglichkeiten wie mehrere Sleep Modi. Dann keine externe MOSFETs 
notwendig.
Auch gibt es IC Spannungsregler, die Shutdown haben. Auch Buck DC/DC 
Converter, z.B. leicht zu finden sind TS3552 und AOZ3015. Auch dann wird 
MOSFET nicht notwendog.
Gast #6696443
Lesenswert?

Maxim B. schrieb:
> Solche IC wie TXS0108 sollte man nur dann verwenden, wenn beidseitige
> Übertragung mit automatischer Richtungsänderung wirklich unbedingt
> notwendig ist. Für einseitige Übertragung paßt gewöhnliche Logik besser,
> sie arbeitet viel sauberer.

Ich kenne diese Bedenken, aber die Praxis zeigt, dass der TXS0108E 
funktioniert. In gewöhnlicher Logik brauche ich zwei ICs, Boards mit dem 
TXS0108E bekomme ich über Ali 10 Stück für knapp 7 Euro.

Man muß es halt ordentlich aufbauen, Falk B.:
Beitrag "Re: TXS0108E schafft SPI Signal nicht"
Gast #6954213
Lesenswert?

Der Hersteller sagt: Die TXB010x-Geräte sind nicht für den Gebrauch 
bestimmtin Open-Drain-Anwendungen. Für Anwendungen wie I 2 C, bei denen 
Verbindungen und Schnittstellen erforderlich sindmit einem 
Open-Drain-Treiber bietet TI Übersetzer vom Typ TXS (dh "S" für 
Switch-Typ) an.
Hört auf mit dem Gefummel nehmt einen ohne IC. Habe jetzt auch 
aufgegeben.
Angehängte Dateien:

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