Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi, We are using an STM32F103 as a controller for a Half-bridge dc-dc convertor running at 110Khz. We are facing an issue where the microcontroller is resetting every minute when output crosses 12A. We disconnected all peripherals, removed all protections and kept only the PWM and reset problem sustains itself. On further inspection, we found that the PWM duration increases for a few cycles and then the microcontroller resets. It seems to us that the microcontroller clock slows down and then finally stops forcing a reset. We do not have watchdog timer implemented.We are using a 8MHz crystal. Please check attached image (CH1 - reset line, CH2 - Independent PWM, CH3 - Half bridge high side) The fun fact is that if we place the microcontroller on an external PCB and connect to the gate driver with wires, we do not see the microcontroller resetting. (even without the crystal). Sometimes, attaching an oscilloscope probe (1Mohm) also prevents restart. Currently,
For STM32H7, if the FMC data lines and SDRAM data lines are cross-connected (not D0 to D0), and address lines are also cross-connected (not A0 to A0), can SDRAM work properly? My PCB is about to be manufactured, but due to the hardware engineer’s design, the SDRAM data lines and the MCU’s FMC data lines, as well as the SDRAM address lines and the MCU’s FMC address lines, are not connected one-to-one according to the CubeMX standard. Instead, the order has been shuffled. The actual wiring relationships are as follows: Data line connections: MCU FMC_D0 is connected to SDRAM_D13MCU FMC_D1 is connected to SDRAM_D14MCU FMC_D13 is connected to SDRAM_D1MCU FMC_D14 is connected to SDRAM_D0MCU FMC_D4 is connected to SDRAM_D7MCU FMC_D5 is connected to SDRAM_D6MCU FMC_D6 is connected to SDRAM_D5MCU FMC_D7 is connected to SDRAM_D4Address line connections: MCU FMC_A0 is connected to SDRAM_A2MCU FMC_A1 is connected to SDRAM_A3MCU FMC_A2 is connected to SDRAM_A0MCU FMC_A3 is connected to SDRAM_A1MCU
I have the following original debuggers:Stlink V2Stlink V3_SETStlink V3_MINIE (2 pieces)I was recently testing a simple board with an STM32U083 (powered by 3.3V) and found that two Stlink V3 MINIE units could connect to the MCU. Meanwhile, both the V2 and V3_SET work without any issues.I observed that after connecting (SWDIO,SWCLK,VDD,GND) to the powered MCU, both the V2 and V3_SET leave SWDIO at 3.3V (pull-up in the MCU) and SWCLK at 0V (pull-down in the MCU). Whereas the MINIE maintains a 3.3V level on both SWDIO and SWCLK. Out of curiosity, I connected an external 10k pull-down resistor to both SWDIO and SWCLK and observed that SWDIO drops (which is fine), but SWCLK does not, meaning that the Stlink V3 MINIE actively holds SWCLK at 3.3V. Am I doing something wrong, or are both MINIE boards defective?Best regards,Michal Dudka
Device STM32WLE5 Clock configuration SYSCLK : MSI 16 MHz (MSIPLL mode Enabled)LSE : 32.768 kHz crystalLPTIM2 kernel clock : LSELow power mode : Sleep Observed behavior When configuring LPTIM2 with LSE clock, the following code sometimes blocks because the ARROK flag never sets. __HAL_LPTIM_AUTORELOAD_SET(&hlptim2, Period); while (!__HAL_LPTIM_GET_FLAG(&hlptim2, LPTIM_FLAG_ARROK)); This occurs after waking up from Sleep mode. Workaround Executing the following code before or after wake-up resolves the issue. RCC->BDCR |= RCC_BDCR_LSESYSEN; After writing LSESYSEN, the ARROK flag sets normally. Initialization code SystemClock_Config() already enables LSESYSEN. It is CubeMX provided. LL_PWR_EnableBkUpAccess(); LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_MEDIUMLOW); LL_RCC_LSE_EnablePropagation(); LL_RCC_LSE_Enable(); while (LL_RCC_LSE_IsReady() != 1) { } LL_RCC_LSE_EnablePropagation() is defined as: __STATIC_INLINE void LL_RCC_LSE_EnablePropagation(void) { S
How many uart channels are available on STM32H573I-DK Discovery kit.I am Looking for atleast two channels..Thanks in advance...
Run SimulatorGenerateDoneGenerate Assetsmake -f simulator/gcc/Makefile assets -j8generated/simulator/gcc/Makefile:221: recipe for target 'images' failedprocess_begin: CreateProcess(NULL, ../Middlewares/ST/touchgfx/framework/tools/imageconvert/build/win/imageconvert.out -r assets/images -w generated/images, ...) failed.make (e=2): 系统找不到指定的文件。make[1]: *** [images] Error 2simulator/gcc/Makefile:32: recipe for target 'assets' failedmake: *** [assets] Error 2FailedFailed
According to the PD 3.1 requirements (also PD 3.0), I need to connect UCPD1_CC1 and UCPD1_CC2 to USB-C CC1 and CC2 to communicate and request the desired voltage. But STM32G0B1KBU6 has only UCPD1_CC1 available. Is there any way to connect STM32G0B1KBU6 to USB-C to comply PD 3.1 requirements?
Hello,the SPI does work with NSSP(Negative Slave Select Pulse-Mode), but it does not work if I disable NSSP. As someone pointed out the SPI NSS(P) may only work if the Pulldown of that pin is enabled, but I’m not 100% sure on that one, but it seems to wirk for NSSP-En that way. For NSSP-Disabled I could not get the SPI-Controller to control the NSS(CS).I observed two issues:1) On Reset the NSS(CS) is low and will stay low until the first SPI Transaction. I tried to set it via HAL_GPIO_WritePin( … , GPIO_PIN_SET); but that has no effect, maybe because the Pin is controlles by the SPI-HW.2) Is the serious issue is, if I disable the NSSP, the CS does not work at all.How can I make the Hardware NSS work with NSSP disabled?Thanks a lot, Best Regards, SeppelP.S.This is the Setup and Waverforms for the NSSP-Disabled, I have a 2s delay on startup, which you can see on the scope-pictures.: This is the setup for the NSSP Enabled, the same was used for NSSP-Disabled(only that NSSP was set to
I am trying to implement TFTP file transfer on my STM32 module (Nucleo-H723ZG). I have taken reference from:https://github.com/STMicroelectronics/STM32CubeF4/tree/master/Projects/STM324xG_EVAL/Applications/LwIP/LwIP_IAPhttps://github.com/JoeMerten/Stm32-Tools-Evaluation/tree/master/STM32Cube_FW_F4_V1.9.0/Projects/STM324xG_EVAL/Applications/LwIP/LwIP_TFTP_Server For file transfer I am using tftpd64 software. I used the software for PC-PC file transfer which were on the same local network and it was successful. But when I am trying to send file from PC-STM32 module I am only receiving write request from the client (PC). After that I am suppose the get a block 0 acknowledgement from the server (STM32 module) which I am not receiving. I tried debugging the code but in the code the acknowledgement is being sent successfully. For more information:- my ethernet is up - I have successfully ping the IP address that I have assigned or configured for the module. - Moreover, I am using
Hello, As part of a new project, I'd like to use DFU mode for programming my STM32F303VET6. I have a button that controls BOOT0. If the button is pressed during the microcontroller reset, there's no problem; I successfully enter DFU mode and can reprogram without any issues. I'd like to be able to perform this step without any physical intervention on the board, but rather by creating a 'jump' from my application to the internal ST Bootloader. My board is connected to the PC via a CDC connection. Using HyperTerminal, I send a command that calls a JumptoBootloader function. My function is as follows: void JumpToBootloader(void) { // 1. Stop USB peripheral RCC->APB1ENR &= ~RCC_APB1ENR_USBEN; // Disable USB clock RCC->APB1RSTR |= RCC_APB1RSTR_USBRST; // Reset USB RCC->APB1RSTR &= ~RCC_APB1RSTR_USBRST; // 2. Put USB pins (PA11/PA12) in analog mode RCC->AHBENR |= RCC_AHBENR_GPIOAEN; GPIOA->MODER |= (3U << (11 * 2)) | (3U << (12 * 2)); // Ana
Hi there,I am currently trying to create a custom power board in the Board Designer software and I am running into issues. I am using the NUCLEO-G431RB as the control board. In the designer for my custom power board, I have configured pins PB4 (MR27), PC7 (MR19) and PB0 (ML34) as Phase Voltage Generation Pins using the configuration "Driving HighSidesAndOneEnable". When I then try to configure a project, in the project creation phase I get the error "DrivingHighSidesAndOneEnable: No timer matches all signals requirement". However according to CubeMX, on the STM32G431RBTX MCU, all those pins are connected to three TIM3 channels respectively. Not sure where I am wrong, any help would be appreciated thank you. Additional Info:Version: 6.4.1Tool: MCSDK - Board Designer/Project CreationHow to Recreate: 1. Open the Board Designer and try to create a power board2. Configure the Phase Voltage Generation pins as states above3. Configure the Current Sensing Hardware config with other a
Hi everyone,As part of one of my projects, I have to use an SD card to store my data. Since the final board has not yet been manufactured, I started developing my software on the STM32303E-EVAL evaluation kit.For reference, it uses the same microcontroller that will be on my own board.Back to the STM32303E-EVAL. When I received this board, the provided demo worked correctly (GUI display and so on).I wanted to test the examples dealing only with the SD card (FAT32 format), which are available in the repository:→ STM32Cube_FW_F3_V1.11.0\Projects\STM32303E_EVAL\Applications\FatFs\FatFs_uSDImported into CubeIDE, it does not compile, files are missing – in short, it is a mess.So I started over from scratch, installed AC6, opened the project, flashed it, started a debug session, and I get stuck in f_mount().The SD card is correctly inserted.Could you help me?Or, failing that, provide me with a working example?
[PN]: EVSPIN32G4-DUAL[VERSION]: MCSDK 6.3.2[TOOL]: Firmware[DETAILS]:Hello,I am working on a dual-motor application using the EVSPIN32G4-DUAL board with MCSDK 6.3.2.I observe the following behavior:when both motors are running at the same time, the speed regulation is stablewhen only one motor is running, strong speed oscillations appearThis behavior is observed when running either motor alone. In other words, the issue does not seem to be linked to one specific motor channel.The motors are custom motors designed/manufactured by us, with the following configuration:5 pole pairsRs / Ls identified with the profilerHall phase shift = 121°Rotor angle measured using Hall sensorsPWM frequency = 16 kHzThe attached speed plot illustrates the issue:first phase: only one motor running → oscillations visiblemiddle phase: both motors running → stable behaviorlast phase: only one motor running again → oscillations visibleThe current regulator seems very stable, only the speed loop is going crazy wh
I use touchgfx on u599 ,internal flash is 4MB.My project have 2.4M fonts and images,so I devide internal flash to two parts,like this:RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2496KSRAM4 (xrw) : ORIGIN = 0x28000000, LENGTH = 16KFLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024KASSETSFLASH (rx) : ORIGIN = 0x08100000, LENGTH = 3096K because the assets are not changed everytime ,So I am thinking stop CUBEIDE to downloadASSETSFLASH and only download FLASH form 0x08000000. How can I do this ?
I'm using an STM32G0 with a 240 x 160 monochrome 1bpp SPI display. Is it possible to use the QR code component from the TouchGFX library?I'm using TouchGFX version 4.26.0.Many thanks!
The original question is here I too have experienced something like this with my STM32F407ZET controller. TCP Client mode was not working in IAR whereas it worked CubeIDE. Dont know the reason, but had to migrate my whole code to IDE.
Hi,is there any HW guidelines to configure a USB OTG port with STM32H563VIT6 with VBUS detection?
Hello.I recently experienced an unusual MCU Problem and need to analyze it. Please help me. The FW program download to the MCU is successful, but it does not operate after a reset. I performed a short circuit test after disconnecting the power(Battery)but even when measuring VCC-GND and GND-VCC at the power supply, a resistance value of approximately 500 ohms is detected. When I disconnect only the MCU from the PCB and re-measure, the 500 ohm value disappears from the PCBbut this value persists when measuring directly from the MCU pins. Can I conclude that the MCU is dead due to a power supply failure?And in what cases does this problem occur?
Hi Team,Could you please confirm whether the following SPI erratum is considered in HAL version 1.11? I am currently using an MCU with revision V.
Hello, I am using an STM32F407VGT6 board with the ST-LINK debugger.When I plug the USB cable into the board, the LD1 LED on the ST-LINK stays Green and does not turn Red. From what I understand: Green LED indicates that ST-LINK is powered and idle. Red LED should appear during debugging or when an error occurs. However, in my case the LED always remains Green. My questions: Why does LD1 remain Green when I connect the board? Under what conditions does LD1 turn Red? Does a constant Green LED indicate that the MCU is stuck (for example in HardFault or reset)? I am using STM32CubeIDE for programming and debugging. Any guidance would be appreciated. Thank you.
Hi,I have this toolchain and need to generate a SBOM:STM IDE v1.18STM IDE GNU Tools for STM32 13.3.Rel1STM32Cube FW_L4 V1.18.1, specified in `\*.ioc` fileSTM32_USB_Device_Library (v2.0_Cube)STM32CubeMX 6.14.0FreeRTOS (10.3.1)How could I turn this into a SBOM?I tried scanning the folder strucutre with syft but this did not work. I then tried to manually make a syft Json file, but when testing for vulnerabiliteies (like e.g. here ) i could not find them. I am not sure how to specify the above components, such that they get recognized by the automated search engine (Grype).I found a statement from ST, that SBOMs will be provided for their products, but I could not find said lists for my toolchain. Some repositories on the GitHub Repositores contain `sbom_cdx.json`. However, I struggle to connect my Toolchain components to the repositories on Github (there are over 700 and for example "stm32cubeIDE" returns 0). Any help is appreciated! Related Links:Wikip
Hi,When reviewing the descrption of MCU pins used by the integrated system bootloader, I came across several documentation bugs in the latest AN2606 (rev70). Inparticular, Table 164 lists:USART1_TX pin - PA9 pin: USART1 in transmission mode. Used in input no pull mode: Input mode for an output pin? Same issue with USART2 and USART3.SPI1_MOSI pin - PA7 pin: slave data input line, used in push-pull, pulldown mode: Input pin does not have push-pull mode.SPI1_NSS pin - PA4 pin: slave chip select pin used in push-pull, pulldown mode: NSS ist used as an input, so it does not have push-pull mode.Same issues with SPI2 descrpition.The same problems are in Table 166. I have not checked the tables for the other CPUs, but I suggest a review of the document might reveal more issues.RegardsNorbert Unterberg
I am using stm32f407 and stm32wb series for sending the data usimg uart.first i send th data using the stm32wb uart to the stm32f407 uart the data is correctly sent.After receiving the data i will return the data back to the stm32wb from the stm32f407 but this time the data is corrupted.I am using the hal_uart_receiveto_idle and hal_uart_transmit_it to send and receive the data. I will share the code please review and tell me if i need to make any changes.
#ifdef HWVR_AC_CG_NOV25 #include "lpuart.h" #include "main.h" UART_HandleTypeDef hlpuart1; DMA_HandleTypeDef hdma_lpuart1_rx; DMA_HandleTypeDef hdma_lpuart1_tx; #define LPUART_RX_BUF_SIZE (uint8_t)1 static volatile uint8_t lpuart_rx_buffer[LPUART_RX_BUF_SIZE]; // Buffer for DMA reception #define LPUART_TX_BUF_SIZE (uint8_t)64 static volatile uint8_t lpuart_tx_string[LPUART_TX_BUF_SIZE]; static uint8_t lpuart_tx_string_size = 0; // Size of the lpuart_tx_string buffer #define LPUART_FLAG_RX_COMPLETE ((uint8_t)((uint8_t)1U<<(uint8_t)0U)) #define LPUART_FLAG_READY_TO_SEND ((uint8_t)((uint8_t)1U<<(uint8_t)1U)) #define LPUART_FLAG_TX_ONGOING ((uint8_t)((uint8_t)1U<<(uint8_t)2U)) static volatile uint8_t lpuart_flag = 0; void_const_uint8_t_p_callback_t lpuart_fill_callback = NULL; // Callback for the loop function void_void_callback_t lpuart_loop_callback = NULL; // Callback for the loop function static volatile uint32_t last_timestamp = 0; void HAL_UART_RxCp
I tried in use Nx_WebServer factory example written for STM32N6570-DK board. Finally I compiled (without error) and run the project but nothing (except single step) worked.It never got IP address from DHCP.The Green LED is not blinking.With static IP address it does not answer for ping command.The board does not appear in arp -a list.The breakpoint set inside of ETH1_IRQHandler is never hit.The green and yellow LEDS of RJN45 are not blinkingThe code is running inside the app_thread and wating for events.What did I wrong?Louis
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.