Forum: Mikrocontroller und Digitale Elektronik ATMEGA32U4, zwei Stromquellen, RX Pin


von Ben K. (bkaiser)


Angehängte Dateien:

Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Ben K. (bkaiser)


Angehängte Dateien:

Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Ben K. (bkaiser)


Lesenswert?

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