www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Wann schaltet Ausgang


Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es eine genaue Regel beim AVR (ATtiny 12), zu welchem Takt ein
Ausgang beim Befehl SBI/CBI ein- oder ausschaltet. Meine bisherigen
Beobachtungen waren, dass bei SBI nach einem Takt der Ausführung dieses
Befehls geschaltet wird, bei CBI nach dem zweiten Takt. Anders
ausgedrückt, SBI schaltet in der Mitte des Befehls, CBI schaltet am
Ende des Befehls. Aber auch nicht ganz genau. Und vor allem, wie mir
scheint, manchmal anders.

Ich brauche ein sehr genaues Timing für eine Step-Up Regler Anwendung,
deshalb ist das wichtig.

Wie sind eure Erfahrungen?

Winfried

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

beide Befehle benötigen laut Instruction Set zwei Taktzyklen. Wann
innerhalb dieser Zeit der Ausgang tatsächlich schaltet, hängt wieder
von den internen Laufzeiten ab.

Wie ist Dir Deine Beobachtung eigentlich gelungen? Man müßte hierfür
das Ausgangssignal relativ zum Quarztakt beobachten und dabei aber
genau wissen, bei welchem der Quarztakte genau derjenige Befehl
ausgeführt wird (z.B. mittels Testprogramm, bestehend nur aus CBI,
SBI-Befehlen). Nimmt man andere Ausgänge hierfür als Referenz, hätte
man dort auch wieder die interne Laufzeit in der Messung mit drin.

Gruß

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
naja ich hätte das ganze in Assembler programmiert und mir dann
anstelle des Quarzes einen taster an Xtal 1 gegen gnd geschaltet und
dann kann man den AVR so langsam laufen lassen wie man will ging
jedenfals bei den laten :-) ....

mfg
Moritz

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
damit wird doch auch geworben: bis auf 0Hz heruntertaktbat

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei das heutzutage jeder uC oder CPU ist...
Das war nur damals anders, als Dynamische Speicher verwendet wurden.

Autor: m. merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wann die avr port`s schalten ist doch im datenblatt recht genau
dokumentiert, wenn man sich die port-logik und das timing mal genau
ansieht.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Winfried und Moritz,

wenn man quasi-statisch bei 0...10 Hz beobachtet, spielt zumindest die
interne Laufzeit im Bereich einiger Nanosekunden, wie ich das oben
gemeint habe, keine Rolle. Dann braucht eben der eine Befehl nur einen
Zyklus und der andere zwei davon. Für das ganz genaue Timing im
Step-Up-Regler dürfte diese Laufzeit dann wohl eher relevant sein.

Gruß

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie ist Dir Deine Beobachtung eigentlich gelungen?

Wenn man dies programmiert:
CBI PORTB, 3
nop
nop
nop
;-----Start
SBI PORTB, 3
CBI PORTB, 3
;-----End

dann ist der Pin bei 1MHz 3 us eingeschaltet.

Wenn man dies programmiert:
SBI PORTB, 3
nop
nop
nop
nop
;-----Start
CBI PORTB, 3
SBI PORTB, 3
;-----End

dann ist der Pin nur 1us ausgeschaltet. (Nur der Code von Start bis
Ende ist für die Messung interessant, davor nur Init).

Ich bin mir nicht ganz siche, aber ich denke, damit kann man eindeutig
sagen, dass es sich so verhält, wie beschrieben. Allerdings hatte ich
jetzt eben auch merkwürdige andere Konstellationen, wo die Sache um 1us
verschoben war. Entweder ich hab Mist programmiert oder das Timing ist
nicht immer identisch.

Winfried

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn Du den AVR auf 8MHz oder höher taktest?
Dann ist ein Befehl nur 125ns oder weniger lang.
Mußt dann nur die kürzeren Ausführungszeiten beachten.

Gruß
Andi

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und wenn Du den AVR auf 8MHz oder höher taktest?

Geht nicht beim ATtiny12 mit 1.8V.

Ich werde nochmal etwas experimentieren, um herauszufinden, wie es sich
genau verhält.

Winfried

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir doch mal das obj-File oder List-File an, ob er wirklich das
übersetzt, oder ob er nicht was wegoptimiert.

Ehrlich gesagt kann ich mir nicht vorstellen, das Set und Clr
verschieden lang dauern oder das zu verschiedenen Zeiten machen.

Aber wer weiß?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.