STM32L4 - DMA Puffer Leer

OP #7713329
Lesenswert?
• ▲
▼

Hi,

ich bin gerade an einem Projekt mit dem STM32L4 und SAI zu gange.

An einer Stelle komme ich nicht weiter - Wenn ich SAI mit DMA nutzen möchte ist der Puffer im leer "000".

Die Project HW ist ein custom board mit einem WM8904 Codec der via I2S (SAI) angesprochen wird. Der STM32 ist hier der Clock Master.

Die WM8904 Config und auch die SAI Config scheinen in soweit in Ordnung zu sein das ich mit dieser Schleife Daten lesen und schreiben kann. In dem Fall sogar hören ;).

define BLOCK_SAMPLES 64

static uint8_t txbuf[BLOCK_SAMPLES4]; static uint8_t rxbuf[BLOCK_SAMPLES4];

while(1) { stat = HAL_SAI_Receive(&hsai_BlockB1, (uint8_t*) txbuf, sizeof(txbuf) / 2,10); stat = HAL_SAI_Transmit(&hsai_BlockA1, (uint8_t*) txbuf, sizeof(txbuf) / 2,10); }

Soweit so schön.

Wenn ich dann aber auf DMA umbaue: if (HAL_OK != HAL_SAI_Receive_DMA(&hsai_BlockB1, (uint8_t*) rxbuf, sizeof(rxbuf) / 2)) { DebugLog("HAL_SAI_Receive_DMA fail 1\r\n"); Error_Handler(); } if (HAL_OK != HAL_SAI_Transmit_DMA(&hsai_BlockA1, (uint8_t*) txbuf, sizeof(txbuf) / 2)) { DebugLog("HAL_SAI_Transmit_DMA fail 1\r\n"); Error_Handler(); }

Und wenn ich einen Breakpoint in: void HAL_SAI_RxCpltCallback (SAI_HandleTypeDef * hi2s) { UpdatePointer2 = 50; } void HAL_SAI_RxHalfCpltCallback (SAI_HandleTypeDef * hi2s) { UpdatePointer2 = 0; } setze ... wird dieser zwar ausgelöst

Jedoch sind rxbuf und txbuf leer.

Habt ihr eine Idee ? Welche Details werden noch benötigt ?

Grüße, M

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.