Kuriosum am PWM-Pin

Hallo in die Runde,

habe gerade mal einen Uno Rev.3 mit einem PWM-Testsketch an mein Oszilloskop gehängt und folgende kuriose Entdeckung gemacht:


Der Pin schwingt hoch bis 7,16 Volt und kommt erst nach 26 ns zur Ruhe.
Am Ende des Pulses geht das ganze Spiel genau anders herum: Da schwingt er auf -2,16 Volt und landet ebenfalls erst nach 26 ns bei 0.

Jetzt mal rein interessehalber: Wo holt der Uno die 2,16 Volt her...? :slight_smile:

Viele Grüße
Jörg

Hallo
mit oder ohne Last am Ausgang ?

Mit Last in Form einer LED mit 470R-Vorwiderstand zuzüglich der Messspitze mit 10M.

ich tippe mal auf Reflektionen

Kannst Du mir das erklären?

Hallo
nimm eine Suchmaschine Deiner Wahl und beschäftige diese mit Reflexion bei elektrischen Leitungen.

Das habe ich getan, kann aber aus den Ergebnissen keine Erklärung für das Phänomen herleiten. Denn danach müsste die Spitze einige ns nach dem Einschwingen quasi als Buckel kommen.

Der PWM-Pin ist ja letztlich nichts anderes als ein Digitalpin, der in der Lage ist, 491x pro Sekunde auf High zu schalten und dieses High für X/256 einer 491stel Sekunde zu halten.
Daher finde ich die Frage interessant, wo einige ns vor High-Schalten eine Reflexion ihren Ursprung hat. Da muss ja vorher etwas passiert sein...

Dein Oszi sollte irgendwo einen Testpin haben, der ein sauberes Rechtecksignal ausgibt. Häng' mal deine Messpitze da drauf und schau dir das Signal an. IMO ist deine Tastspitze nicht richtig eingestellt.

Der Oszi ist heute frisch aus der Packung gekommen und natürlich sind die Tastspitzen kompensiert. :wink: :smiley:


Das was man da sieht sind Schwingungen eines Schwingkreises der ziemlich gedämpft sind.
Jede Kondensator/Induktivitätskombination ist ein Schwingkreis. Selbst die Tastspitze des Oszilloskopes.
Wenn ich den TO richtig verstehe dann dauert 1 Schwingung 26nS und ist nach einer Schwingung schon so abgeklungen daß keine weitere Schwingung da ist.

Also haben wir eine Frequenz von ca 40MHz.
Bei solchen Frequenzen müssen die Kapazitäten und Induktivitäten nicht sonderlich groß sein.

Die Spannungsüberhöhung kommt vom Schwingkreis her. Dieser erhöht immer die Spannung.

Das was Du hier siehst ist ziemlich normal.

Grüße Uwe

Hallo,

@ Jörg, und wenn du mit der Massefeder statt Massekabel vom Tastkopf arbeitest sieht das auch besser aus. Man muss nur in der Nähe vom Messpin einen Massekontakt haben. Stichwort Masseschleife kurz halten.
Und als Nebeninfo. Beim Nano Every kann man noch Slewrate aktivieren. Dann sieht das mit Massefeder wie gemalt aus und auch mit Massekabel siehts noch gut aus.

@Uwe: Der Screenshot stammt von einem Rigol DS1102Z, und ich bin einigermaßen begeistert, wie viele Informationen man mit so einem Gerät erhält. Die Einschwingwelle habe ich mit der Cursor-Funktion gemessen, und wie man sieht, ergibt sich daraus eine Periode von 26 ns. Natürlich vorausgesetzt, ich lese das Ding richtig; das ist mein erstes Digital-Oszilloskop.
Mit dem Stichwort Kondensator/Schwingkreis kann ich mir jetzt einen Reim darauf machen.
Das schreit ja förmlich danach, mir jetzt auch mal andere Boards vorzunehmen und das Schaltverhalten zu beobachten.

joergpauly:
Uno Rev.3

...

Der Pin schwingt hoch bis 7,16 Volt und kommt erst nach 26 ns zur Ruhe.
Am Ende des Pulses geht das ganze Spiel genau anders herum: Da schwingt er auf -2,16 Volt und landet ebenfalls erst nach 26 ns bei 0.

Jetzt mal rein interessehalber: Wo holt der Uno die 2,16 Volt her...? :slight_smile:

Die Über- und Unterschwinger sind natürlich reine Messfehler.
Zumindest zum überwiegenden Teil.

Direkt am Pin kann es kaum Überschwinger geben, da die Clampdioden das platt bügeln würden.
Da sind also nur Überschwinger von 0,xV möglich.

Natürlich sind da "Schwingkreise" im Spiel.
Aber sicherlich an anderer Stelle, als vermutet.

Das schreit ja förmlich danach, mir jetzt auch mal andere Boards vorzunehmen und das Schaltverhalten zu beobachten.

Ja!

Aber Vorsicht:

Wer viel misst, misst viel Mist.

Schau erst mal die übrigen PWM Pins an, oder alle mit einem Blink Programm.

Nehmen wir mal den einfachsten aller Sketche:

void setup() 
{
	pinMode(7, OUTPUT);
	pinMode(8, OUTPUT);
}

// the loop function runs over and over again until power down or reset
void loop() 
{
	digitalWrite(7, HIGH);
	//digitalWrite(8, HIGH);	
	//digitalWrite(8, LOW);
	digitalWrite(7, LOW);	
}

Einmal mit einem, dann mit zwei Pins.
Mit einem Pin kommt der Uno auf 149 kHz, mit zweien auf 69 kHz.
An beiden Pins wird übrigens das gleiche Überschwingen gemessen wie am PWM-Pin.

Ich vermute mal, die ganze Wahrheit wird man auch mit 150 verschiedenen Oszis nicht erfahren. :slight_smile:

Ich vermute mal, die ganze Wahrheit wird man auch mit 150 verschiedenen Oszis nicht erfahren.

Dann wären ja alle Oszis völlig Sinnbefreit.

Hat du dein Oszi, bzw. den Tastkopf kalibriert?
Nein, dann machen.

Hallo Jörg,

a) überlege einmal warum die Taktfrequenz der Pins abnimmt je mehr Pins du in der loop schaltest
b) überlege ob es einen Zusammenhang zwischen Taktfrequenz und Schaltflanke gibt
c) Massefeder statt Massekabel verwenden

Ich vermute mal, die ganze Wahrheit wird man auch mit 150 verschiedenen Oszis nicht erfahren.

Diese Aussage beruht allein auf Unwissen. Im Grunde wurde dir von mehreren Leuten dazu schon alles erklärt,

Übrigens, auf meinem Oszi sieht dein Programm so aus:

TO möchte seine Tastspitze aber nicht kalibrieren.

Die Tastspitzen sind zu kalibrieren. Das Oszy hat eine kalibrierungs-Ausgang mit einem Rechtecksignal, daran die Tastspitze anschließen und den Kondensator in der Tastspitze drehen bis ein saubes Rechtecksignal ohne übersteuerung oder Abrundungen herauskommt.

Wenn die Tastspitze nicht kalibriert ist dann hast Du dieses Überschwingen bzw abrunden auch bei anderen Signalen und stellst diese dann auf dem Bildschirm falsch dar.

Grüße Uwe