Latenz/Slew-Rate

Gast #4822160
Lesenswert?

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 #4822167
Lesenswert?

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.
#4822186
Lesenswert?

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.
#4822226
Lesenswert?

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 #4822236
Lesenswert?

@ 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.
#4822240
Lesenswert?

Ö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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren