Vermeiden von glitches in AVR ASM

OP #5021494
Hallo zusammen,
ich hoffe, die programmierenden Väter sind nicht alle mit dem 
Bollerwagen unterwegs ;-)

Ich habe ein kleines Problem mit (vermuteten) Glitches.

Ich schalte PB1 vom tiny2312 in einer Schleife aus und an, um ein 
Taktsignal zu erzeugen.

Ich verwende dafür den out-Befehl:
1
loop:
2
ldi    AKKU, (0<<CLK_PIN)|(1<<DATA_PIN)
3
out    PORT_1638, AKKU
4
[...]
5
ldi    AKKU, (1<<CLK_PIN)
6
out    PORT_1638, AKKU

Die Schleife funktioniert so wie ich das möchte. Nach dem LOW-Setzen der 
Clock-Leitung sehe ich allerdings viel Müll im LA. Sind das Glitches?
Wie kann ich das vermeiden? Wenn ich statt out z.B. sbi und cbi 
verwende, ist es genauso.

Der Screenshot zeigt den Übergang von HIGH nach LOW. Die 18 Peaks kann 
mich mir nicht erklären und halte sie daher für Glitches...

Es sollte zwar nicht stören, da das Clocksignal >400ns sein muss aber 
ich finde es dennoch unschön...

Wäre für einen Tipp dankbar.
LG
Ralf
Angehängte Dateien:
Gast #5021531
Schau dir das Signal mit einem analog-Oszi an. Glitches haben die 
Prozessoren bei Programmausführung nicht, soweit ich weiß (sollten sie 
nicht haben-> Fehlverhalten der Hardware).

Kann es sein, dass der Trigger-Spannungslevel zu klein, oder zu hoch 
ist, so dass auch auf Leitungsreflexionen getriggert wird?

Wie hoch ist die Schaltfrequenz?
Wie lang ist die Leitung, die geschaltet wird?
#5021539
Ralf J. schrieb:
> und halte sie daher für Glitches

Das sieht eher nach "Ringing" aus, als nach Glitches. Wie lang ist das 
Kabel? Abschluss? Masse-Verbindung? Schaltung allgemein?
Evtl. hilft schon ein Serienwiderstand am Ausgang, um die 
Flankensteilheit zu reduzieren bzw. den niederohmigen Ausgang etwas 
besser an die 100+x Ohm Wellenwiderstand des Kabels anzupassen.
OP #5021570
berliner schrieb:
> Schau dir das Signal mit einem analog-Oszi an.

Ich habe leider nur ein DSO...

>
> Kann es sein, dass der Trigger-Spannungslevel zu klein, oder zu hoch
> ist, so dass auch auf Leitungsreflexionen getriggert wird?

Das ist Vcc = 5V

>
> Wie hoch ist die Schaltfrequenz?

Eine Periode hat ungefähr 60us. Ich habe mal Delays eingebaut und damit 
die Peaks reduziert. Bei 50us-Delays sind nur noch 4 Peaks zu sehen.

> Wie lang ist die Leitung, die geschaltet wird?

Im Moment hängt nur der LA dran. Ca. 15cm...
#5021656
Hi

Danke für's Feedback.
Wäre aber um einiges schneller gegangen, wenn der gesamte Code im 
Start-Post gewesen wäre.

Klar ist Das ein sehr banaler Fehler gewesen und kommt natürlich normal 
nie vor - aber gerade in der Routine verstecken sich die meisten banalen 
Fehler.

MfG

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.