Paralleles Interface zum Datentransport

Gast #1342732
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.
Gast #1345556
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?
#1345575
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

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