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
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.
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.
>4 Takte ? Eher nicht. 8 Takte min. Jede Taktflanke... das sind 2 Signale pro Takt. >Da wuerde sich das SPI anbieten. Das ist ein SPI...
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. Aber mir fällt keine optimalere Lösung ein. Jürgen
>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.
@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
> 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.