2024-11-02 03:52 AM
Hello,
I'm working on project with STM32H755ZIT6. Currently I use Nucleo Board, but I designed prototype board, but the board don't work. I supose that problem is caused by wrong connection for supply.
I use +3.3V from DC/DC connerter for suplly. Can someone help to find out where could be the problem?
Thank you all in advance for any tips.
Solved! Go to Solution.
2024-11-04 11:08 PM
Please accept as solution the comment that answered your question.
2024-11-05 01:32 AM - edited 2024-11-05 05:46 AM
I addapted my prototype board in order to cuircuit below. After connecting board to programmer I can program
board one time and I get "Deadlock" and I can't program my board not more. When I connect BOOT pin to 3.3V then I'm able program board again. As I understand I get this issue because my hardware and software configuration are not right.
I use external clock HSE 25MHz and I addapted clock configuration as below, but I still get "Deadlock". Is something more what I should check?
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Supply configuration update enable
*/
HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
/** Configure the main internal regulator output voltage
*/
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
__HAL_RCC_SYSCFG_CLK_ENABLE();
__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_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 5;
RCC_OscInitStruct.PLL.PLLN = 192;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 5;
RCC_OscInitStruct.PLL.PLLR = 2;
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
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();
}
}
2024-11-05 07:10 AM - edited 2024-11-05 07:12 AM
Because from the beginning you configured the MCU with the wrong power config.
You need to recover your board from that situation and set the correct power supply SMPS or LDO. Read this article:
For the schematics, I invite you again to look at the schematics of NUCLEO-H753ZI for LDO: https://www.st.com/resource/en/schematic_pack/mb1364-h753zi-c01_schematic.pdf
and NUCLEO-H753ZI for SMPS: https://www.st.com/resource/en/schematic_pack/mb1363-h755ziq-d01_schematic.pdf
PS: you don't need to set VOS level in two steps. Keep VOS0:
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
And remove the settings of VOS1.
2024-11-05 11:16 AM
I had additional problem with programmer used from other nucleo board. I can't connect because target voltage was 0V. After recovering I can programm and run my board.
Thank you for your help!