Forum: Mikrocontroller und Digitale Elektronik mit raspberry pi einen externen 5V Enable PIN auf low ziehen


von Claus H. (dabreaka)


Lesenswert?

Hallo zusammen,
will mit meinem raspberry pi 3 bei meinem protoneer cnc stepper shield 
den ENABLE pin von 5V auf low ziehen. Dieser ist mit einem 10K 
Widerstand auf high. Wenn ich in python

GPIO.output(ENABLE,0)

probiere, schafft es der Pegel nicht auf 0.
Was mache ich falsch?
Über Hilfe würde ich mich sehr freuen.
Liebe Grüße
dabreaka

von Frank K. (fchk)


Lesenswert?

Claus H. schrieb:
> Hallo zusammen,
> will mit meinem raspberry pi 3 bei meinem protoneer cnc stepper shield
> den ENABLE pin von 5V auf low ziehen. Dieser ist mit einem 10K
> Widerstand auf high. Wenn ich in python

Die GPIO-Pins dürfen niemals mehr als 3.3V sehen, und sie sind auch 
recht schwach. Du solltest einen Transistor dafür verwenden. Sowas wie 
ein BSS138 reicht. 100k vom Gate gegen GND.

fchk

von Sebastian W. (wangnick)


Lesenswert?

Claus H. schrieb:
> den ENABLE pin von 5V auf low ziehen. Dieser ist mit einem 10K
> Widerstand auf high.

Das wären 100uA von 5V über den Widerstand und die Schutzdiode des 
Gpio-Pins zu den 3V3 VCC des PI. Und dann 500uA in den Gpio sobald der 
auf GND geschaltet wird. Sollte eigentlich gehen.

Sind auf den Motortreibermodulen des Shields noch weitere 
ENABLE-Pullups?

LG, Sebastian

von Claus H. (dabreaka)


Angehängte Dateien:

Lesenswert?

Vielen Dank Euch beiden für die Hilfestellungen - auf dem cnc shield ist 
für mich nur der ENABLE pin wichtig (s. Anhang) - den muss ich auf low 
ziehen, dass die Treiber arbeiten. Ich muss mal sehen, wie das mit dem 
Transistor geht - das shield ist eigentlich für den Arduino - hier 
funktioniert es auch - aber am raspberry zickt es

von Sebastian W. (wangnick)


Lesenswert?

Claus H. schrieb:
> den muss ich auf low ziehen, dass die Treiber arbeiten

Sind auf den Treibermodulen noch weitere EN-Pullups?

LG, Sebastian

von Claus H. (dabreaka)


Lesenswert?

das shield hat Sockel für 4 Treiber (A4988) - zwei Sockel brauche ich 
für x und y Stepper - alle enable pins sind mit einem zentralen enable 
PIN schaltbar - und das ist ein 10k Pullup zu 5V - den will ich mit 
einem GPIO auf 0V ziehen

von Sebastian W. (wangnick)


Lesenswert?

Claus H. schrieb:
> das shield hat Sockel für 4 Treiber (A4988) - zwei Sockel brauche ich
> für x und y Stepper - alle enable pins sind mit einem zentralen enable
> PIN schaltbar - und das ist ein 10k Pullup zu 5V - den will ich mit
> einem GPIO auf 0V ziehen

Ja, ist mir klar. Und sind die zwei Sockel schon belegt, oder schafft es 
der PI nicht gegen den puren 10k zu 5V? Und falls die zwei Sockel schon 
belegt sind: Sind auf den Treibermodulen in den Sockeln noch weitere 
Pullups, zusötzlich zu den 10k suf dem Shield?

LG, Sebastian

von Rainer W. (rawi)


Lesenswert?

Claus H. schrieb:
> Wenn ich in python
>
> GPIO.output(ENABLE,0)
>
> probiere, schafft es der Pegel nicht auf 0.
> Was mache ich falsch?

Kannst du das "nicht" auch in Zahlen ausdrücken.
Welchen Pegel erreicht der Pin, wenn der GPIO einen High-Pegel ausgibt?

von Manfred P. (pruckelfred)


Lesenswert?

Frank K. schrieb:
> Die GPIO-Pins dürfen niemals mehr als 3.3V sehen, und sie sind auch
> recht schwach. Du solltest einen Transistor dafür verwenden. Sowas wie
> ein BSS138 reicht. 100k vom Gate gegen GND.

Für so einen Kinderkram nimmt man einen beliebigen NPN-Transistor, 
braucht keinen FET, Elektronik zweite Schulstunde.

BC107, BC238, BC347, BC546 oder 2N_irgenwas aus dem China-Sortiment

Claus H. schrieb:
> das shield

Oh weh, Legosteinchen stecken. Einen Transistor plus Basiswiderstand 
sollte man gerade noch ohne shield zusammen bekommen.

von Claus H. (dabreaka)


Lesenswert?

Hallo nochmal,
vielen Dank an Euch alle - hab mir einen Transistor besorgt, dann

zunächst den Strom zwischen ENABLE und GND gemessen : 0.5 mA - dann sind 
das bei 5V genau die 10 kOhm pull up Widerstand

