cancel
Showing results for 
Search instead for 
Did you mean: 

DMA option for I2S on STM32H7 disappeared in STM32CubeIDE 1.7.0 + STM32H7 FW 1.9.0

dpp
Associate II

i am bit flabbergasted to find that it became impossible to selected DMA channels for I2S.  when i try to select a DMA channel for I2S peripheral the IDE responds with a scruffy "No available DMA requests for this peripheral"

0693W00000D0cqHQAR.png 

i am running the following setup:

  • STM32CubeIDE 1.7.0
  • STM32H7 FW 1.9.0
  • macOS 11.5

i can confirm that I2S + DMA used to work in the past on older versions of IDE + FW.

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @gbiz​,

First let me apologize for the inconvenience that this regression may cause . As already mentioned, this issue was reported internally to be fixed as soon as possible.

I can assure that the fix will be available in a near future release. I'll surely keep you posted with the updates.

Meanwhile, you can use the previous STM32CubeMX version 6.2.1 (STM32CubeIDE 1.6.1) with the correct behavior.

Even though this reply doesn’t directly solve the issue, I’m marking it as Best, since it will help clarify the current situation for other customers with the same question. I will post an update here once the issue has been fixed.

Khouloud.

View solution in original post

9 REPLIES 9
dpp
Associate II

PS i can also confirm that DMA is still available in STM32CubeIDE 1.6.1 … hmmm.

Amel NASRI
ST Employee

Hi @dpp​ ,

I confirm the behavior you observed. I'm checking if there is a possible explanation or it is a regression.

Internal ticket number: 111214 (This is an internal tracking number and is not accessible or usable by customers).

-Amel

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

gbiz
Associate

Is there any update on this ?. I'm experiencing the same issue with CubeMX 6.3.0, STM32F7 FW 1.9.0.

Hi @gbiz​ ,

This was confirmed as a regression in current STM32CubeMX release (6.3.0).

@Khouloud OTHMAN​  will keep you informed if there is any update.

-Amel

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi @gbiz​,

First let me apologize for the inconvenience that this regression may cause . As already mentioned, this issue was reported internally to be fixed as soon as possible.

I can assure that the fix will be available in a near future release. I'll surely keep you posted with the updates.

Meanwhile, you can use the previous STM32CubeMX version 6.2.1 (STM32CubeIDE 1.6.1) with the correct behavior.

Even though this reply doesn’t directly solve the issue, I’m marking it as Best, since it will help clarify the current situation for other customers with the same question. I will post an update here once the issue has been fixed.

Khouloud.

toMiController
Associate

Confirmed, but even worse in my case it deleted the DMA part when opening an older, working project. Wasted one hour of my weekend to research this bug. Thus I have to assume STM never tests with real projects (like with I2S) together with new cube releases. simply inacceptable.

Bereg
Associate

Hi @Khouloud OTHMAN​  ,

Per your advice, I just downgraded to 1.6.1 which gave me back the DMA option. Thanks! But there is another blocker issue here. When I select Half-Duplex Master Receive I2S1 on STM32H753ZI with version 1.7, it enables I2S1_SDI as the data pin. On the other hand, 1.6.1 enables I2S1-SDO, which is so confusing. Those are different physical pins with different data directions (input vs output). Which version uses the right one? I guess a Receiver should use an SDI pin, but I need to use 1.7 for that - still no DMA option. Could you please recommend a Cube IDE version which hadles both the DMA option and the correct data pin?

Hi @Bereg​ ,

First let me apologize for the somewhat late reply. I can see your point, using STM32CubeMX version 6.2.1 there are only four available modes (which are Full Duplex Master/Slave and Half Duplex Master/Slave):

0693W00000FBlumQAD.jpg

When configuring the "Half-Duplex Master" for I2S, STM32CubeMX enables by default "Mode Master Transmit" mode three pins:

PA4   ------> I2S1_WS

PA5   ------> I2S1_CK

PA7   ------> I2S1_SDO 

Unfortunately even after changing the transmission mode to "Mode Master Receive", the pin configuration remains the same. This issue was detected and corrected in the latest CubeMX version 6.3.0 coming with six I2S1 Modes:

0693W00000FBm30QAD.jpg 

With this being said, next version of CubeMX will come with a fix for the DMA regression as well as the correct pin assignment. It will be available soon, I'll keep you posted with the updates.

Sorry for the inconvenience that this may cause.

Khouloud.

Hi @Khouloud OTHMAN​ ,

Fortunately I have found a quick fix for the SDO - SDI issue. Even if the GPIO Settings tab shows the wrong pin (SDO), I can activate the SDI on the pinout view. The pin color is yellow (instead of green), but it works. I have a bigger problem here: when I select Circular DMA mode, it does not work: HAL_I2S_Receive_DMA() freezes the microcontroller immediately. Normal DMA mode does not work for me as welI: if I call HAL_I2S_Receive_DMA() from HAL_I2S_RxCpltCallback() just to continue the audio reception, it seems to me that I receive much more DMA complete interrupts that I suppose to receive. I switched back to 1.6.1 because of the DMA, but I ended up working with interrupt driven I2S. Do you have any information about about this Circular mode DMA bug? When can I expect the update? Thanks!