Skip to main content
Associate III
March 27, 2024
Solved

STM32H730VBxx: no OCTOSPIM registers

A question of compehension:

I cannot find any of the OCTOSPIM registers - neither in STM32CubeMX, nor in the register list, read by STM32CubeProgrammer. Am I right, that's because in our chip, there's only one OCTOSPIM port?

(I would appreciate, if that was mentioned in the reference manual, that that whole section "OCTOSPI I/O manager (OCTOSPIM)" has no relevance for certain chip subtypes, with a reference to the data sheet.)

But then I ask: Why do I still have the OCTOSPI2 registers? Because "In the default out-of-reset configuration, all the OCTOSPI1 and OCTOSPI2 signals are mapped, respectively, on Port 1 and on Port 2." (reference manual). And since I cannot change that mapping, and since I have no OCTOSPIM2 port, what's the point in the OCTOSPI2 registers then?

Did I misunderstand / miss something?

This topic has been closed for replies.
KDJEM.1
KDJEM.1Best answer
ST Technical Moderator
March 28, 2024

Hello @pkoevesdi ,

Yes, the second view is taken from the STM32CubeIDE tool.

The OCTOSPI I/O manager is not a peripheral, so you can not see the "OCTOSPIM" in STM32CubeMX "categories" but you can configure it as shown in the below figure:

KDJEM1_1-1711535608248.png

 

And you can see this configuration in the generated code:

 

 sOspiManagerCfg.ClkPort = 1;
 sOspiManagerCfg.DQSPort = 1;
 sOspiManagerCfg.IOLowPort = HAL_OSPIM_IOPORT_1_LOW;
 sOspiManagerCfg.IOHighPort = HAL_OSPIM_IOPORT_1_HIGH;
 if (HAL_OSPIM_Config(&hospi1, &sOspiManagerCfg, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
 {
 Error_Handler();
 }

 

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.

6 replies

KDJEM.1
ST Technical Moderator
March 27, 2024

Hello @pkoevesdi ,

Could you please precise which STM32CubeProgrammer version are you using?

I made some tests with  STM32CubeProgrammer 2.14.0 and with STM32CubeIDE 1.14.0  and I can see the OCTOSPI I/O manager (OCTOSPIM) registers as shown in the below:

KDJEM1_0-1711531240176.png

KDJEM1_1-1711531432499.png

The registers view groups all registers supported in STM32H730 ( STM32H730AB STM32H730IB
STM32H730VB STM32H730ZB)

Note that STM32H730VBxx have one Octo-SP interface as mentioned in the datasheet.

KDJEM1_2-1711531783952.png

Thank you.

Kaouthar

 

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.
pkoevesdiAuthor
Associate III
March 27, 2024

I use STM32CubeProgrammer 2.16.0 and STM32CubeIDE 1.15.0.

Ok, I'm sorry, now I found it in the Programmer. I assumed (and wished) that the Peripheral list was alphabetically sorted, which it isn't, and further that a search for "octo" in the field left of it would show all "octo"-peripherals, which it doesn't.

Still, I can't see it in the MX:

pkoevesdi_0-1711533688365.png

Where can I find your second picture "register view"?

> Note that STM32H730VBxx have one Octo-SP interface as mentioned in the datasheet.

...and mentioned in my initial post. ;)

 

pkoevesdiAuthor
Associate III
March 27, 2024

> Where can I find your second picture "register view"?

Ok, found it, it's while debugging inside STM32CubeIDE, on the right side.

Ok, there I also found the OCTOSPIM register.

Now, I understand, why I don't see it in the MX view: because the parameters I set in "OCTOSPIx Mode and Configuration" configures the OCTOSPIM registers "in the background". That's why these don't have an own entry there. It's a sub function of OCTOSPI, not a main function.

Can You confirm?

KDJEM.1
KDJEM.1Best answer
ST Technical Moderator
March 28, 2024

Hello @pkoevesdi ,

Yes, the second view is taken from the STM32CubeIDE tool.

The OCTOSPI I/O manager is not a peripheral, so you can not see the "OCTOSPIM" in STM32CubeMX "categories" but you can configure it as shown in the below figure:

KDJEM1_1-1711535608248.png

 

And you can see this configuration in the generated code:

 

 sOspiManagerCfg.ClkPort = 1;
 sOspiManagerCfg.DQSPort = 1;
 sOspiManagerCfg.IOLowPort = HAL_OSPIM_IOPORT_1_LOW;
 sOspiManagerCfg.IOHighPort = HAL_OSPIM_IOPORT_1_HIGH;
 if (HAL_OSPIM_Config(&hospi1, &sOspiManagerCfg, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
 {
 Error_Handler();
 }

 

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.
pkoevesdiAuthor
Associate III
March 28, 2024

Thank You too!

pkoevesdiAuthor
Associate III
May 11, 2024

One more question: Why are all the registers of the OCTOSPIM zero? I see it in Your screenshot and in my STMProg as well. The reset values are non-zero.