cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H725 No SPI6/I2S6 NVIC ?

KRega.1
Associate II

Hey guys,

I see an spi6_it signal in the NVIC table in the reference manual RM0468.

I'm trying to use the NVIC interrupt for I2S6 and there is no tab for it in the MX Cube.

I'm also using I2S1,I2S2, I2S3 which have the NVIC and I'm able to use interrupt.

Is this just an MX cube problem? I also do not see the "Real Audio Frequency" and "Error between selected and real" numbers updated in the I2S6 tab. I'm using the same clock source for all I2S's.

If this is an error in MX cube, how would I setup an NVIC in code?

6 REPLIES 6
TDK
Guru

It appears to be a bug, unless I'm missing something. There is an entry for SPI6 interrupts in the vector table.

You would set it up just like the other code peripherals in there. Set it up with SPI3, for example, then duplicate the code and replace SPI3 with SPI6, hspi3 with hspi6, etc.

If you feel a post has answered your question, please click "Accept as Solution".

Well when I try to use I2S6/SPI6 handle with function: HAL_I2S_Transmit_IT(&hi2s6, Temp3, 2); does not work even with other handles that do work.

	 while(1)
	 {
			Temp[0] = NorthSpeakerSamples[NS_S];
			Temp[1] = SouthSpeakerSamples[SS_S];
			HAL_I2S_Transmit_IT(&hi2s1, Temp, 2);
 
			Temp1[0] = EastSpeakerSamples[ES_S];
			Temp1[1] = WestSpeakerSamples[WS_S];
			HAL_I2S_Transmit_IT(&hi2s2, Temp1, 2);
 
			Temp2[0] = NorthCoilSamples[NC_S];
			Temp2[1] = SouthCoilSamples[SC_S];
			HAL_I2S_Transmit_IT(&hi2s3, Temp2, 2);
 
			Temp3[0] = EastCoilSamples[EC_S];
			Temp3[1] = WestCoilSamples[WC_S];
			HAL_I2S_Transmit_IT(&hi2s6, Temp3, 2);
	 }

I know there is some additional code that is generated for the interrupt, but I cannot find in my files where MX generates this code. Anyone know where MX generates this code?

Initialization is in main.c and *_msp.c, interrupt handler is in *_it.c.
If you feel a post has answered your question, please click "Accept as Solution".

ok I found these and was able to get that code to work. Thanks!

Now I upgraded cubeMX from V6.2.1 to V6.3 and now All I2S settings have deselected "Master Clock Output" and I cannot select it anymore... I'm using Half-duplex Master Transmit mode which worked fine with V6.2.1 MX. Then I went back to older version of MX, but now the .IOC file does now work. wants to work only with V6.3....

What the hell is STMicroelectronics doing?

Hi @KRega.1​ ,

That looks like a regression issue with latest STM32CubeMX release.

I invite our STM32CubeMX Experts (@Khouloud ZEMMELI​  & @Khouloud OTHMAN​ ) to deeply check the reported issue and take relevant actions on this regard.

Sorry for any inconvenience this has caused for you.

-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.

Khouloud ZEMMELI
ST Employee

Hello @KRega.1​ ,

You're right, I have check from my side and I confirm the issues (: the Missed NVIC tab and the blocked Master Clock Output check-box).

Thank you for raising them to our attention and we're deeply sorry for any inconvenience that may have caused, they will be fixed.

For the problem linked to "Real Audio Frequency" and "Error between selected and real", if you still face any issue, please give me more details to be able to reproduce it.

Thanks again for your contribution, Khouloud