Forum: Analoge Elektronik und Schaltungstechnik Übersprechen von einem uC-Pin zum Anderen


von Markus K. (buellsix)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich habe ein kleines Problem und benötige eure Hilfe.
Ich nutze den uC STM32L431CBT6 und damit steuere ich einen Motor mit 
einer PWM freq=4kHz. Warum es 4kHz sind, ist erstmal egal. Das Problem 
tritt auch mit 20kHz auf.
Nun den Motor steuere ich also mit der TIM1 PWM CH1 am Pin PA8.

Mit dem Timer15 CH2 möchte ich die Geschwindigkeit messen, indem ich die 
Zeit zwischen 2 Pulsen messe und daraus die Geschwindigkeit errechne. 
Dazu habe ich den Timer15 CH2 am Pin PB15 als Input Capture Mode 
definiert und den Input Capture mit dem TI2 (fallende Flanke) verbunden. 
Das funktioniert soweit, wenn ich den Pin mit einem externen Signal 5V 
(PB15 ist FT 5V tolerant) beaufschlage, löst dieses Signal auch einen 
Interrupt aus - ich lasse dazu im Interrupt probeweise einfach eine LED 
toggeln - und schreibt den aktuellen Counterwert in das Datenregister 2. 
Das funktioniert soweit und ist alles ok.

Mein Problem ist jetzt aber, dass auch die LED dann toggelt, wenn ich 
die PWM, sprich den Tastgrad, des TIM1 CH1 verändere bzw. wenn die PWM 
läuft.. Der PIN der zufälligerweise daneben liegt, bekommt so ein 
Fehlsignal und löst den Interrupt aus..
Leider kann ich hardwaretechnisch nichts mehr ändern und einen anderen 
Pin wählen. So ein Problem auf einem uC hatte ich noch nie. Kann es 
wirklich sein, dass das PWM Signal den Input Capture von TIm15 so stört 
oder ist da hardwaremässig, layoutmässig etwas faul?

Ich bin um jeden Ratschlag sehr dankbar.
Liebe Grüsse

von H. H. (hhinz)


Lesenswert?

Schaltplan und Aufbau zeigen.

von Andreas B. (bitverdreher)


Lesenswert?

Markus K. schrieb:
> Kann es
> wirklich sein, dass das PWM Signal den Input Capture von TIm15 so stört
> oder ist da hardwaremässig, layoutmässig etwas faul?

Bei offenen Eingängen: ja.

von Mark S. (voltwide)


Lesenswert?

Die heute üblichen harten Schaltflanken eines portpins können über 
weninge pF koppelkapazität kurze Nadelimpulse einkoppeln auf offene 
benachbarte Leitungen, durchaus auch mit logischen pegeln.

: Bearbeitet durch User
von Markus K. (buellsix)


Lesenswert?

Andreas B. schrieb:
> Markus K. schrieb:
>> Kann es
>> wirklich sein, dass das PWM Signal den Input Capture von TIm15 so stört
>> oder ist da hardwaremässig, layoutmässig etwas faul?
>
> Bei offenen Eingängen: ja.

Wie meinst du das mit offenem Eingang, der Pin ist mit dem Signal von 
einem Hallsensor verbunden, daher ist er ja nicht offen.

Mark S. schrieb:
> Die heute üblichen harten Schaltflanken eines portpins können über
> weninge pF koppelkapazität kurze Nadelimpulse einkoppeln auf offene
> benachbarte Leitungen, durchaus auch mit logischen pegeln.

Ja schon, aber wenn das überall so leicht geht, dürfte ja kein PWM Sinal 
neben einem anderen Pin liegen, was ja bei einem uC unmöglich ist.

Was kann ich gegen dieses Phänomen machen?

PS:
Ich lade den Schaltungsteil morgen mal hoch

von Bruno V. (bruno_v)


Lesenswert?

Markus K. schrieb:
> Mein Problem ist jetzt aber, dass auch die LED dann toggelt, wenn ich
> die PWM, sprich den Tastgrad, des TIM1 CH1 verändere bzw. wenn die PWM
> läuft

Diese Formulierung deutet darauf hin, dass "etwas komisches passiert".

