Hallo zusammen,
ich würde mich (mal wieder) über Eure Hilfe freuen...
Erstens: Sorry, einen intelligenteren Tital habe ich nicht finden
können...
Zweitens: Ich habe zwar gesucht, aber habe ich ein passendes Thema
übersehen?
Ich bin gerade dabei, die 1001. brushed-DC-Motortreiber-Platine zu
entwerfen.
Zum größten Teil ist der Schaltplan fertig, doch es gibt eine Sache,
bei der ich gewaltig auf dem Schlauch stehe...
Gegeben sei ein mit 5V laufender Mikrocontroller (in meinem Fall konkret
ein PIC18F47K42).
Dieser muss mit einer externen Steuerung digitale und analoge Signale
austauschen.
Dabei soll meine Platine mit 5V und 3V3 Steuerungen zusammenarbeiten
können.
Somit ist bei 3V3 Steuerungen ein Pegelwandel nötig, bei 5V Steuerungen
nicht...
Die Pegelwandlung soll dabei automatisch funktionieren,
ohne dass auf meiner Platine ein Schalter umgelegt oder ein Jumper
gesteckt wird.
Denn das werde ich über kurz oder lang vergessen, ich kenne mich selbst
zu gut ;-)
Bei den digitalen Signalen funktioniert das bereits (74LVC2T45 und Co.
lassen grüßen)
Nur bei den analogen Signalen kommt mir meine Lösung etwas umständlich
und fehleranfällig vor.
Daher wäre meine Bitte, dass Ihr Euch meine Lösung mal zu Gemüte führt.
Sie beruht auf dem folgenden Gedankengang:
Schaut auch bitte in den Anhang, ich habe versucht, den Schaltplan
bestmöglich zu kommentieren...
- Mit einem Comparator mit open-Drain Ausgang vergleiche ich das
Spannungslevel der externen
Steuerung mit dem Spannungs-Level meiner Platine
- Ist das externe Level geringer, schaltet der Komparator durch und
verbindet das untere "Bein"
eines Spannunsgteilers mit Masse, sodass der Spannungsteiler
"funktioniert" und das Signal passend
skaliert.
- Arbeitet die externe Steuerung mit dem gleichen Level, schaltet der
open-drain Ausgang des Komparators
nicht durch. Der Spannungsteiler hat keine Funktion mehr, das Signal
wird nicht skaliert.
Es ist zwar ein zusätzlicher Widerstand im Signalweg, doch der sollte
nicht stören...
Wie gesagt, schaut bitte in den Anhang, da wird das alles klarer, hoffe
ich.
Habe ich grobe Schnitzer eingebaut oder besteht die Chance, dass das
Konstrukt funktionieren wird?
War ich total auf dem Schlauch gestanden, als ich das "entwickelt" habe?
Gibt es vielleicht eine einfachere Variante?
Wie gesagt, die manuelle Auswahl über Jumper oder Schalter, mit welchem
Pegel der Datenaustausch
stattfinden soll, will ich nur, wenn alle anderen Stricke reißen...
Vielen Dank für Eure Mühen schonmal im Voraus ;-)
Grüße
x12z34 / Tobias