2012-03-07 06:22 AM
I configure SPI2 and I2S2_ext for running I2S in fullduplex mode
using DMA1_Stream4 and DMA1_Stream2. DMA1_Stream4_IRQHandler called and i2s tx is working fine, but DMA1_Stream2_IRQHandler not called at all. Please help me to find the error. #i2s-dma #stm32f4-dma-i2s2_ext_rx2012-03-10 07:15 AM
I spent couple of hours on the same problem. Finally I wrote a test to find right DMA channels connections. It showed there is an error in the STM32F4 reference manual (RM0090 ver 1).
On page 164, table 20 DMA1 request, row Channel 2, column Stream 2 reads I2S2
_EXT_RX and should read I2S3
_EXT_RX Does read this forum anybody from ST tech support? Or should I resend the doc error as tech support request? Only DMA1 Stream3 Ch3 can be used for I2S2_EXT_RX.2012-03-10 03:13 PM
Dear Gentlemen,
Thank you for the valuable post and finding. much appreciated. We will check and correct that table for I2S2/I2S3 DMA connections. Cheers, STOne-32.2012-03-11 06:35 AM
@tomas v
Thank you very much2012-07-22 10:19 AM
Hi Tomas,
When you were testing the DMA channels - did you actually get the DMA channel for I2S3ext_RX to work? I'm curious because I have spent a couple of days getting a 4-channel ADC up and running using I2S3 and I2S3ext (both in RX mode). Polling both peripherals works but I can only get DMA going for SPI3_RX. The DMA buffer on the I2S3_EXT_RX channel is never filled with data.Thanks,Dennis
2012-07-24 08:48 AM
Dennis,
Table 20 indicates, that there is one more DMA1 request input for I2S3_EXT_RX, namely at Stream 0, Channel 3; so there should be two combinations available for your setup (S0Ch0+S2Ch2, or S2Ch0+S0Ch3). Did you try both of them? Just to be sure, you double-checked that RXDMAEN bit is set in the CR2 register of the I2S3_Ext controller, right? JW