Generelles zu den I2S Soundkarten und den verfügbaren Einplatinencomputern.

  • Hallo Forum.


    Da ich diverse Problem mit der I2S Verbindung von Zero mit dem Audio Injector habe und diese Konfiguration nicht zum Laufen kriege, habe ich mich einmal im Netz umgesehen was es sonst noch an Einplatinencomputern gibt und wie es mit einer I2S Schnittstelle bei den diversen Einplatinencomputern aussieht.


    Zum ersten muss man feststellen, das bezüglich der Funktionsweise der auf den Computern implementierten I2S Schnittstelle nur sehr dürftige Informationen gibt. Es gibt einige die haben für die I2S Schnittstelle eine eigene Kontakleiste, es scheint aber, das geht aus diversen Kommentaren in den verschiedenen Foren hervor, das diese auch nur eingeschränkt funktionsfähig sind. Anscheinend ist keine dieser Schnittstellen fähig den jeweiligen Einplatinencomputer als Slave über die I2S Schnittstelle mit dem ADC als Master zu verbinden.

    Mir scheint es gibt keinen einzigen Einplatinencomputer dessen I2S Schnittstelle ohne irgendwelche Verbiegungen und Sonderlösungen funktioniert.

    Es gibt auf den Einplatinencomputern keine einzige I2S Schnittstelle die ALLE der I2S Schnittstelle möglichen Betriebsweisen aufweist.


    Das wirft ein schlechtes Licht auf alle die Einplatinencomputer, keiner ist solide konstruiert,

    alle sind nur mit heißer Nadel gestrickt.


    Hier im Forum gibt es einige die Anfragen gestellt haben bezüglich einer Audio Nutzung an der I2S Schnittstelle.

    An der geringen Zahl von Antworten ist schon ersichtlich das es dazu nur wenig Anwender gibt die fundiertes zu dieser Problematik beitragen können.


    Eine ideale Lösung wäre es wenn der Zero in Verbindung mit dem Audio Injector funktionieren würde. Schon wegen des sparsamen Stromverbrauches der beiden Platinen, könnten diese beiden Platinen ein ideales Gespann sein um in Batteriegeräten messtechnisch oder als Audiobaustein genutzt zu werden.


    Ich denke die einzige Lösung ist es wenn der Zero einen eigenen in C programmierten Treiber bekäme der die GPO Schnittstelle vollständig zur I2S Schnittstelle umfunktionieren würde.


    Derzeit habe ich dieses Projekt erstmal auf Eis gelegt, ich versuche derzeit auf einem neuen Rechner ein reines Linux System, Ubuntu, zu installieren.

    Als Einsteiger in dies Thematik bin da ersteinmal vollständig in Anspruch genommen.

    Ich hoffe ich krieg es hin!


    Aber vielleicht gibt es noch andere in diesem Forum die Interesse an einer Lösung haben und um den Zero mit dem Audio Injector zu betreiben.


    Wenn es einem gelingen würde und er die entsprechenden Schritte einfach und klar hier dokumentieren würde oder sogar ein Image seines Zero hätte, das wäre toll!!!!!


    Gruß

  • Was fehlt denn so an den i2S-Schnittstellen? Das sind doch bloss drei Leitungen, eine mit dem Clock, eine mit den Daten und ein Word select.


    Alles andere wird ueber einen anderen Bus gesteuert.

  • Hallo Tell,


    ein ADC sollte seinen Takt von dem eigenen Frequenzgeber auf seiner Karte gesteuert werden und nicht von einem per Schnittstelle angeschlossenen Computer der einen Takt übermittelt

    Bei der Betriebsart, bei der der Takt vom Computer kommt, wird die Soundkarte als Slave betrieben.


    Eine bessere Methode um die Soundkarte zu betreiben ist es bei der ADC den Takt von der auf der Soundkarte befindlichen Taktgeber zu verwenden.

    Bei dieser Betriebsart ist die Soundkarte der Master und gibt die Taktfrequenz auf den I2S Bus. In Folge muss der Computer als Slave an dem I2S Bus laufen und dem Takt entsprechend mit Interrupts reagieren.


    Und da scheint das Problem zu liegen, so wie es aussieht können alle Einplatinenrechner mit der I2S nicht als Slave laufen.


    Bei den RPI‘s gibt es keine I2S Schnittstelle, da muss die GPIO Schnittstelle völlig neu programmiert werden.

    Ich weiß nicht ob es möglich ist einen Interrupt auf ein Pin der GPIO zu legen,


    Gruß

  • Hallo Fritz1,

    Bei den RPI‘s gibt es keine I2S Schnittstelle, da muss die GPIO Schnittstelle völlig neu programmiert werden.

    Ich weiß nicht ob es möglich ist einen Interrupt auf ein Pin der GPIO zu legen,


    Gruß

    wo sollte da ein Problem sein? Natürlich kann man auf dem RPi beliebige Treiber für Schnittstellen programmieren. Und das auch noch auf beliebigen Pins.

    Und wenn man 31 Interrupts auf den GPIOs nutzen kann, warum sollte es dann nicht mit einem einzigen gehen?


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • > und dem Takt entsprechend mit Interrupts reagieren.

    Aus der Spezifikation: max clock period 440ns -> ein Interrupt mindestens alle 440ns


    Ob der Raspi das wohl schafft?

    Und wenn doch: wieviel Leistung bleibt fuer den Kernel und seine Prozesse noch uebrig?


    Ich hab so eine Ahnung warum diese Betriebsart nicht vorgesehen ist...

  • Der Autor, der den Slave Treiber für den Zero programmiert hat, meinte irgendwo, das der Zero damit so beschäftigt sei, dass er für weitere zusätzliche Aktionen keine ausreichende Rechenleistung hätte.


    Es würde reichen wenn ein Zero den Injector betreibt und steuert. Für weitere Aktionen habe ich einen zweiten Zero vorgesehen der den ersten Zero der den Injector hat, über Schnittstelle oder Wlan steuert.

  • Hallo Leute,


    bei Github gibt es den Kernel für RPI hier, https://github.com/raspberrypi/linux.


    Habe den Kernel geklont und nach einiger Zeit bei der Installation eine Fehlermeldung bekommen.


    Habe dann den Kernel auf dem Windowsrechner als zipfile runtergeladen und dort entpackt.

    Resultat auch eine Fehlermeldung.

    Meiner Meinung nach ist der RPI ein Griff in die Sch..., hat mir nur die Zeit geraubt.

    Werde das Ding in die große Tonne hauen.


    Gruß

  • Meiner Meinung nach ist der RPI einGriff in die Sch..., hat mir nur die Zeit geraubt.

    Werde das Ding in die große Tonnehauen.

    Hallo Häretiker Fritz1,


    Weil Du eine für den Pi gebaute Soundkarte (Hardware: Works with the Raspberry Pi2, Pi3 and Zero) nicht zum laufen bekommen hast? Weil Du mit $unbekannte_Fehlermeldung einen Kernel nicht entzippen und/oder installieren kannst? Nun, zumindest letzteres erfordert ein gerüttelt Maß an Wissen. Zumindest darum, wie (und mit welchen ungeahnten Seiteneffekten) man rpi-update ausführt. Vielleicht hast Du aber auch nur falsche Vorstellungen....


    Eine Bitte, bevor Du den RPi wegschmeißt, gib ihn doch bitte an jemanden weiter, der Spaß daran hat. Danke.