cancel
Showing results for 
Search instead for 
Did you mean: 

we are using STM32H755IIT6 MCU we made 5 boards with the same MCU STM32H755IIT6 all the board can be programable with verification but only one board of start to run what we can check on the board to find the problem

SLeit.2
Associate II
 
24 REPLIES 24

Voltages and capacitors of VCAP pins.

BOOT0 pin pulled-low.

Level of NRST pin

Settings for LDO/SMPS and VOS in SystemClockConfig()

Flash settings

External clock vis HSE_VALUE define,

Stuck in Error_Handler() or HardFault_Handler()

One could perhaps use a debugger and see where things are stuck, use LED, GPIO or UART to indicate progress into code.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
raptorhal2
Lead

This may or may not help:

When I make an L4 board, the first attempt to load and debug hangs after load and never gets to main.c. After cycling power, the next attempt loads and initializes OK.

Cheers, Hal

SLeit.2
Associate II

Voltages and capacitors of VCAP pins. - yes

BOOT0 pin pulled-low. - via 10K resistor

Level of NRST pin - 3.3V

Settings for LDO/SMPS and VOS in SystemClockConfig() - what do you mean

Flash settings - 2 ws

External clock vis HSE_VALUE define, - we are using internal clock

Stuck in Error_Handler() or HardFault_Handler()

One could perhaps use a debugger and see where things are stuck, use LED, GPIO or UART to indicate progress into code. - we cant use the debugger it is look that we dot have clock

when you say power cycling what do you mean ?

  • Voltages and capacitors of VCAP pins. - yes
  • BOOT0 pin pulled-low. - via 10K resistor
  • Level of NRST pin - 3.3V
  • Settings for LDO/SMPS and VOS in SystemClockConfig() - what do you mean
  • Flash settings - 2 ws
  • External clock vis HSE_VALUE define, - we are using internal clock
  • Stuck in Error_Handler() or HardFault_Handler() It is not start at all

  • One could perhaps use a debugger and see where things are stuck, use LED, GPIO or UART to indicate progress into code. - we cant use the debugger it is look that we dot have clock
  •  

You said you could program/verify, processor is working. You should be able to step through Reset_Handler, ie don't "Run to main()"

VCAP should be around 1.25V

The power supply settings should be consistent with the design. You've shared nothing of the code or design. If you're using the internal LDO, make sure that's selected.

Two wait states at what speed? Should be at least 4 for 400 MHz

static void SystemClock_Config(void)
{
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
  RCC_OscInitTypeDef RCC_OscInitStruct;
  HAL_StatusTypeDef ret = HAL_OK;
 
  /*!< Supply configuration update enable */
  HAL_PWREx_ConfigSupply(PWR_DIRECT_SMPS_SUPPLY); // <<< THIS CORRECT?
 
  /* The voltage scaling allows optimizing the power consumption when the device is
     clocked below the maximum system frequency, to update the voltage scaling value
     regarding system frequency refer to product datasheet.  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 
  while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {} // <<< STUCK HERE??

Does it run if you don't reconfigure any of the clocking? Should run at 64 MHz using HSI, without you touching anything.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

thanks for the fast answer

we are running internal clock 64Mhz.

2 wait state

voltage scale 2

the code :

void SystemClock_Config(void)

{

 RCC_OscInitTypeDef RCC_OscInitStruct = {0};

 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

 /** Supply configuration update enable

 */

 HAL_PWREx_ConfigSupply(PWR_DIRECT_SMPS_SUPPLY);

 /** Configure the main internal regulator output voltage

 */

 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);

 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_HSI;

 RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;

 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;

 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;

 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_HSI;

 RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;

 RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;

 RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV1;

 RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1;

 RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV1;

 RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV1;

 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)

 {

  Error_Handler();

 }

Does your design use SMPS?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Complete removal of power sources.

If the H7 parts get completely hung up, you might have to pull BOOT0 HIGH, and cycle the power a couple of times to recover.

The H7 parts also differentiate between a reset button press, and a reset caused by being powered up. Most specifically deciding whether to run from ROM or FLASH. It will run from ROM if the FLASH looks to be blank.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..