cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo-H745ZIQ clock configuration required to run at 480 MHz

Nsg1987
Senior

Hello,

I want to use Nucleo-H745ZIQ board with operating clock at 480 MHz for M7 and 240 MHz for M4. Below is the clock configuration.

Nsg1987_0-1688706117562.png

Under RCC, options are either PWR_LDO or PWR_EXTERNAL_SOURCE_SUPPLY selection enabled. Voltage scale as Power Regulator Voltage Scale 0. 

Nsg1987_1-1688706221566.png

Jumper settings on board is as follows.

Nsg1987_2-1688706329677.png

External supply given is +9 V to VIN. 

While loading the code in the controller, I received error as No STM32 target found. 

I reset the core with STM32Cube Programmer, and found board working again.

But as soon as I repeat the above procedure to load the code with maximum clock selection, I got the same error.

Then I cut down the operating speed to 75 MHz for M7 and 60 MHz for M4 and selected Internal power supply and programmed again. Found working okay.

Can anyone let me know what wrong is going while I am trying to load the board with M7-480 MHz and M4-240 MHz?

Is there any wrong selection of parameters or something else.

 

Regards,

Nikhil

 

 

 

12 REPLIES 12
Nsg1987
Senior

@Foued_KH 

The clock configuration is as follows

void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

/** Supply configuration update enable
*/
HAL_PWREx_ConfigSupply(PWR_EXTERNAL_SOURCE_SUPPLY);

/** Configure the main internal regulator output voltage
*/
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);

while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}

/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 1;
RCC_OscInitStruct.PLL.PLLN = 120;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 2;
RCC_OscInitStruct.PLL.PLLR = 2;
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_3;
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
RCC_OscInitStruct.PLL.PLLFRACN = 0;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}

/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
|RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
{
Error_Handler();
}
}

Nsg1987
Senior

@Sara BEN HADJ YAHYA I gone through your post for How to unbrick an STM32H7 after setting the wrong power mode How to unbrick an STM32H7 after setting the wrong ... - STMicroelectronics Community.

I recovered my STM32H745ZIQ nucleo board with the same procedure mentioned in your post. 

Could you please let me know the procedure to operate Nucleo-H745 wtih maximum frequency i.e. 480 MHz for M7. You can check my query above in this same thread.

Thanks 

Nikhil 

Nsg1987
Senior

Solution:

Nsg1987_0-1688978293697.png

Nsg1987_1-1688978313908.png

connected external 9V to VIN pin of the board.

 

Thank you all for your support.