Kannst Du sagen, wie groß die PWM ist und wie groß das eingekoppelte 
Blinken?

Kannst Du Versuchesweise nur den Ausgang abschalten, ob es dann immer 
noch auftritt?

Ist es Regelmäßig oder schwankt es mit der Zeit ohne dass sich sonstwas 
ändert?

Ansonsten hört es sich eher nach Inter-Interrupt-Problemen an.

von Frank K. (fchk)


Lesenswert?

Markus K. schrieb:

> Mark S. schrieb:
>> Die heute üblichen harten Schaltflanken eines portpins können über
>> weninge pF koppelkapazität kurze Nadelimpulse einkoppeln auf offene
>> benachbarte Leitungen, durchaus auch mit logischen pegeln.
>
> Ja schon, aber wenn das überall so leicht geht, dürfte ja kein PWM Sinal
> neben einem anderen Pin liegen, was ja bei einem uC unmöglich ist.
>
> Was kann ich gegen dieses Phänomen machen?

So ein GPIO-Pin ist sehr hochohmig, d.h. es fließt nur wenig Strom. 
Hänge mal einen 1k Widerstand gegen GND an den Pin. Dann muss die 
Störung gegen den erhöhten Strom anarbeiten, und das sollte ihr dann 
nicht mehr so einfach gelingen.

fchk

von Jens M. (schuchkleisser)


Lesenswert?

Markus K. schrieb:
> Wie meinst du das mit offenem Eingang, der Pin ist mit dem Signal von
> einem Hallsensor verbunden, daher ist er ja nicht offen.

Hallsensor ist Open Collector und du hast den Pullup aktiv?
Dann weißt du wo das Problem ist...

von Steve van de Grens (roehrmond)


Lesenswert?

Markus K. schrieb:
> der Pin ist mit dem Signal von einem Hallsensor verbunden

Mit welchem Hallsensor ist der Pin verbunden? Wenn du eine Schaltung 
diskutieren willst, dann musst du uns ihren Plan zeigen. Über 
phantastische Luftschlösser zu diskutieren bringt nichts.

von Bauform B. (bauformb)


Lesenswert?

Jeder GPIO hat ein SPEED Register. Für die meisten Anwendungen reicht 
die langsamste Einstellung (= nicht so steile Flanken) leicht.

Manche Timer haben ein digitales Filter zwischen Pin und Input Capture.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Versuche erst einmal die GPIO Speed des PWM Ausganges zu verringern. Das 
verlangsamt die Schaltflanke und verringert das Uebersprechen. Der 
Eingang braucht auch eine Pull(Up|Down)

von Markus K. (buellsix)


Angehängte Dateien:

Lesenswert?

Hallo zusammen
Vielen Dank für die vielen Ratschläge.
Ich habe heute bereits einige Dinge probiert. Ich gehe kurz auf jeden 
Beitrag von euch ein. Wobei ich sagen muss, dass ich die erste Platine 
versehentlich zerstört bzw. den uC verschossen habe... Dann habe ich 
einfach ein neues uC Board genommen und habe den Eindruck, dass ich 
jetzt irgendwie andere Probleme habe wie vorher... Nämlich mit dem 1:1 
Code reagiert der Input Capture jetzt seeehr seeeehr langsam. Das kann 
ich überhaupt nicht brauchen bei den 15 Pulsen pro Undrehung.. Wenn ich 
3 mal schnell hintereinander mit einem externen Trigger auf den Pin 
gehe, reagiert der nur einmal...

Bruno V. schrieb:
> Markus K. schrieb:
>> Mein Problem ist jetzt aber, dass auch die LED dann toggelt, wenn ich
>> die PWM, sprich den Tastgrad, des TIM1 CH1 verändere bzw. wenn die PWM
>> läuft
>
> Diese Formulierung deutet darauf hin, dass "etwas komisches passiert".
>
> Kannst Du sagen, wie groß die PWM ist und wie groß das eingekoppelte
> Blinken?

Also die PWM Frequenz ist 4.096kHz, die habe ich einfachheitshalber auf 
den 12-bit ADC Wert angepasst, damit ich die erstmal direkt übergeben 
kann. Es ist eine 12V PWM.

