STM32 und I2S - SPI oder SAI

Gast #6044433
Guten Mittag!

Ich würde gerne eine kleine Schaltung mitsamt Audio CODEC aufbauen.
Dieser besitzt ein I2S Interface. Da ich einen STM32 benutzen wollte, 
habe ich die Anschlussmöglichkeiten recherchiert.
Scheinbar kann ich die Schnittstelle bei machen STM32 mit der SPI oder 
SAI aufbauen.
Was wären die jeweiligen Vor- und Nachteile beider Systeme? Irgendwie 
lässt sich im Internet wenig bis gar nichts dazu finden.

Besten Dank!
Gast
Harft Ros schrieb:
> Da ich einen STM32 benutzen wollte...

Dann lies zuvörderst das Manual etwas genauer. Die SAI-Cores sind im 
Allgemeinen etwas aufgemotzte I2S mit zusätzlichen Fifos. So etwas 
entspannt die Benutzung.

Die "gewöhnlichen" I2S-Cores bei den STM32 sind zumeist etwas erweiterte 
SPI-Cores und leider nur 16 bittig. Das macht Probleme, da du ja pro 
Sample (2x 32 Bit) vier Zugriffe benötigst. Das würde bei 192 ksps ne 
zierliche Interrupt-Rate von etwa 800 kHz ausmachen - ist also ohne DMA 
wie die Krätze. Die SAI-Cores sind m.W. zumeist 32 bittig und dank Fifo 
kann man es so einrichten, daß man tatsächlich nur Interruptrate = 
Samplerate hat. Was dabei an Takten für die Bearbeitung pro Sample 
bleibt, darfst du selber je nach deinem Ziel ausrechnen. Falls du mit 16 
Bit Samples zurechtkommst und einen M4F benutzt, kannst du ggf. dir 
dadurch Luft verschaffen, daß du die DSP-Befehle benutzt, bei denen du 2 
Samples pro Takt bearbeiten kannst. Aber das ist Festkomma und muß 
folglich passend skaliert sein.

Mein Rat: lies dir auch mal die Manuals von anderen Herstellern durch. 
Da findet sich gerade bei I2S bzw. SAI etwas besseres als bei STM32. 
Hier gab's doch neulich nen Thread über einen dafür passenden Chip von 
NXP oder Freescale mit 400 MHz Takt oder so ähnlich. Ach such einfach 
selbst danach.

W.S.
Gast
Ich habe den SAI verwendet, der ist auch ausschließlich dafü gedacht. 
Damit habe ich - mit wenigen Zeilen Code (ohne HAL versteht sich)  einen 
CS4344 (oder so) angesprochen. Hat wunderbar funktioniert.

SAI ist halt direktere Programmierung, als eine SPI zu einer i2s 
umzuwurschteln.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.