Get ready for the STM32 Summit 2026 | Online, November 3
Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
LL_LPTIM_Disable calls LL_RCC_GetSystemClocksFreq, but CubeMX does not generate stm32u5xx_ll_rcc.cThis causes a linker error due to undefined reference.A minimal reproduction .ioc file is attached.
Hi everyone,I am working on a project using an STM8S003F3 MCU with ST Visual Develop (STVD), Cosmic C Compiler, and a clone ST-Link V2 programmer.I am having an issue with debugging. When attempting to start a debug session in STVD, I get the following error:Connection error (usb://usb): swim error [30006]: comm init error: chip does not answer.Important details: If I open ST Visual Programmer (STVP) and perform a few Read/Write attempts, STVP eventually starts working and can read and program the chip without issues. However, after doing this, only programming works—debugging in STVD still fails completely. Additionally, in STVP, the Erase button is grayed out and disabled. Signal levels and waveforms look fine at a quick glance on the scope (though I haven't done an in-depth signal integrity check yet). I have used a similar ST-Link clone setup before without any issues. Could this be caused by the ST-Link clone, or is it possible that the STM8 chip itself is a counterfeit/cl
Dear ST Support Team,Thank you for your continued support.Previously, I was able to download the schematic for the STM32F769I-DISCO board. However, at some point, it became unavailable for download.I would like to check the circuit design, so could you please make the schematic available for download again?Thank you for your assistance.Best regards,
Hi STM Team,I am working on an STM32 + ThreadX + NetX Duo application with the Ethernet interface. I am facing an issue with the NetX Duo DHCP client.My setup is: MCU: STM32N655X0HxQ RTOS: ThreadX Network stack: NetX Duo Ethernet driver: STM32 HAL Ethernet driver DHCP client: NetX Duo DHCP PC is running as the DHCP server MCU and PC are connected on the same Ethernet network. Observed behaviorThe Ethernet interface works correctly when I configure a static IP address.For example, with:MCU IP : 192.168.50.50Subnet Mask : 255.255.255.0Ethernet communication works correctly.However, when I enable the NetX Duo DHCP client, the MCU remains stuck at:Looking for DHCP server ..The DHCP server is running correctly on my PC.DHCP server configurationMy PC DHCP server is configured as:[SETTINGS]IPPOOL_1=192.168.50.10-254IPBIND_1=192.168.50.1AssociateBindsToPools=1Trace=1DeleteOnRelease=0ExpiredLeaseTimeout=3600[GENERAL]LEASETIME=86400NODETYPE=8SUBNETMASK=255.255.255.0NEXTSERVER=1
Hello ST team,I am designing a hardware with STM32G4 family. I want to measure a differential signal by MCU's ADCs over a cable of 50 cm. Is it needed to use op-amp as ADC driver or I can connect it to the MCU pins directly?
Dear STMicroelectronics Technical Team,We are planning to use the STM32G431RBT6 for a 1-phase/3-phase AC motor-control application.We would specifically like to clarify the PID/PI control capability of the STM32G431RBT6: Does the STM32G431RBT6 have a built-in hardware PID/PI controller or dedicated PID peripheral? If it does not have a hardware PID/PI controller, does ST provide ready-made PID/PI control firmware for the STM32G431RBT6 through the STM32 Motor Control SDK? Does the available firmware support speed PI control and current/torque PI control for a 3-phase AC induction motor? Can the source code be provided so that we can tune the PI/PID parameters according to our motor and application? We expect an annual requirement of approximately 10,000 units. Please also advise regarding technical support, recommended reference designs, and volume pricing. Thank you for your support.Best regards,Anurag singhAVG AUTOMATION
@lbthomsen of STM32World has published a review of the new STM32CubeMX2, what is good (not so much), indifferent and BAD (a lot). He tries to get it working, browse through the features, and has a lot of opinion on this matter. https://www.youtube.com/watch?v=61r83TTzDfk End of the day, IF you plan to use future STM32 families (starting with STM32C5) you have no choice than to use CubeMX2 AND the very painful migration from HAL to HAL2 (not compatible, maybe some future tool can assist in such migration). Even if migration is possible, then you will have the pleasure to support multiple versions of YOUR code on old vs new MCU families. Have FUN. For the people without perfect vision (like myself), embrace yourself for 4 pixels font sizes, and contrast-free dark-white-on-white-backgrounds text. Lovely! At least there is plenty of white space around the text that can sooth your soul. Now is the best time for experienced STM32 shops to leave HAL, CubeMX and go Bare
STM32G051C8 TIM2 is not initializing using LL_TIM_Init(). After I call the function and look at the registers they are all zero. All the other TIM seem to work.
A customer raised a quality issue since the MCU on the NUCLEO-H7S3L8 fails to connect.Issue Description: While the onboard ST-LINK is detected successfully and target voltage is correctly measured, the main MCU fails to connect as in the attached picture.Application Description: Attempted to connect the board and upload a program using the official STM32CubeProgrammer software after powering up. I was able to find one post having the same problem, but the dev board is differenthttps://community.st.com/stm32cubeprogrammer-mcus-30/error-no-stm32-target-found-smt32n657x0-q-145776#M7723I think the solution provided in the post would work for NUCLEO-H7S3L8 too, but since they are different boards, it seems the way to enter Dev BOOT mode would also differ.Could you please check the customer's situation and provide a troubleshooting guideline? Best regards,
Could you please provide the part marking details for M24C02-FMN6P for visual inspection purposes?
Hello guys. On a WBA55CG running ThreadX with a custom BLE peripheral application, the device becomes permanently stuck after a random number of sleep/wake cycles (anywhere from ~10 to ~20+). The CPU stays alive, but the advertising timeout never fires again, so the application never returns to STOP 1 mode. Only a hard reset recovers it.The device wakes from STOP 1 mode from either an interrupt fired from an IMU sensor or the RTC, advertises for an x amount of seconds and re-enters STOP mode until the next interrupt request is issued. The onboard LED blinks when the board enters Advertisement mode and when it becomes stuck, the led stays permanently on and the device becomes unresponsive.The core part of the app is the following FSM case APP_MAIN_MSG_SLEEP_READY: MAIN_LOG_INFO("[CPU] All modules idle. Authorizing STOP entry..."); // --- Final pre-sleep housekeeping (only if we are actually meant to sleep) --- if (main_state == MAIN_STATE_PREPARE_SLEEP) { PLT_THREAD_SLEEP(10);
I purchased the STEVAL-IKR002V1D recently to investigate low power 169Mhz operation. I noticed the schematic has TBD for values on components - No BOM and the schematic also does not reflect my board. I have an IC, U3 not even shown in the schematic. Could you please attached the latest schematic with values. Thank you!
Hello everyone,I’m trying to communicate with a POWERSTEP motor driver via SPI using an STM32 (STM32F4) and the HAL library. I have a basic test where I send three bytes and read back the same number of bytes, but I always receive exactly the same data that I transmit (i.e., a loopback effect). The POWERSTEP does not seem to respond with its expected status bytes.SPI configuration (from CubeMX):hspi1.Instance = SPI1;hspi1.Init.Mode = SPI_MODE_MASTER;hspi1.Init.Direction = SPI_DIRECTION_2LINES;hspi1.Init.DataSize = SPI_DATASIZE_8BIT;hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH; // CPOL = 1hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; // CPHA = 1 => SPI mode 3hspi1.Init.NSS = SPI_NSS_SOFT;hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; Code snippet (simplified):uint8_t tx[3];uint8_t rx[3];tx[0] = 0x3B; // example commandtx[1] = 0x00;tx[2] = 0x00; // Reset chipHAL_GPIO_WritePin(rstPOWERSTEP_GPIO_Port, rstPOWERSTEP_Pin, GPIO_PIN_RESET
I have a custom board using STM32H735ZGT6 and the LAN8742 Ethernet PHY using RMII. During the execution of CubeMX generated Ethernet initialization code, the MAC software reset bit is not cleared triggering an error. I have read a lot of forum posts about this issue and have verified the following:The RMII reference clock is supplied by the PHY using a 25MHz crystal as in the H723 nucleo board. The 50MHz clock generated by the PHY is present at PA1 pin and verified with an oscilloscope. (see osci image below) VDDCR voltage is 1.2V generated by internal regulator on PHY The PHY hardware reset is supplied by a MCU GPIO, and the resistor straps seem to function properly during reset (probed all with oscilloscope). I also have a pulldown resistor on the LED2 pin so that REFCLKO is generated by PHY. I can communicate through MDIO with the PHY to read out and write to registers, confirming that straps work ok. The output side of the PHY works, a link is established in both 10 and 100Mbps mo
Hello,We are using STM32U585QII6QTR in our device that is powered via USB and batteries. We observe that some devices do not startup anymore after some time of use. It is unclear which impact causes this. Everything that can be measured outside the MCU looks as expected.Debugging the device shows that everything is working normally, for example the bootloader checks successfully that a valid firmware is flashed by using HAL_HASHEx_SHA256_Start/Finish.However, the Systick is not triggered and GetTick remains 0, but SysTick->VAL is counting.Similartly, when starting the FreeRTOS Scheduler the device crashes when the SVC 2 instruction is called. The SVCHandler interrupt is not called. So, it looks like interrupts are not activated anymore.I created a no-RTOS project with CubeMX and checked directly after HAL_Init if the Systick is triggered. On a “damaged” device there is no SysTick triggered after HAL_Init whereas on a good device it is as expected.I attached a dump of important regis
Can the STM32MP231 simultaneously capture or stream four 2-lane MIPI CSI-2 camera streams through a DS90UB960/TDES960 using VC0–VC3?I have reviewed ST’s documentation on “How to use one or multiple multi-stream MIPI CSI cameras.” But did not get complete clarity on simultaneous capture of four camera streams. The documentation example appears to show routing for up to three streams/channels through the DCMIPP pipes (Dump, Main, and Aux).
Reverting STM32H7B3 from Secure Access Mode to Standard ModeHello,I am working with an STM32H7B3 and currently evaluating the Secure Access Mode and secure user area functionality.I am going to configure the device as follows:Create a secure user area in Bank 1 with DMES1 = 1 Create a secure user area in Bank 2 with DMES2 = 1 Enable Secure Access Mode (SECURITY = 1) The device is currently at RDP Level 0My requirement is to support reverting the device from Secure Access Mode back to Standard Mode during development/service.My understanding is that the following sequence can be used:Change RDP from Level 0 to Level 1. Perform an RDP regression from Level 1 to Level 0. Since DMES1/DMES2 are set to 1, the secure areas should be erased during the RDP regression. After the secure areas have been removed, disable Secure Access Mode (SECURITY = 0). Reset the device and boot normally in Standard Mode.In other words:RDP Level 1 → RDP Level 0 regression → secure areas removed due to DMES1/DMES2
I would like to report mishandling of USBX stack function return values and error codes in ST generated code.Here is a simplified CubeMX (v6.18.1) generated code call path for N6 MCU:void main(){ /* Call and ignore result */ MX_USBX_Init();}UINT MX_USBX_Init(VOID){ UINT ret = UX_SUCCESS; if (MX_USBX_Device_Init() != UX_SUCCESS) { /* USER CODE BEGIN */ return UX_ERROR; /* USER CODE END */ } return ret;}UINT MX_USBX_Device_Init(VOID){ UINT ret = UX_SUCCESS; /* More code here */ if (MX_USBX_Device_Stack_Init() != UX_SUCCESS) { /* USER CODE BEGIN */ return UX_ERROR; /* USER CODE END */ } return ret;}UINT MX_USBX_Device_Stack_Init(void){ UINT ret = UX_SUCCESS; /* More code here */ if (ux_device_stack_initialize(device_framework_high_speed, device_framework_hs_length, device_framework_full_speed, device_framework_fs_length, string_f
Hello everyone,I am experiencing a persistent debugging issue using AutoDevKit Studio. The debugger connects successfully to the target, but the application never reaches the main() function, immediately hanging at an exception handler.Here are the details of my setup and the issue:1. Part Number Target Board: AEK-MCU-C4MINI1 Debugger: AEK-MCU-SPC5LNK 2. Environment IDE: AutoDevKit Studio (Eclipse-based) on Windows 11. Toolchain/Debugger: GDB OpenOCD Debugging (OpenOCD 0.12.0+dev). 3. Schematics Standard ST evaluation board (no custom schematics). 4. Details When I launch a debug session, OpenOCD connects successfully, halts the target, and identifies the chip. However, the execution is stuck with the following error: Break at address “0x404100 with no debug information available, or outside of program code.I am fully aware that the "Source not found" window shown by the IDE is simply a consequence of the core hanging at this specific exception handler address (which naturally la
I'm using LPTIM1 in encoder mode and have noticed that, if there's jitter on one of the encoder signals the count will gradually creep up which should not be possible in encoder mode.This is on a decent encoder that's got an RC network (per the Bourns data sheet / appnote) in front of it too so this isn't nasty HF noise, it's good solid pulses of 50-100ms or more on one channel but the counter seems to creep up.Identical encoders wired to TIM2 / TIM3 behave normally, and my colleague has seen the same issue in another project using the same setup - LPTIM has a problem where TIMx does not.Init code for LPTIM1:/* LPTIM1 init function */ void MX_LPTIM1_Init(void) { /* USER CODE BEGIN LPTIM1_Init 0 */ /* USER CODE END LPTIM1_Init 0 */ LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; LL_RCC_SetLPTIMClockSource(LL_RCC_LPTIM1_CLKSOURCE_PCLK1); /* Peripheral clock enable */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LPTIM1); LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB); /**LPTIM1 GPIO
Hello, I would like to use a magnetometer to develop a small system that can discern the presence of a certain object with a magnet mounted on top of it. For this reason I got a X-NUCLEO-IKS5A1 as a starting point.From my understanding the faster approach was to connect the NUCLEO board NUCLEO-F401RE (which I already had) to the aforementioned X-NUCLEO board with the software MEMS-Studio.So I followed the procedure explained here: and applied it to the “new” X-NUCLEO -IKS5A1 board (instead of the IKS4A1 described in the video).I’ve successfully programmed the board with the supplied firmware (STMicroelectronics/MEMS Studio/firmware/mems-studio/x-nucleo-iks5a1/nucleo-f401re/DataLogExtended.bin, Interface MASS STORAGE, Device_ NODE_F401RE).But when I try to connect the board it says:And I cannot go further with the procedure.Is there something wrong with my procedure? Any idea of the issue?If not, how can I start using this board? Starting from an STM32CubeMX project?Thank you for your
SDMMC HAL driver implementation is full of timeouts like this:uint32_t count = SDMMC_CMDTIMEOUT * (SystemCoreClock / 8U / 1000U); do { if (count-- == 0U) { return SDMMC_ERROR_TIMEOUT; } sta_reg = SDMMCx->STA; } while (SOME_FLAG_NOT_SET);It may work in a single-threaded application on some basic CPU which runs fixed clocks per cycle, but it's not accurate on CPUs with dual-issue pipeline. All preempting interrupts and in case RTOS is used, all higher priority tasks, prolong this timeout. And vice versa - the longer this timeout gets the more it blocks lower priority tasks and interrupts. And the timeout isn't even in microseconds to justify it. SDMMC_CMDTIMEOUT value is 5000 milliseconds (by the comment). It's bad implementation by any standard.It's been so for a long time in many STM32 series (F4, H7, H7RS, N6, etc.). It's reported at least 6 years ago: I may have encountered a bug in SDMMC_GetCmdResp1 ... - STMicroelectronics CommunityI didn't check all the post
STM32CubeMX v6.16.1 has a small bug. Under Project Manager - Code Generator - HAL settings is an option to pick under which context the free pins should be set as a analog. I am using STM32N6 which has 3 contexts (FSBL, App, ExtMemLoader).The problem is that CubeMX doesn't store (or recall) this setting. I want to set them under Appli, but on every program start it sets the context to FSBL. After doing same "fix" for tens of times it gets quite annoying.
Dear Sir/Mdm, Could you please advice the closest replacement for STM32F769BIT6. Since this is EOL. Thanks.
Hello, We are using F777VI and H743VI in our products and we need to meet UL requirement. https://iq.ulprospector.com/en/document?e=206486 Primary cells and batteries are not rechargeable. Secondary cells and batteries are rechargeable. Primary cells and batteries are designated to be either technician replaceable or user replaceable. Secondary lithium ion cells are not intended to be user replaceable. The circuitry containing the primary cells and batteries should include two diodes (or equivalent) to prevent charging current. Alternatively, the circuitry containing primary cells and batteries should include one diode (or equivalent) and a current-limiting device, such as a resistor. What is the solution you offer, is such capability embedded in ST processors or should be added externally?. It is not very efficient to have diode Drop (0.4V - 0.7V) in a 3V battery coin, or a 2 AA battery (2.4V).
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.