>
> Kannst Du Versuchesweise nur den Ausgang abschalten, ob es dann immer
> noch auftritt?

Den PWM Ausgang habe ich abgeschaltet, dann habe ich das Problem nicht 
mehr und nur eine fallende Flanke löst den input capture aus, was auch 
so passt, auch wenn der Input Capture wie oben bereits gesagt, vieeel zu 
langsam reagiert für 15 Pulse pro Umdrehung...
Wenn die PWM läuft funktioniert der Input Capture auf einmal nicht 
mehr...
Ich habe auch versucht die PWM nicht auszuschalten und den Input Capture 
von TIM15 CH2 auf CH1 zu legen, sprich von PB15 auf PB14 zu legen. Dann 
hätte ich dann gemäss Bild ganz oben in meinem ersten Beitrag einen 
unbenutzten Pin zwischen TIM1 CH1 und TIM15 CH1.
Der Input Capture auf dem CH1 funktioniert so leider gar nicht, aber ich 
bin mir hier noch nicht sicher, ob ich im Code irgendwo etwas vergessen 
oder übersehen habe. Das prüfe ich noch..
>
> Ist es Regelmäßig oder schwankt es mit der Zeit ohne dass sich sonstwas
> ändert?

Also die LED toggelte beim jetzt kaputten Board nicht wirklich, sondern 
blinkte sehr schnell, indem sie ein wenig dunkler flackerte. Also der 
Interrupt wurde sehr schnell aufgerufen.
>
> Ansonsten hört es sich eher nach Inter-Interrupt-Problemen an.

Ja eigentlich dürfte es nicht sein, denn der Timer 1 wurde mit keinem 
Interrupt initialisiert. Es ist mir klar, dass die Timer 1 und 15 einen 
gemeinsamen Interrupt haben. Aber auch wenn der Timer 1 aus irgend einem 
Grund in den Interrupt springt, sei es so, dass dieser so konfiguriert 
wurde, dann darf er doch, wenn er in den Interrupt springt, nicht 
einfach meinen Counterwert im Datenregister 2 von TIM15 aktualisieren 
(TIM15 Input Capture).. Da bringt es mir auch nichts, wenn ich erkennen 
würde, welcher Timer gerade den Interrupt aufgerufen hat..

Frank K. schrieb:
> Markus K. schrieb:
>
>> Mark S. schrieb:
>>> Die heute üblichen harten Schaltflanken eines portpins können über
>>> weninge pF koppelkapazität kurze Nadelimpulse einkoppeln auf offene
>>> benachbarte Leitungen, durchaus auch mit logischen pegeln.
>>
>> Ja schon, aber wenn das überall so leicht geht, dürfte ja kein PWM Sinal
>> neben einem anderen Pin liegen, was ja bei einem uC unmöglich ist.
>>
>> Was kann ich gegen dieses Phänomen machen?
>
> So ein GPIO-Pin ist sehr hochohmig, d.h. es fließt nur wenig Strom.
> Hänge mal einen 1k Widerstand gegen GND an den Pin. Dann muss die
> Störung gegen den erhöhten Strom anarbeiten, und das sollte ihr dann
> nicht mehr so einfach gelingen.
>
> fchk

Ich bin mir nicht mehr sicher, ob das noch notwendig ist, da ich jetzt 
ein neues Board verwende und die Probleme nicht mehr 100%ig die gleichen 
sind... warum auch immer.

Jens M. schrieb:
> Markus K. schrieb:
>> Wie meinst du das mit offenem Eingang, der Pin ist mit dem Signal von
>> einem Hallsensor verbunden, daher ist er ja nicht offen.
>
> Hallsensor ist Open Collector und du hast den Pullup aktiv?
> Dann weißt du wo das Problem ist...

Du hast Recht, aber ich habe mich da etwas falsch ausgedrückt, also 
später sollte der Hallsensor mit Pullup an den Pin kommen und den 
externen Trigger a,,darstellen. Noch habe ich es mit 5V manuell immer 
ausgelöst für Testzwecke.