Transistor: 2N 3904 - hab im Datenblatt eine Reihe von 
Stromverstärkungen gefunden - dann mit 50fach gerechnet (also 3,3V 
Steuerspannung raspberry - 0,7V Abfall Transistor - geteilt durch 0.5 mA 
- mal 50 - komme dann auf 260 kOhm - mit einem 270 kOhm Widerstand tut 
sich nix - dann 47k probiert - auch nichts, dann mit 4,7 k - dann 
schaltet der Transistor mein ENABLE 5V auf GND

Beste Grüße
dabreaka

von Claus H. (dabreaka)


Lesenswert?

Frank K. schrieb:
> Claus H. schrieb:
>> Hallo zusammen,
>> will mit meinem raspberry pi 3 bei meinem protoneer cnc stepper shield
>> den ENABLE pin von 5V auf low ziehen. Dieser ist mit einem 10K
>> Widerstand auf high. Wenn ich in python
>
> Die GPIO-Pins dürfen niemals mehr als 3.3V sehen, und sie sind auch
> recht schwach. Du solltest einen Transistor dafür verwenden. Sowas wie
> ein BSS138 reicht. 100k vom Gate gegen GND.
>
> fchk

du hattest Recht, mein GPIO18 pin am raspberry ist nun tot ... seufz ...

von Sebastian W. (wangnick)


Lesenswert?

Claus H. schrieb:
> du hattest Recht, mein GPIO18 pin am raspberry ist nun tot ... seufz

Ich kann mir irgendwie nicht vorstellen, dass 100uA Schutzdioden des Pi 
zerstört. Sind die derart fragil?

LG, Sebastian

von Joachim B. (jar)


Lesenswert?

Sebastian W. schrieb:
> Sind die derart fragil?

offensichtlich, die gestorbenen PIs sind deutlich wenn man den Nutzern 
glauben darf. Vielleicht ist es aber nur falscher Umgang, z.B. Stecken 
unter Spannung.
Jedenfals scheint ein Raspi SoC sensibler als ein AVR (Arduino) und 
definitiv nicht 5V tolerant.

von Sebastian W. (wangnick)


Lesenswert?

Joachim B. schrieb:
> offensichtlich, die gestorbenen PIs sind deutlich wenn man den Nutzern
> glauben darf.

Aber das sind nur 70uW!

LG, Sebastian

von Joachim B. (jar)


Lesenswert?

Sebastian W. schrieb:
> Aber das sind nur 70uW!
>
> LG, Sebastian

na denn müssen ja alle User lügen oder der PI nie kaputt gehen. Was 
willst du beweisen? (Das es Murphy nicht gibt?)

1. Hauptsatz, was kaputt gehen kann geht kaputt.

Der Serienwiderstand ist zwecklos wenn die auf 5V aufgeladene 
Kabelkapazität unter Spannung gesteckt wird.
Ich war bei keinem der getöteten Raspis dabei, Tatsache bleibt er ist 
nicht 5V tolerant und er ist sensibeler.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Joachim B. schrieb:
> Was willst du beweisen?

Erstens kann ich mir nicht erklären, warum der Pi einen 10k Pullup zu 5V 
nicht auf GND ziehen kann.

Zweitens kann ich mir nicht erklären, wie ein 10k Pullup zu 5V einen 
Pi-Gpio zerstören kann.

Und drittens wüsste ich wirklich gerne, wieviel Mikrowatt so eine 
Schutzdiode in einem IC thermisch abgeleitet bekommt, und ab wann sie 
durch die Hitze des Strompfads zerstört wird. Klar wird das stark von 
der Fertigungstechnologie abhängen ...

LG, Sebastian

von Joachim B. (jar)


Lesenswert?

Sebastian W. schrieb:
> Erstens kann ich mir nicht erklären, warum der Pi einen 10k Pullup zu 5V
> nicht auf GND ziehen kann.

das tut mir leid, ehrlich.
warum? -> Ich gab die Antwort schon!

lesen musst du selber.

von Sebastian W. (wangnick)


Lesenswert?

Joachim B. schrieb:
> Ich gab die Antwort schon!

Ich habe gehört was über den Raspberry Pi kolportiert wird. Broadcom ist 
zudem reichlich zugeknöpft.

Aber: Es ist bekannt dass Schutzdioden thermisch sterben. Dazu braucht 
es aber eine gewisse Leistung über eine gewisse Zeit (oder anders 
ausgedrückt eine gewisse Energiemenge in einer gewissen Zeit). Und ich 
verstehe nicht, wie ein 10k Vorwiderstand nicht ausreichen soll einen 
Port zu schützen, wenn auf der anderen Seite des Widerstands 5V 
anliegen. Ich verstehe es nicht im Sinne von: Nach welchem 
physikalischen Prinzip richtet ein solches Vorgehen genau welchen 
Schaden auf dem Silizium an?

Immerhin kann man an einen AVR lt. der bekannten Atmel Appnote über 
einen geeigneten Widerstand 230V Wechselstrom anlegen!

LG, Sebastian

von Manfred P. (pruckelfred)


Lesenswert?

Sebastian W. schrieb:
> Claus H. schrieb:
>> du hattest Recht, mein GPIO18 pin am raspberry ist nun tot ... seufz
>
> Ich kann mir irgendwie nicht vorstellen, dass 100uA Schutzdioden des Pi
> zerstört.

Es dürfte der sein, den er zuvor direkt an seinem 5V-Anschluß hatte.

Mit dem NPN und 4k7 hat er nun eine sinnvolle Lösung und die 0,56mA 
Basisstrom wird der Raspberry schadlos können.

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.