mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Paralleles Interface zum Datentransport


Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich will in eine Richtung besonders schnell Daten verschicken. Dabei 
handelt es sich um bytes die verschickt werden (wie UART). Parallel, 
weil genug Pins vorhanden, einfach.

Allerdings habe ich sowas noch nie gemacht. Mein Konzept sieht so aus:
Das Interface ist nur unidirektional!

Mega32:
Enable Pin High
PORTA = aktuelles Zeichen
Enable Pin Low

Parallax Propeller:
Wenn Enable High
Byte lesen

Macht das Sinn oder wird das nicht funktionieren? Danke.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mega32:
PORTA = aktuelles Zeichen
Enable Pin High
Enable Pin Low

Parallax Propeller:
Wenn Enable High
Byte lesen

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muss am mega32 ein delay zwischen EN und ~EN? Denke ja?!

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ungünstigstenfalls ist der Impuls einen AVR-Takt lang. Ob das Deiner 
Parallax-Software reicht, muß Du wissen. Sonst eben entsprechend lang 
warten.

Gruß aus Berlin
Michael

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ungünstigstenfalls ist der Impuls einen AVR-Takt lang. Ob das Deiner
>Parallax-Software reicht, muß Du wissen. Sonst eben entsprechend lang
>warten.

Oder noch einen Pin für ein Handshake spendieren.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so ich hab das ganze mal aufgebaut und siehe da es funktioniert schon 
halbwegs. Ich hab es erst ohne delay ausprobiert und es funktionierte 
überhaupt nicht. ein delay von ca. 200µs zwischen EN und ~EN hilft. 
Allerdings schleichen sich fehler ein. Ist eben nicht ganz synchron. Wie 
finde ich die korrekte Delay zeit bzw. geht das mit dem handshake?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, "Bescheid" sagen halt. ;-)

AVR legt Daten auf den Port und setzt dann Strobe aktiv.
Der Parallax setzt Busy aktiv, wenn er den Strobe erkannt hat, der AVR 
nimmt Strobe zurück. Der Parallax nimmt Busy zurück, wenn er fertig ist 
und neue Daten annehmen kann.

Die zeitlich günstigste Version hängt vom Verhalten des Parallax ab.
Wenn der auf Strobe aktiv annehmbar schnell reagiert, ist es vermutlich 
am einfachsten, wenn der AVR auf Busy aktiv wartet und dann Strobe 
zurücknimmt.
Vor dem anlegen des nächsten Bytes muß eben Busy auf inaktiv getestet 
werden und notfalls gewartet.

Da das ganze ja offenbar schnell sein soll: wenn die Daten Blockweise 
anfallen einfach als Schleife mit Warten auf die Reaktion abarbeiten.

Zeitkritische Sachen kann der AVR ja im Interrupt abarbeiten, das 
verzögert dann höchstens die Übertragung, stört sie aber nicht, die 
warten ja aufeinander. Muß batürlich auf der Parallax-Seite auch 
entsprechend den Gegebeheiten geregelt werden.

Gruß aus Berlin
Michael

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wird denn EN vom anderen Controller ausgewertet? Etwa gepollt?

Da bietet sich ein Interrupt an. Den dürfte der andere Controller in 
erheblich kürzerer Zeit als 200 µs bedienen können.

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.