Steve van de Grens schrieb:
> Markus K. schrieb:
>> der Pin ist mit dem Signal von einem Hallsensor verbunden
>
> Mit welchem Hallsensor ist der Pin verbunden? Wenn du eine Schaltung
> diskutieren willst, dann musst du uns ihren Plan zeigen. Über
> phantastische Luftschlösser zu diskutieren bringt nichts.

Ich habe ihn oben mal angehängt. Also eigentlich ist da nichts dran, als 
nur 0 Ohm Widerstände an jedem Pin und die Signale sind alle auf einen 
Stecker geführt.

Bauform B. schrieb:
> Jeder GPIO hat ein SPEED Register. Für die meisten Anwendungen
> reicht
> die langsamste Einstellung (= nicht so steile Flanken) leicht.
>

> Manche Timer haben ein digitales Filter zwischen Pin und Input Capture.

Alle Pins sind auf Low Frequenz eingestellt.
Was genau bringt ein digitales Filter, wenn der Input Capture auf eine 
Flanke schaut? Aktuell habe ich den Filter auf 0x00, also kein Filter.

Uwe B. schrieb:
> Versuche erst einmal die GPIO Speed des PWM Ausganges zu
> verringern. Das
> verlangsamt die Schaltflanke und verringert das Uebersprechen. Der
> Eingang braucht auch eine Pull(Up|Down)

Ich muss das nochmals testen, ob die PWM beim neuen Board auch stört und 
einen Interrupt auslöst. Die PWM hat immer gestört, wenn der Tastgrad 
geändert wurde, heute hatte ich ihn bloss konstant eingestellt und kam 
nicht mehr dazu ihn zu verändern.

Nun im Moment scheint es so als hätte ich jetzt ein Haufen Probleme, 
nicht nur einen. Ich habe heute sogar alle Peripherien rundherum 
abgeschaltet und nur die PWM und den Input Capture laufen lassen.
Es ist auch dann alles so wie ich es oben beschrieben habe..
Ich meine Schaltungstechnisch und layouttechnisch kann man ja beim uC 
Board wirklich nicht viel falsch machen, was die beiden Pins angeht 
oder???

von Walter T. (nicolas)


Lesenswert?

Ich sehe keine Beschaltung. Das sind alles offene Pins.

von Steve van de Grens (roehrmond)


Lesenswert?

Markus K. schrieb:
> Also eigentlich ist da nichts dran, als nur 0 Ohm Widerstände
> an jedem Pin und die Signale sind alle auf einen Stecker geführt.

Das ist der Fehler. Du musst alle Leitungen entsprechend ihrer Anwendung 
vor allem Schützen, was zu erwarten ist. Mindestens gegen den Einfluss 
von elektromagnetischen Feldern (Radiowellen) die jede Leitung sowohl 
abstrahlt als auch empfängt.

Im KFZ Umfeld sind solche Schaltungen besonders aufwändig, damit es 
zuverlässig funktioniert. Dazu gibt es eigene Fachartikel/Bücher, auf 
die hier in einigen Diskussionen verwiesen wurde. Ich denke, das findest 
du am besten mit Google.

von Bauform B. (bauformb)


Lesenswert?

Walter T. schrieb:
> Ich sehe keine Beschaltung. Das sind alles offene Pins.

Jetzt wäre ein vollständiges Schaltbild vielleicht doch hilfreich... 
Wenn die Pins die meiste Zeit offen sind, hast du einen 
Zufallsgenerator.

Markus K. schrieb:
> Nämlich mit dem 1:1 Code reagiert der Input Capture jetzt seeehr
> seeeehr langsam. [...] Wenn ich 3 mal schnell hintereinander mit
> einem externen Trigger auf den Pin gehe, reagiert der nur einmal...

> später sollte der Hallsensor mit Pullup an den Pin kommen und den
> externen Trigger a,,darstellen. Noch habe ich es mit 5V manuell
> immer ausgelöst für Testzwecke.

Wie erzeugst du den Trigger? 5V aus einem Funktionsgenerator oder 
berührst du mit einem Kabel den Steckerpin? Gibt es da einen Pull-Down? 
Wenigstens den internen?

von Peter D. (peda)


Lesenswert?

Markus K. schrieb:
> Wie meinst du das mit offenem Eingang, der Pin ist mit dem Signal von
> einem Hallsensor verbunden, daher ist er ja nicht offen.

