mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wann gibt out die Daten aus ?


Autor: irgendjemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es irgendwo Angaben, zu welchem Zeitpunkt die Daten von einem out
Befehl bei einem mega8515 am Ausgang erscheinen ?
Da ich als Takt für ein synchrones Interface den uC Takt verwenden
möchte, müssen die Daten eine bestimmte Zeit vor der Taktflanke
anliegen, damit das ganze fehlerfrei läuft.

Dasselbe Probleme habe ich auch mit dem in Befehl: Werden die Daten in
der ersten oder zweiten Takthälfte gelesen ?

Autor: Remo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt nicht im Datenblatt nachgesehen, kann aber eigentlich nur in
der zweiten Takthälfte sein.
In der ersten Takthälfte werden die Daten am Portlatch angelegt und in
der zweiten werden sie reingeschoben und stehen somit am Port an.

Theoretisch könnte eine weitere Verzögerung drin sein, dann würde man
aber auf Probleme laufen, wenn direkt nach dem Out Befehl mit einem In
Befehl der Pin wieder eingelesen wird und davon hab ich noch nicht
gehört. Ergo muß es eigentlich stimmen.

Aber eben nur eigentlich. Da würd ich dir empfehlen das Datenbuch mal
ganz genau durchzustöbern.

ciao
Remo

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei den Megas wird es darauf hinauslaufen, dass der Input-Befehl noch
den alten Stand kriegt. Den einerseits dauert es bis zum Ende des
Taktes bis der Output reagiert, andererseits sorgen die Sync-Latches an
den Inputs dafür, dass ein direkt folgender Input-Befehl Daten kriegt,
die schon einen Takt alt sind. Diese Latches gibt's erst bei den
Megas, die AT90-er verhalten sich da anders.

Also: immer einen Befehl zwischen out und in, wenn einem die korrekten
Daten lieb sind. Steht auch so im Manual.

Autor: irgendjemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stelle meine Frage genauer:
Ich verbinde das Taktsignal des uC mit dem Clock Eingang eines 74HC574
(oder von mir aus auch ein AHC574). Den Eingang des Latches hänge ich
an Port A
Wenn ich nun Daten mit out porta, temp ausgebe, wann sind die Daten im
Latch ? Am Ende des Taktes bei dem out ausgeführt wird, oder einen Takt
später ?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Vermutung (das Datasheet ist da etwas vage): Mit Latch (573) am
Anfang des auf OUT folgenden Taktes, mit Register (574) am Ende davon.
Mit Register braucht's also 2 Takte zwischen OUT und IN.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja: Das bezieht auf einen idealisierten internen Takt. Was immer
extern als Takt zur Verfügung steht (XTAL1 oder CLKO) ist mehr oder
minder phasenverschoben, vielleicht auch invertiert. Nirgens in Atmels
Datasheets ist eine Beziehung zwischen dem Takteingang und einem
Ausgang definiert, d.h. wenn Du es genau wissen willst hilft nur ein
Oszi. Kann sich vielleicht auch von einer Generation zur nächsten
unterscheiden.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau das habe ich mal nachgemessen:
Die Daten erscheinen wenige ns hinter der fallenden Flanke beim mega8.
Nur ich hatte keine Idee, wie man messen könnte, ob es der Takt ist, in
dem out ausgeführt wird, oder der darauf folgende.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist diese Beziehung unabhängig von der Taktfrequenz?

Wenn ja, dann riecht es danach, als ob ebendiese fallende Flanke das
Ende vom OUT Takt ist. Und dass der externe Takt gegenüber dem im
Datasheet dargestellten internen Takt invertiert ist. Und man besser
nicht auf ebendiese Flanke ein Register taktet (metastability problem).

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um ein gewisses Gefühl für die Relationen von Takt und I/O-Zugriffen zu
bekommen, könntest Du externes RAM verwenden und die Taktzyklen nach
einem abgeschlossenen RAM-Zugriff zählen ...

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.