Hallo, ich sitze immer noch an einem Problem, dass mir schon tagelang Kopfzerbrechen bereitet. Kurz zur Info: Bin Anfänger und arbeite mich gerade ein. Mir ist es wichtig die Dinge zu verstehen und nicht nur einfach nachzubauen, deshalb nehme ich liebend gerne auch Details an. :-) Voraussetzungen: Ich baue gerade eine kleine Platine, die später Signale von Buttons, Encodern etc. verarbeitet und via USB zu einem PC schickt (Als Joystick HID Device). Es kommt hier auf die Größe der Platine an, je kleiner um so besser, da im späteren Anwendungsbereich wirklich wenig Platz ist. Ich benutze einen ATMEGA32U4 und zwei MCP23S17 als Pin-Erweiterungen. Zusätzlich dazu möchte ich noch eine optionale(!) Schnittstelle zu einem Nextion Display anbieten sowie zu WS2812b LEDs. Da dies mit der Spannungsversorgung über USB nicht funktioniert, muss hier eine extra Spannungsquelle vorliegen. Da sowohl das Display als auch die LEDs optional sind, möchte ich die Platine weiterhin mit der via USB gelieferten Spannung betreiben lassen können. Nutzt man kein Display und keine LEDs, ist dies ja möglich. Soweit so gut. Wenn ich nun aber das Display und die LEDs mit einer externen Spannungsquelle betreibe und die Platine nicht an den USB Port gesteckt ist oder der PC einfach aus ist, wird über den RX Pin der ATMEGA mit Spannung versorgt. Erstaunlicherweise ein bekanntes Problem, für das ich aber nirgendwo eine wirkliche Lösung finde. Meine Ideen: 1) Ein solid state relay nutzen, dass die Leitungen kappt, wenn am ATMEGA keine Spannung anliegt. Sicher die sauberste Lösung, aber kostet zu viel Platz und die Bauteile sind (im Verhältnis) zu teuer. 2) Ein Mosfet nutzen um die Leitungen zu kappen, wenn keine Spannung am ATMEGA anliegt. Hab da auch tolle dual mosfets in kleiner Bauform gefunden, die auch mit 5V funktionieren (soweit ich das richtig interpretiert habe: https://datasheet.lcsc.com/szlcsc/Diodes-Incorporated-2N7002DW-7-F_C83571.pdf) . Soweit ich das aber nun herausgefunden habe, funktioniert das mit Signalleitungen nicht. Vielleicht liege ich hier aber auch falsch. Ich habe zumindest nicht rausfinden können, wie sowas in dem Fall aufgebaut werden könnte. 3) Hab irgendwo eine Dirty Lösung gefunden, beider man je einen 1k Widerstand in Reihe an die TX und einen an die RX Leitung hängt. Das funktioniert auch, die PowerLED von meinem Arduino den ich gerade zum testen nutze geht nicht mehr an und auf der anderen Seite werden die Signale noch zum Display übertragen und es funktioniert. Aber: Am Anfang hat es in meinem Kopf noch Sinn gemacht, die Spannung, die von der RX Leitung des Displays kommt, sinkt so weit ab, dass sie zu niedrig für den ATMEGA ist um anzulaufen, jedoch noch hoch genug zur Übertragung der Daten ans Display. Wie gesagt, es funktioniert, es fühlt sich aber total dreckig an um es mal direkt zu sagen. Im Anhang ein kleines Bild dazu... Wie auch immer, was ist denn hier eine gangbare Lösung? Eine Spannungsquelle wäre sicherlich am schönsten, nimmt dann aber die Möglichkeit das Board auch einfach nur via USB zu betreiben, von den ganzen zusätzlichen Komponenten (Spannungswandler etc.) mal ganz abgesehen. Platz ist halt wirklich ein Thema. Irgendjemand eine Idee? Am liebsten wäre mir die Mosfet Lösung. Die bauteile sind sehr klein und die könnte ich auch noch unterbringen. Aber wie gesagt, nach meinen Recherchen wird das bei Datenleitungen nicht funktionieren, zumal ich auch noch unsicher bin, welcher Typ Mosfet da geeignet ist und wie der Aufbau ist. Lieben Gruß und schon mal danke für's bis hierhin durchlesen, Benjamin
:
Bearbeitet durch User
1 | 2,2kΩ |
2 | Tx o----|<|------+-----[====]----o 5V |
3 | | |
4 | +---------------o Rx |
Der Tx Ausgang kann das Signal auf Low herunter ziehen. Wenn die rechte Seite ohne Stromversorgung ist, kann er das Signal aber nicht auf High zwingen. Damit ist dein Problem gelöst.
Hallo, Stefanus F. schrieb: >
1 | > 2,2kΩ |
2 | > Tx o----|<|------+-----[====]----o 5V |
3 | > | |
4 | > +---------------o Rx |
5 | > |
> > Der Tx Ausgang kann das Signal auf Low herunter ziehen. Wenn die rechte > Seite ohne Stromversorgung ist, kann er das Signal aber nicht auf High > zwingen. Damit ist dein Problem gelöst. Ich muss gestehen, dass ich die Schaltung noch nicht ganz verstehe. Links an Tx (Ausgang) ist eine Diode in Sperrrichtung zu Tx? Die Rechte Seite ist der ATMega (also die 5V sowie sein RX Eingang? Wieso wird die Funktion der Diode denn aufgehoben, wenn rechts Strom anliegt? Ansonsten würde die Diode doch blockieren, oder? Handelt es sich um eine Z-Diode? Anfänger halt. :-) MfG, Benjamin
:
Bearbeitet durch User
Du hast das richtig gezeichnet. Die rechte Seite wird im Ruhezustand durch den Pull-Up Widerstand auf High gezogen. Wenn die linke Seite etwas sendet, zieht sie das Signal durch die Diode impulsweise runter auf Low. Wenn die Linke Seite Spannung hat, die rechte aber nicht, dann liegt die Diode in Sperr-Richtung (denn rechts ist 0 Volt) und trennt beide Seiten. > Handelt es sich um eine Z-Diode? Nein, eine ganz normale Silizium Diode: 1N4148 oder gerne auch eine kleine Shottky Diode.
Huhu, jetzt hat es Klick gemacht! Tausend Dank, auf diese Lösung wäre ich im Leben nicht gekommen, obwohl es so offensichtlich ist, wenn man es einmal gesehen hat. ? Benjamin
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.