Dann ist wohl der unbekannte Hallsensor zu hochohmig.
Setze einen Treiber dazwischen, z.B. 74LV1T34.
Ich setze mal voraus, PWM und Sensor gehen über einzeln geschirmte Kabel 
und nicht über benachbarte Adern in einem Flachbandkabel.

von Markus K. (buellsix)


Lesenswert?

Steve van de Grens schrieb:
> Markus K. schrieb:
>> Also eigentlich ist da nichts dran, als nur 0 Ohm Widerstände
>> an jedem Pin und die Signale sind alle auf einen Stecker geführt.
>
> Das ist der Fehler. Du musst alle Leitungen entsprechend ihrer Anwendung
> vor allem Schützen, was zu erwarten ist. Mindestens gegen den Einfluss
> von elektromagnetischen Feldern (Radiowellen) die jede Leitung sowohl
> abstrahlt als auch empfängt.


ok verstehe, aber der uC hat doch intern eine Diodenbeschaltung nach GND 
und VCC. Man könnte jetzt 33 Ohm Widerstände in Serie platzieren, aber 
ichbfrage mich ob das wirklich notwendig ist, denn das Nucleo Board von 
ST hat auch alle Pins nackt auf den Stecker geführt. Die haben auch 
keine aufwändige Beschaltung.

Bauform B. schrieb:
> Walter T. schrieb:
>> Ich sehe keine Beschaltung. Das sind alles offene Pins.
>
> Jetzt wäre ein vollständiges Schaltbild vielleicht doch hilfreich...

ich poste nachher noch die gesamte Schaltung.

> Wenn die Pins die meiste Zeit offen sind, hast du einen
> Zufallsgenerator.
> Markus K. schrieb:
>> Nämlich mit dem 1:1 Code reagiert der Input Capture jetzt seeehr
>> seeeehr langsam. [...] Wenn ich 3 mal schnell hintereinander mit
>> einem externen Trigger auf den Pin gehe, reagiert der nur einmal...
>
>> später sollte der Hallsensor mit Pullup an den Pin kommen und den
>> externen Trigger a,,darstellen. Noch habe ich es mit 5V manuell
>> immer ausgelöst für Testzwecke.
>
> Wie erzeugst du den Trigger? 5V aus einem Funktionsgenerator oder
> berührst du mit einem Kabel den Steckerpin? Gibt es da einen Pull-Down?
> Wenigstens den internen?

Der Hallsensor TLE 4905L ist ein open collector. Da habe ich einen 1k 
pullup nach 5V drin. Aber zum Testen habe ich ein Kabel genommen und mit 
dem den Pin berührt. Es sind 5V vom Labornetzteil.
Wenn ich den Sensor nämlich mit dem Pin verbinde ist das Signal ständig 
low und der Sensor funktioniert nicht. Deshalb erstmal manuell getestet. 
Ich wollte erstmal dass der Input Capture funktioniert.

Peter D. schrieb:
> Markus K. schrieb:
>> Wie meinst du das mit offenem Eingang, der Pin ist mit dem Signal von
>> einem Hallsensor verbunden, daher ist er ja nicht offen.
>
> Dann ist wohl der unbekannte Hallsensor zu hochohmig.
> Setze einen Treiber dazwischen, z.B. 74LV1T34.
> Ich setze mal voraus, PWM und Sensor gehen über einzeln geschirmte Kabel
> und nicht über benachbarte Adern in einem Flachbandkabel.

Der uC hat Stecker. Diesen stecke ich auf einen anderen Print drauf. 
Aber zum Testen und programiieren liegt er nur da auf dem Tisch so wie 
halt ein Nucleo Board.

Ich programmiere mal das Nucleo Board und schaue mal ob dieser auch 
solche Probleme hat.

Ich poste noch die gesamte Schaltung gleich.

von Bauform B. (bauformb)


Lesenswert?

Markus K. schrieb:
> zum Testen habe ich ein Kabel genommen und mit
> dem den Pin berührt. Es sind 5V vom Labornetzteil.

