Skip to main content
dpp
Associate II
July 26, 2021
Solved

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

  • July 26, 2021
  • 9 replies
  • 4484 views

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.

This topic has been closed for replies.
Best answer by Khouloud OTHMAN

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.

9 replies

dpp
dppAuthor
Associate II
July 26, 2021

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

Amel NASRI
ST Technical Moderator
July 27, 2021

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 "Best Answer" on the reply which solved your issue or answered your question.
gbiz
Visitor II
September 1, 2021

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

Amel NASRI
ST Technical Moderator
September 2, 2021

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 "Best Answer" on the reply which solved your issue or answered your question.
Khouloud OTHMAN
Khouloud OTHMANBest answer
Associate
September 2, 2021

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
Visitor II
September 12, 2021

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
Visitor II
October 1, 2021

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?

Khouloud OTHMAN
Associate
October 7, 2021

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.

Bereg
Visitor II
October 7, 2021

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!