SPI-Protokoll manipulation

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Morgen liebe Community,

    mein Ziel ist es eine Bit-folge von 3200 bits ohne delay mit einer Geschwindigkeit von 2 Mb/s raus zugeben.
    Zurzeit gibts ein Period-delay nach 8Bits.

    Mein erster Ansatz war es über einfaches toggel der PINS das Protokoll zu generieren, funktioniert nur ansatzweise.

    Zweiter Ansatz über eine ISR über einen externen Clock die PINS zuschalten, funktioniert nur bei niedrigen Frequenzen.

    Dritter Ansatz SPI-Protokoll umschreiben.

    Jetzt meine Frage, gibt es eine Möglichkeite die Delays zwischen den Bytes vom SPI Protokoll zu entfernen oder die Bits-Per-Word auf 3200 zusetzen.

    Zurzeit wird wirinigPi benutzt, die wiringPiSPI.c datei wurde schon umgeschrieben und in mein Programm implementiert.
    Funktioniert nicht...:wallbash:


    Bräuchte Hilfe.:helpnew:

    Mfg

    Seme

  • Hallo.


    Jetzt meine Frage, gibt es eine Möglichkeite die Delays zwischen den Bytes vom SPI Protokoll zu entfernen ...

    das wird wohl nichts, da das SPI Protokoll bestimmte start/stop Bedingungen nutzt, damit es überhaupt funktioniert.


    ...oder die Bits-Per-Word auf 3200 zusetzen.

    klar geht das, wenn's denn der slave kapiert.

    das ist ein Auszug aus der pigpio Lib.

    gruß root

    Einmal editiert, zuletzt von root (19. März 2015 um 19:19)

  • Hallo.

    wie ? :angel:

    also der slave wird es kapieren, wenn mein Bit-folge korrekt ist.

    Hatte ich doch oben angegeben, aber... denke jetzt versteh ich, was du meinst.

    Die oben angegebenen Beispiele senden n Bytest pro Sequenz unter Einhaltung des Protokolls,(also start/stop Sequenz pro Byte).
    Diese start/stop Sequenz per Byte (und damit Wartezeit) willst vermeiden ?

    Klaro geht das auch: :thumbs1:
    Schreibst das SPI Protokoll so um, dass ne saubere Startsequenz kommt, und die Slave's die Lauscher aufstellen.
    Dann presst du die n Kilo-bytes hintereinander raus... wenn fertig, ne saubere Stopp-Sequenz .
    Und das alles ohne lästige Pause ... :bravo2:

    Das hat aber paar kleine Konsequenzen:
    1. Hat dann aber mit SPI nix mehr zu tun.
    2. "Normale" Slaves's werden dann so dastehen : :stumm::fies::auslachen::huh::wallbash: ...wenn's Deiner kapiert... warum nicht :)


    gruß root

    Einmal editiert, zuletzt von root (19. März 2015 um 23:03)

  • Naja ... für mich wirft sich die Frage auf: wozu das SPI umstricken?
    Da schreib' ich doch gleich was eigenes und gehe über die GPIOs ... weil - wie root schon treffend bemerkte - das nix mehr mit SPI zu tun hat.

    Dürfte imho aber nicht ganz so einfach werden ...
    //EDIT:
    was ich vergass ... beim RPi bedienen die Standard-Pins für SPI einen SPI-Controller ... da dürfte es schwierig bis unmöglich werden, da etwas zu ändern.
    also bleibt m.E. eh nur eine eigene SW-Lösung ...

    cu,
    -ds-

  • Moin -ds-


    //EDIT:
    was ich vergass ... beim RPi bedienen die Standard-Pins für SPI einen SPI-Controller ... da dürfte es schwierig bis unmöglich werden, da etwas zu ändern.
    also bleibt m.E. eh nur eine eigene SW-Lösung ...

    ...was ich ja letztlich damit meinte ...:thumbs1:

    gruß root

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!