Forum: Mikrocontroller und Digitale Elektronik Level Shifter IC


von enan (Gast)


Lesenswert?

Moin.
Habe ein ASIC und einen Controller (SAK-XC2365A) auf meinem Board. Das 
ASIC läuft mit 5V und der Controller mit 3.3V. Beide sind über den 
gemultiplexten Adress-Daten-BUS miteinander verbunden. Um die Spannungen 
umzusetzen habe ich die Bausteine SN74LVCH8T245 verwendet. Das 
funktioniert so weit auch ganz gut.

Der DIR Pin der Shifter ist dabei mit dem RD Signal vom Controller zum 
ASIC verbunden (µC ist Master).

Der OE Pin der Shifter ist dabei mit dem CS Signal vom Controller zum 
ASIC verbunden.

Der Controller kann auch über RS232 programmiert werden, indem er an AD0 
bis AD3 ein bestimmtes Bitmuster angelegt bekommt. Daraus ergibt sich 
nun auch mein Problem, denn im Datenblatt der Shifter steht, dass 
Pull-Widerstände mit denen ich das Bitmuster erzeugen möchte in 
Kombination mit der integrierten BUS-Hold circuitry nicht empfohlen 
werden. Allerdings gilt das nur für unused oder undriven inputs. Wenn 
ein pull dran hängt ist der input aber doch nicht unused oder undriven. 
Ich verstehe den Satz im Datenblatt der Shifter nicht so recht.

Würde mich freuen wenn mir jemand das genauer erklären könnte, der damit 
schon Erfahrungen gesammelt hat.
Wären 126er Bausteine der 74er Reihe eine eventuelle Lösung?
Hat noch jemand eine andere Idee was für Shifter man verwenden könnte?

Vielen Dank schon mal für eure Mühe
Gruß Sebastian

von ... (Gast)


Lesenswert?

enan schrieb:
> Hat noch jemand eine andere Idee was für Shifter man verwenden könnte?

PCA9306DP oder ST2378, beide bei CSD-Electronics erhältlich.

von enan (Gast)


Lesenswert?

Danke für die Antwort.

Der PCA9306DP wird leider nicht funktionieren. Er arbeitet ohne 
direction pin und da ich einen Spike auf den Leitungen habe, wird dieser 
als Signal erkannt und dadurch vom Controller als falsches Bitmuster 
eingelesen. Hatte die TXB0108 schon im Einsatz die auch ohne DIR Pin 
arbeiten. Dadurch habe ich erst herausgefunden dass da hässliche Spikes 
drauf sind.

Der ST2378 ist leider auch raus, da er nur 13Mbps schafft. Der 
Controller arbeitet allerdings mit 80.

von put (Gast)


Lesenswert?

Im Datenblatt steht doch nur, daß die Eingänge intern auf definierten 
Logikpegel gezogen werden und man sich dadurch eine externe Beschaltung 
sparen kann. Das verbietet aber nicht externe Widerstände.

von enan (Gast)


Lesenswert?

Das dachte ich mir so auch. Aber warum steht dann extra nochmal dabei:

"use of pullup or pulldown resistors with the bus-hold circuitry is not 
recommended"

von Matthias (Gast)


Lesenswert?

Evtl. wäre es eine Lösung, wenn Du über einen zusätzlichen Level-Shifter
(damit nicht viele versch. ICs eingesetzt werden müssen), oder 
alternativ einen Bus-Treiber einsetzt. Der Bus-Treiber braucht ja nur 
einen OE-Pin.

An die Eingänge des Bustreibers wird das Bitmuster für die 
RS232-Programmierung angelegt. Der Bustreiber wird an die Leitungen zw.
uC und dem Level-Shifter angeschlossen und durch Logic so beschaltet,
dass der OE-Pin nur aktiviert wird, wenn:

- Der Levelshifter nicht auf die Datenrichtung zum uC geschaltet ist
- und der uC keine Daten ausgeben möchte (WR-Pin)
- und evtl. ein Jumper (falls erforderlich) für den RS232 Mode gesetzt 
ist

Dann sind alle Pegel sauber definiert.

von enan (Gast)


Lesenswert?

Hi Matthias,
dein Vorschlag gefällt mir. Das habe ich so ähnlich auch alles schon 
realisiert. Allerdings brauche ich das um das Bitmuster fürs Debuggen 
anzulegen.

Außerdem schreibt die Spezifikation vor, dass ein Programmieren via 
RS232 möglich sein soll ohne irgendwelche Jumper drauf zu löten oder zu 
stecken.

Wenn man in den Programmier- oder Debug-Modus kommen möchte, ist der 
Reset des Controllers ohnehin aktiv und deshalb der BUS hochohmig. WR 
brauche ich also nicht mit einzubeziehen.

Hatte nun noch die Idee dem SN74LVCH8T245 die Versorgung weg zu schalten 
mit einem Analog Schalter. Laut Datenblatt sollten dann alle 
Datenleitungen auf beiden Spannungsseiten des Shifters hochohmig sein.
Der Analog Schalter könnte dann wiederum durch eine Kombination von CS, 
RD und WR besaftet werden.

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
Noch kein Account? Hier anmelden.