Latenz/Slew-Rate

Gast #4822160
Hi

Ich war der Meinung, daß ATmegas (8er?) es nicht schaffen, einen I/O-Pin 
mit maximaler Geschwindigkeit zu toggeln. Also wenn man in C
1
while (1)
2
 PORTA ^= (1 << PA1);

schreibt, schafft es der Ausgang nicht, saubere Flanken und Pegel zu 
generieren. Ist das (noch immer) so, war das nur "früher" oder liege ich 
völlig falsch?
Gast
du liegst falsch (heute und auch früher schon). Seinen Pin alleine kann 
der µC schnell genug umschalten (von Ausnahmen wie Open-Kollektor-Pins 
abgesehen).

Die Sache wird anders, wenn du eine (kapazitive) Last an den µC-Ausgang 
hängst. Je nachdem, wie stark diese Last den Ausgang fordert, kann das 
von dir beschriebene Verhalten auftreten. Dabei kann ggf. auch schon der 
Eingang eines Oszis samt der Kapazität der Messleitungen schon eine zu 
große Lasstkapazität darstellen.
Und wenn man Typen mit 64MHz Timer verwendet, dann kommt man mit dem 
Timer-Ausgang bis 32MHz Pinfrequenz. Wenn man da schlechte Kurven 
kriegt, dann liegt das nicht am µC, sondern an Layout, Anschluss oder 
Messquipment. So sollte man nicht erwarten, mit einem normalen Tastkopf 
mit Masseclip ein blitzsauberes Rechteck zu bekommen.
Ich hatte mal einen Tiny gebaut, dessen Timer-Ausgang per Poti auf 
~35MHz durchstimmbar war. Und um dem noch etwas mehr Pfeffer zu geben 
war noch ein 74AC00 dahinter - in DIL-Gehäuse auf Lötpunktraster, also 
"leicht" suboptimal.

Mit einem normalen Billigtastkopf, mit dem üblichen Masseclip-Anschluss, 
kam sowas bei 20MHz heraus:
https://www.mikrocontroller.net/attachment/27258/74AC-Ausgang.PNG

Mit anderen Tastköpfen und direktem Masseanschluss am Tastkopfschirm, 
statt Masseclip, sah das dann schon deutlich besser aus. Wobei das 
Messequipment immer noch nicht optimal war (100MHz Oszi bei 20MHz 
Rechteck hat eben Grenzen, meine Fähigkeiten als Tastkopfbauer auch):
https://www.mikrocontroller.net/attachment/27312/Nebeneinander.png
https://www.mikrocontroller.net/attachment/27319/Nebeneinander2.png

Das Signal direkt am Ausgang des AVR sah zwar deutlich besser aus, weil 
es etwas dezentere Flanken als der 74AC00 hatte. Aber es bleibt das 
Problem, dass man in solchen Bereichen einige Gedanken in das 
Messequipment investieren sollte. Wer misst misst Mist.
Gast
@ Rufus @ Achim

Mag einer von Euch bitte mit einigen Worten erklären, warum 
Open-Kollektor-Ausgänge grundsätzlich langsamer als Totem-Pole-Ausgänge 
sind? Oder einen Link auf eine Erklärung posten?
Leider finde ich da auf die Schnelle nichts im Internet.

Das wäre nett.
Öh? schrieb:
> Mag einer von Euch bitte mit einigen Worten erklären, warum
> Open-Kollektor-Ausgänge grundsätzlich langsamer als Totem-Pole-Ausgänge
> sind?

Ein aktiver Pullup liefert mehr Strom als ein passiver. Mit passivem 
Pullup gibts bei nennenswerter kapazitiver Last bei der ansteigenden 
Flanke die übliche R/C-Ladekurve.

Der obere Transistor des Ausgangs eines AVR hat bei 5V Versorgung einen 
Innenwiderstand von um die 30 Ohm. Extern einen 30 Ohm Pullup an einen 
Open Drain Ausgang zu hängen ist nicht ratsam, jedenfalls nicht bei 
low-Pegel.

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.