Ohne Pull-Down wird der Pin nur durch Leckströme wieder Low, das würde 
"viel zu langsam" erklären. Aber auch mit Pull-Down erzeugst du 
undefiniert viele Flanken, selten auch mal genau eine. Du bist ja kein 
Quecksilberschalter, mit deinem Kabel.

> Man könnte jetzt 33 Ohm Widerstände in Serie platzieren, aber
> ich frage mich ob das wirklich notwendig ist, denn das Nucleo Board
> von ST hat auch alle Pins nackt auf den Stecker geführt.

Das Nucleo muss vor allem billig sein, das ist kein Maßstab. Du hast ja 
schon die 0R Widerstände. Wenn du da (bei Eingangspins; ganz ungefähr) 
10k einbaust, hast du schon die halbe "aufwendige Beschaltung". Aber 
erstmal geht es drum, den Eingang überhaupt korrekt anzusteuern.

von Markus K. (buellsix)


Angehängte Dateien:

Lesenswert?

Hier ist der ganze Schaltplan, es ist nicht alles bestückt. Deshalb habe 
ich beide Schaltpläne angehängt.

Bauform B. schrieb:
> Markus K. schrieb:
>> zum Testen habe ich ein Kabel genommen und mit
>> dem den Pin berührt. Es sind 5V vom Labornetzteil.
>
> Ohne Pull-Down wird der Pin nur durch Leckströme wieder Low, das würde
> "viel zu langsam" erklären. Aber auch mit Pull-Down erzeugst du
> undefiniert viele Flanken, selten auch mal genau eine. Du bist ja kein
> Quecksilberschalter, mit deinem Kabel.

Also das musst du mir bitte nochmals erklären. Meine Zeit als 
Elektroniker ist über 16 Jahre her und ich habe mich seit langem wieder 
einmal an ein Hobbyprojekt gewidmet.
Wie meinst du das mit dem Pull-Down? Braucht es den zusätzlich zum 
Pull-up einen PullDown am Kabel gegen GND? Und wo fliessen Leckströme 
dann genau?
Also der uC Input Capture hat keinen Pull-Down, was ich so gesehen habe. 
Wenn ich den Pin mit Pull-Down konfiguriere, bräuchte ich dann keinen 
Pull-Down mehr am Kabel, richtig?
Aber wo fliessen jetzt ohne Pulldown Leckströme? Siehe Pull-Down bild

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Als Daumenregel: In einer reinen Digitalschaltung sollte jeder Pin in 
jedem Zustand irgendwie niederohmig auf Low oder High sein.

Bei Ausgängen sorgt der Controller nach der Initalisierung selbst dafür.

Bei Eingängen muss die Gegenseite dafür sorgen. Wenn die Gegenseite 
allerdings absteckbar ist, muss meine Schaltung selbst für diesen 
Zustand einen "irgendwie niederohmingen" Ersatz bieten.

Wie hoch die "irgendwie niederohmige" maximale Impedanz sein darf, ist 
situationsabhänging. In vielen Fällen ist ≤22kOhm eine gute Wahl, aber 
der optimale Wert ist viel Erfahrungssache.

von Andreas B. (bitverdreher)


Lesenswert?

Markus K. schrieb:
> Wenn ich den Pin mit Pull-Down konfiguriere, bräuchte ich dann keinen
> Pull-Down mehr am Kabel, richtig?

Jain. Es ist besser als nichts, aber meist sind die internen Pullup/down 
etwas zu hoch (50kOhm o.ä.).
Wenn ein Pullup angeschlossen ist, brauchst Du auch keinen Pulldown. 
Wenn aber der Sensor einen Pullup enthält, aber nicht nageschlossen ist, 
hast Du eben einen offenen Eingang. Da die Eingänge sehr hochohmig sind, 
erzeugt jedes über die Luft ankommene Elektrönchen irgendwelche 
undefinierten Pegel.
Deshalb macht man den Pullup fest in die Schaltung rein und läßt den am 
(absteckbaren) Sensor weg.

Walter T. schrieb:
> In vielen Fällen ist ≤22kOhm eine gute Wahl, aber
> der optimale Wert ist viel Erfahrungssache.

