STM32H723

Post Reply
moonman
Posts: 2
Joined: Sat Jan 27, 2024 2:38 am

STM32H723

Post by moonman »

I am trying to upload my own code to a BTT SKR 3 board, originally made for 3D printing. I thought it had everything I needed for my custom project.
https://biqu.equipment/products/bigtree ... 3d-printer

I am trying to upload some basic blink code to test it out but running into issues.

I seem to be able to upload a basic sketch using DFU mode after also installing "STM32CubeProgrammer v2.15.0"
Screenshot 2024-01-26 184142.png
Screenshot 2024-01-26 184142.png (38.03 KiB) Viewed 1211 times
However after upload the serial line no longer connects, the pin doesn't blink either.
I can get back to DFU mode but can't seem to get the serial to come back.
I am trying to figure out the proper settings for uploading. Any suggestions appreaciated!
Screenshot 2024-01-26 184510.png
Screenshot 2024-01-26 184510.png (16.28 KiB) Viewed 1211 times
GonzoG
Posts: 403
Joined: Wed Jan 15, 2020 11:30 am
Answers: 26
Location: Prudnik, Poland

Re: STM32H723

Post by GonzoG »

SKR 3 uses 25MHz external oscillator, generic H723 is defined with internal oscillator, you might need to define new board variant:
https://github.com/stm32duino/Arduino_C ... 28board%29
or redefine SystemClock_Config(void)

Also, I think that HS USB needs external PHY that is absent in SKR 3.
moonman
Posts: 2
Joined: Sat Jan 27, 2024 2:38 am

Re: STM32H723

Post by moonman »

Hey thanks for the response.
Clearly I have a lot to learn, thanks for the links.

The SKR-3 comes with Marlin so I know they have done some work on the variant already.
Digging into their marlin branch, I found this variant file for the SKR-3
https://github.com/bigtreetech/SKR-3/bl ... Vx.cpp#L13


This area seems to be where clock speeds are being sorted:

Code: Select all

/* PLL1 qclk used for USB 48 Mhz */
  /* PLL1 qclk also used for FMC, QUADSPI, SDMMC, RNG, SAI */
  /* PLL2 pclk is needed for adc max 80 Mhz (p,q,r same) */
  /* PLL2 pclk also used for LP timers 2,3,4,5, SPI 1,2,3 */
  /* PLL2 qclk is needed for uart, can, spi4,5,6 80 Mhz */
  /* PLL3 r clk is needed for i2c 80 Mhz (p,q,r same) */
  PeriphClkInitStruct.PLL2.PLL2M = 15; // M DIV 15 vco 25 / 15 ~ 1.667 Mhz
  PeriphClkInitStruct.PLL2.PLL2N = 96; // N MUL 96
  PeriphClkInitStruct.PLL2.PLL2P = 2;  // P div 2
  PeriphClkInitStruct.PLL2.PLL2Q = 2;  // Q div 2
  PeriphClkInitStruct.PLL2.PLL2R = 2;  // R div 2
  // RCC_PLL1VCIRANGE_0  Clock range frequency between 1 and 2 MHz
  PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_0;
  PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOMEDIUM;
  PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
  PeriphClkInitStruct.PLL3.PLL3M = 15; // M DIV 15 vco 25 / 15 ~ 1.667 Mhz
  PeriphClkInitStruct.PLL3.PLL3N = 96; // N MUL 96
  PeriphClkInitStruct.PLL3.PLL3P = 2;  // P div 2
  PeriphClkInitStruct.PLL3.PLL3Q = 2;  // Q div 2
  PeriphClkInitStruct.PLL3.PLL3R = 2;  // R div 2
  // RCC_PLL1VCIRANGE_0  Clock range frequency between 1 and 2 MHz
  PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;
  PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOMEDIUM;
  PeriphClkInitStruct.PLL3.PLL3FRACN = 0;
It seems they have switched from the H723 to the H743 model. I think that is just more ram on the chip. Is that fair assessment?

I do not completely understand the best move forward from here.
Could you elaborate on what you mean by this? I don't know these acronyms and they are hard to search for.
GonzoG wrote: Sat Jan 27, 2024 10:03 am HS USB needs external PHY that is absent in SKR 3.
All of the guides for making firmware for printing are using platformIO now. Is it reasonable to try and port this variant file over to SM32duino?
I might just try to learn platformIO if the variant is already working on that IDE
Georgedut
Posts: 2
Joined: Mon Feb 05, 2024 12:31 pm
Location: Russia
Contact:

Re: How to use Interrupts on STM32F4.

Post by Georgedut »

I've been exploring the use of interrupts on the STM32F4 and I've encountered some challenges. Specifically, I'm trying to set up an interrupt to trigger when a specific event occurs, but I'm having trouble understanding how to properly configure the NVIC and the interrupt handler function.
Post Reply

Return to “STM32H7 based boards”