cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H730VBxx: no OCTOSPIM registers

pkoevesdi
Senior

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?

1 ACCEPTED SOLUTION

Accepted Solutions
KDJEM.1
ST Employee

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 Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

6 REPLIES 6
KDJEM.1
ST Employee

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 Accept as Solution on the reply which solved your issue or answered your question.

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

 

pkoevesdi
Senior

> 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
ST Employee

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 Accept as Solution on the reply which solved your issue or answered your question.

pkoevesdi
Senior

Thank You too!

pkoevesdi
Senior

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.