Je verseuchter die Umgebung ist, desto niedriger. Im Zweifelsfall bis an 
die Belastungsgrenze des Sensors gehen. Dann bist Du auf der sicheren 
Seite.

von Markus K. (buellsix)


Lesenswert?

Andreas B. schrieb:
> Markus K. schrieb:
>> Wenn ich den Pin mit Pull-Down konfiguriere, bräuchte ich dann keinen
>> Pull-Down mehr am Kabel, richtig?
>
> Jain. Es ist besser als nichts, aber meist sind die internen Pullup/down
> etwas zu hoch (50kOhm o.ä.).
> Wenn ein Pullup angeschlossen ist, brauchst Du auch keinen Pulldown.
> Wenn aber der Sensor einen Pullup enthält, aber nicht nageschlossen ist,
> hast Du eben einen offenen Eingang. Da die Eingänge sehr hochohmig sind,
> erzeugt jedes über die Luft ankommene Elektrönchen irgendwelche
> undefinierten Pegel.
> Deshalb macht man den Pullup fest in die Schaltung rein .

Ok der Pullup müsste dann alsonauf dem UC Board sein und nicht auf dem 
anderen Print wo das uC Board aufgesteckt ist. Verstanden.
Aber dann frage ich mich warum der Sensor mit dem 1k Pullup das Signal 
auf Low zieht und nicht mehr funktioniert.

Aber gut, ich habe jetzt mal ein Haufen Dinge zu testen erstmal.. Ich 
melde mich dann wieder.

von Andreas B. (bitverdreher)


Lesenswert?

Kann auch sein, dass die PWM direkt auf den Sensor einwirkt. Wir kennen 
ja nicht den genauen Aufbau und den Sensor.

von Mark S. (voltwide)


Lesenswert?

Sofern wir hier ein Problem mit kapazitiver Überkopplung haben, gilt
-es werden Nadelimpulse übertragen
-deren Amplitude ist in erster Linie eine Frage der Eingangskapazität 
des Porteinganges, denn wir haben einen kapazitiven SpannungsTeiler zu 
betrachten.
-jegliche Art von pull-up oder -down Widerständen verkürzt zwar die 
Dauer dieser Nadelimpulse, nicht aber deren Amplitude.

Um die Amplitude der Nadelimpulse zu verkleinern, reicht demnach ein 
kleiner Kondensator (100p~1n) direkt vom gestörten Eingang nach GND.

Davon mal abgesehen halte ich ein Software-Problem durchaus für möglich 
- mit Interrupts kann man nun mal auch eine ganze Menge falsch machen.

: Bearbeitet durch User
von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Mark S. schrieb:
> -jegliche Art von pull-up oder -down Widerständen verkürzt zwar die
> Dauer dieser Nadelimpulse, nicht aber deren Amplitude.

Das deckt sich leider gar nicht mit meinem Verständnis, wie 
Spannungsteiler funktionieren.

Wenn das du/dt meines Störsignals fix ist, würde eine Verkleinerung 
eines Pull-Up/Downs selbstverständlich auch die Amplitude des 
Störsignals reduzieren.

von Steve van de Grens (roehrmond)


Lesenswert?

Markus K. schrieb:
> ichbfrage mich ob das wirklich notwendig ist, denn das Nucleo Board von
> ST hat auch alle Pins nackt auf den Stecker geführt.

Das Nucleo Biard ist auch keine Baugruppe für KFZ, sondern zum 
Experimentieren auf dem Schreibtisch.

von Jens M. (schuchkleisser)


Lesenswert?

Markus K. schrieb:
> Noch habe ich es mit 5V manuell immer
> ausgelöst für Testzwecke.

Nicht entkoppelt, und nicht niederohmig in den Chip geführt.
Das sind alles Antennen, auch und gerade mit dem internen Pull.

Markus K. schrieb:
> Ich meine Schaltungstechnisch und layouttechnisch kann man ja beim uC
> Board wirklich nicht viel falsch machen, was die beiden Pins angeht
> oder???

Offensichtlich schon... ;)

Markus K. schrieb:
> das Nucleo Board von
> ST hat auch alle Pins nackt auf den Stecker geführt. Die haben auch
> keine aufwändige Beschaltung.

