2 Bytes übertragen

OP #481233
Lesenswert?
• ▲
▼
Hallo,
folgendes Problem: Ich muss periodisch 2 Byte von einem SPS System
an einen AVR senden. Hierzu stehen mir 4 Ausgänge an der SPS zur 
Verfügung.

Zur Zeit ist Ausgang 1 der Takt, Ausgang 2 /SS und Ausgänge 3 und 4
Byte 1 und Byte 2. Bei jeder Flanke am Taktausgang werden die an den
Ausgängen 3 und 4 anstehenden Signale in den AVR eingelesen, so dass 
nach
4 Takten beide Bytes eingelesen sind.
Mir fällt keine schnellere Methode ein die Bytes zu übertragen oder gibt
es noch einen besseren Weg?

Jürgen
Gast #481244
Lesenswert?
• ▲
▼
4 Takte ? Eher nicht. 8 Takte min.
Da wuerde sich das SPI anbieten. In nur einer Richtung mit : Clk, 
DataIn, CS. Da waeren 2 byte nach 16 takten gelesen. Mit 2 DataIn 
parallel waeren's noch 8 Takte.

O.
Gast #481245
Lesenswert?
• ▲
▼
Mit dem Takt an einem INT-Eingang sollte man das machen können. Beim AVR 
kann man (bei manchen) externen Interrupt-Eingängen die Flanke auf 
"egal" einstellen (beide Richtungen). Dann braucht man nur noch in der 
ISR die beiden Dateneingänge abfragen (und in das jeweilige Byte 
reinschieben). Eine Grenzfrequenz wird es aber auch hier geben...
Wenn der Controller nichts anderes macht, kann man den /SS-Eingang auch 
auf einen externen Interrupt-Eingang legen und den auf die fallende 
Flanke stellen.
Gast #481278
Lesenswert?
• ▲
▼
>Da ich nicht schneller
>als 5ms takten kann dauert der komplette Übertrag immerhin 35ms.
Deine SPS kann nicht schneller?
Da hat der AVR ja Zeit ohne Ende...

>Aber mir fällt keine optimalere Lösung ein.
Höchstens noch, die Daten parallel statt seriell zu übertragen.
Wo ist denn das Problem bei dieser Übertragungsart? Sie ist relativ 
schnell und pinsparend. Eigentlich doch optimal.
Gast #481280
Lesenswert?
• ▲
▼
@Jürgen Berger

>wie gesagt, z.Zt. lese ich mit jeder Flanke ein und habe die Daten
>nach 4 Takten im AVR. Das funktioniert sehr gut. Da ich nicht schneller
>als 5ms takten kann dauert der komplette Übertrag immerhin 35ms.

Naja, so ne SPS ist ja auch schnarchlangsam. Mach doch lieber RS232. 
Dann hast du weniger Befehle in der SPS. Allerdings brauchst du dann 
einen sauberen Timer. Daran wirds wohl scheitern.

>Aber mir fällt keine optimalere Lösung ein.

Schönes Unwort. ;-)
Entweder ist eswas optiomal oder nicht. Optimal kann man nciht steigern. 
Man kann nur etwas verbessern.
Der Dativ ist dem Genitiv sein Tod.

MfG
Falk
OP #481336
Lesenswert?
• ▲
▼
> Da hat der AVR ja Zeit ohne Ende...
das ist auch gut so, es läuft noch ein DMX Transmitter und ein
RC5 Empfänger "nebenbei"


> Wo ist denn das Problem bei dieser Übertragungsart? Sie ist relativ
> schnell und pinsparend. Eigentlich doch optimal.
Ja, ich denke auch, dass es optimal ist. Vielleicht kann ich auf der
SPS Seite noch etwas verbessern.

Jürgen

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.