Das ist ja auch ein Bastelbrett, bei dem niemand weiß was da später 
angeschlossen wird.
Der Pullup für eine Taste kann den ADC unnütz machen, also lassen die 
die Pins nackend, damit der Testbastler beides ausprobieren kann.

Du brauchst recht nah am Chip einen Pull (je nach Funktion up oder 
down), mit durchaus nur wenigen Kiloohm.
Ich würde einen kleinen Kondensator nach GND ansetzen, der fängt schon 
viel Einstrahlung und Funk ab. So 1n, je nach Frequenz auch ein bissel 
weniger.
Und es schadet meist auch nicht, einen Serienwiderstand einzubauen, der 
z.B. bei unterschiedlichen Versorgungsspannungen oder evtl. berührbaren 
Steckern verhindert, das die internen Dioden abbrennen.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Den Ausgang und damit das Uebersprechen ueber die GPIO Settings zu 
bremsen hast Du noch nicht probiert?

von Markus K. (buellsix)


Lesenswert?

Jens M. schrieb:
> Markus K. schrieb:
>> Noch habe ich es mit 5V manuell immer
>> ausgelöst für Testzwecke.
>
> Nicht entkoppelt, und nicht niederohmig in den Chip geführt.
> Das sind alles Antennen, auch und gerade mit dem internen Pull.
> Markus K. schrieb:
>> Ich meine Schaltungstechnisch und layouttechnisch kann man ja beim uC
>> Board wirklich nicht viel falsch machen, was die beiden Pins angeht
>> oder???
>
> Offensichtlich schon... ;)
> Markus K. schrieb:
>> das Nucleo Board von
>> ST hat auch alle Pins nackt auf den Stecker geführt. Die haben auch
>> keine aufwändige Beschaltung.
>
> Das ist ja auch ein Bastelbrett, bei dem niemand weiß was da später
> angeschlossen wird.
> Der Pullup für eine Taste kann den ADC unnütz machen, also lassen die
> die Pins nackend, damit der Testbastler beides ausprobieren kann.
> Du brauchst recht nah am Chip einen Pull (je nach Funktion up oder
> down), mit durchaus nur wenigen Kiloohm.
> Ich würde einen kleinen Kondensator nach GND ansetzen, der fängt schon
> viel Einstrahlung und Funk ab. So 1n, je nach Frequenz auch ein bissel
> weniger.
> Und es schadet meist auch nicht, einen Serienwiderstand einzubauen, der
> z.B. bei unterschiedlichen Versorgungsspannungen oder evtl. berührbaren
> Steckern verhindert, das die internen Dioden abbrennen.

Ja ich werde deinen Tipp und die der anderen anwenden. Es sind jetzt so 
viele Ratschläge gekommen. das muss ich erst mal verarbeiten. 🤣👌

Uwe B. schrieb:
> Den Ausgang und damit das Uebersprechen ueber die GPIO Settings zu
> bremsen hast Du noch nicht probiert?

Hallo Uwe, ja der Pin von Tim1 PWM war bereits auf der langsamsten Stufe 
eingestellt. Da habe ich nichts machen müssen. Falls du es mitbekommen 
hast, habe ich mit dem neuen Board gefühlt andere Probleme.

von Markus K. (buellsix)


Lesenswert?

Hey Leute
Vielen Dank euch allen für eure Tipps. Ich habe nun sichergestellt den 
PWM Pin mit Low Speed zu betreiben.
Hallsensor mit 1k Pullup.
Seriell habe ich beim Hallsensor 1k reingemacht. Damit sinds mit 5V 5mA 
max.
C gegen GND 1n
Pulldown habe ich beim PB15 also intern im uC gewählt und extern 2.2k 
aber nicht bestückt, damit ich über diesen ca. 3V3 als Sensorsignal 
erreiche. Mit dem internen sind es 5V. Dieser ist offenbar tatsächlich 
viel hochohmiger.

Die Pullups und downs kommen aber nicht auf das uC Board, weil es da mit 
den alternativen Pinfunktionen ja tatsächlich keinen Sinn macht. Das 
kommt auf das Hauptboard.

Funktioniert jetzt tadellos. Top Leute

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.