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
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.
Hi,On STM32U575CGU3, calling MX_ADC1_Init() once increases the device current by about +200 µA. After that, even if I run HAL_ADC_DeInit(), reset ADC1, and disable VddA, the extra +200 µA current does not disappear.Here is the minimal code:cint main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_GPDMA1_Init(); MX_ADC1_Init(); // <-- Base +200uA increase MX_OCTOSPI1_Init(); MX_SPI1_Init(); MX_USB_OTG_FS_PCD_Init(); MX_USART1_UART_Init(); MX_ICACHE_Init(); // ADC Disable HAL_ADC_DeInit(&hadc1); // <-- This does NOT reduce the +200uA __HAL_RCC_ADC1_FORCE_RESET(); __HAL_RCC_ADC1_RELEASE_RESET(); HAL_PWREx_DisableVddA(); while (1) { __NOP(); }}QuestionDoes ADC_Init enable an internal analog bias that cannot be fully disabled by ADC_DeInit, ADC reset, or VddA OFF? Is there any complete shutdown procedure to fully power down ADC/VREFBUF after initialization?Thanks.
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).
Is it possible to get the schematic or direct me to the link of the STEVAL-IKR002Vx (RF motherboard) The RF motherboard has an STM32L microcontroller used for driving the SPIRIT1 transceiver and to communicate to a PC via USB. Thank you
When I started working with NUCLEO boards I was very cautious about powering the board up from 5V let alone 12V even powering the board via STLINK USB at 5V (maybe as much as 250mA)So I did some reading. On my NUCLEO-H5E5ZJ :-The buck regulator ST1S40IPUR (U16) becomes transparent at under 5V - it just conducts The linear regulator for main 3V3 is LD39200PU33R (U15) and has very low dropout Most of the STM32H5E5 pins have Absolute Max tolerance rated at 4V If not being used I could put the STLINK into reset via a jumper (less current to board) Avoid initial connection of Ethernet cable or any USBI tried feeding just under 4V limited to 150mA max into the buck regulator and still got 3.3 Volts out of U15. The MCU runs fine and I can boot it using USART1. I haven’t learned how to use STLINK just yet :)For my board with STLINK in reset the Ethernet PHY current about 45mA and total current was 95mA on wakeup and 115mA in bootstrap.Why do this, well if I short more than 4V to any port pi
Hello ST Community,I am working on a BLDC motor control project and would like to use STM32 Motor Control SDK (MCSDK) Workbench to generate firmware.My Hardware ConfigurationMotor Type: BLDCMotor Voltage: 48VMCU: STM32F405RGT6IssueWhen creating a new project in MCSDK Workbench, I cannot find my exact board/MCU configuration in the board selection list. Since the STM32F405RGT6 board is not available in the predefined options, I am unable to proceed with the standard project generation workflow.QuestionsIs STM32F405RGT6 officially supported by MCSDK Workbench?If yes, how can I create a project for this MCU when it is not listed in the board selection menu?Is there a way to add a custom board definition?Where can I obtain the required board configuration/JSON file (if available)?Can an existing board configuration be modified to support STM32F405RGT6?If MCSDK does support this MCU, what is the recommended procedure for configuring:PWM generationCurrent sensingHall sensors / Sensorless con
将LSPHB焊接至FPC上进行测试,测试时发现输出压力会随时间发生无规律的漂移,请问这是什么原因,应该如何解决
Our application is an intelligent antenna pointing system that uses two identical sets of IIS2MDC magnetometer + ISM330DHCX accelerometer/gyroscope — one pair on our base board, and one pair attached to the moving gimbal. Our overall hardware design was based on the IOT02A board: we got the DataLogFusion running flawlessly on the ST IOT02A first, then subsequently ported that code-base to our own STM32U5-based system.Our code currently runs MotionFX sensor fusion with two instance memory pointers, with each pair of MEMS sensors feeding into the MotionFX library at a 100 Hz interval — as recommended, and as we saw done in the DataLogFusion example for a single set of magnetometer, accelerometer and gyroscope sensors. Our firmware design used the DataLogFusion example application and setup as a starting point and then adapted it with multiple instances as we have two sets of sensors in our hardware controlled by a single STM32U575ZIT MCU.Most of the MotionFX API takes an explicit instan
Confirming that CubeMX loading problem has been fixed. But I need to point out that RAMCFG enabling still comes with issue: AXISRAM clocks enabling code is not generated. As I wrote in another post, clocks are partially enabled by RIF code: STM32N6 RIF and MMT autoconfiguration errors - STMicroelectronics Community But AXISRAM3 clock is not enabled, so firmware halts. And power needs to be enabled also. My workaround is to enable all the AXISRAM clocks and power in HAL_RAMCFG_MspInit: void HAL_RAMCFG_MspInit(RAMCFG_HandleTypeDef* hramcfg) { /* USER CODE BEGIN RAMCFG_MspInit 0 */ /* USER CODE END RAMCFG_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_RAMCFG_CLK_ENABLE(); /* USER CODE BEGIN RAMCFG_MspInit 1 */ /* AXI SRAM1-2 is already enabled by BootROM. * Enable AXI SRAM3-6 clocks manually because CubeMX doesn't do it. */ __HAL_RCC_AXISRAM3_MEM_CLK_ENABLE(); __HAL_RCC_AXISRAM4_MEM_CLK_ENABLE(); __HAL_RCC_AXISRAM5_MEM_CLK_ENABLE(); __HAL_RCC_AXISRAM6_MEM_CLK_ENABL
Hello ST Community,I’m developing a custom external loader for a GD25Q64E flash device and cannot get STM32CubeProgrammer to read/write/erase the external flash. I’ve attached a screenshot of the error reported by the programmer.What I’ve doneFollowed the ST tutorial “External QSPI loader how to” External QSPI loader how to - STMicroelectronics. Verified read/write/erase work when exercised from main.c — no errors there. When running the loader, I see a hardfault reported in the CubeProgrammer “HardFault” tab. There is a hardfault at the end of loader_src.c in init(); I’m not sure whether that is expected. Project uses SPI3 with DMA and interrupts to talk to the external flash. I have also tested this with just polling and verified read/writing/erase work when exercised from main.c Device and external flash infoFlash: GD25Q64E SPI instance: SPI3 (Polling)Questions: Any troubleshooting tips for getting the custom loader working with STM32CubeProgrammer (and diagnosing the hardfault sho
Hi Support Team, We are assessing a 125°C manufacturing burn-in process for a medical electronics product and would like to understand whether AIS2IH has undergone any qualification or reliability testing at or above 125°C.Are there any available data or reports relating to:HTOL (High Temperature Operating Life) HTSL (High Temperature Storage Life) Burn-in testing Accelerated life testing Other high-temperature qualification activitiesWe are not seeking approval for continuous operation beyond the datasheet limits, but rather any information that may support the assessment of a limited-duration burn-in process.Any relevant data, reports, or guidance would be greatly appreciated.
Hi all,I am using ST link v3 mini when i try to connect the controller using the st link v3 it is showing as theError : unable to get the core ID.But when i try to connect the controller using the DFU mode.i am able to connect to the controller and able to program the controller and option bytes are also AA(RDP 0)>. What is issue why i am not able to connect to the mcu using the St link (SWD) but able to connect to the controller using the DFU mode.is there anything i have to make changes in the cube programmer.
Hi,I am evaluating the LSM6DSV16X for a project that requires gyroscope Angular Random Walk (ARW) and In-Run Bias Stability specifications. I understand these AVAR (Allan Variance) parameters are not tested at production level and therefore not included in the datasheet.However, I noticed that ST has previously shared characterization data for related parts under the same request:- LSM6DSR: https://community.st.com/mems-sensors-48/what-is-the-bias-in-run-stability-instability-of-the-lsm6dsr-gyros-and-accelerometers-41777- LSM6DSV16BX: https://community.st.com/t5/mems-sensors/bias-instability-and-random-walk-of-lsm6dsv16bx-and-ism330dlc/td-p/574922 Could someone from ST please share the equivalent characterization results for the LSM6DSV16X (gyroscope, and accelerometer if available)? Specifically, if possible, could you provide the full Allan Deviation plot (σ(τ) vs. averaging time τ) rather than just the extracted ARW / bias instability numbers — we need to see the noise floor and cor
We are looking for a more details on STDES-ESP01 product and product which does cuffless BP measurement as discussed in this video.
Hello ST Community,I am using an STM32G431RBT3 on a custom-designed PCB. The STM32 is used to control a DRV8334 3-phase motor driver for a blower motor application.I am facing a critical issue where the controller works correctly when using ST-LINK debugging, but it does not run correctly when the PCB is powered on standalone.HardwareMCU: STM32G431RBT3 Package: LQFP64 Motor driver: DRV8334 PCB: Custom-designed PCB IDE: STM32CubeIDE Programmer/debugger: ST-LINK MCU supply: 3.3 VProblemWhen I power the PCB directly without ST-LINK, the following happens:The STM32 starts executing the firmware. A GPIO that I set HIGH in main() becomes HIGH. The GPIO that I toggle inside the while(1) loop does not toggle. I added a GPIO HIGH operation inside HardFault_Handler(). That HardFault GPIO becomes HIGH.Therefore, it appears that the MCU reaches main() but subsequently enters HardFault before the normal while(1) execution continues.When ST-LINK is connectedIf I connect ST-LINK and program/debug/ru
Hii All,I am working on a custom PCB based on the STM32H747IITX MCU, and I am facing an issue with the Ethernet interface.The Ethernet connection is currently not working on my custom board. I have checked the basic hardware connections, but I am unable to identify the root cause.I have attached the Ethernet schematic of my custom PCB for reference.Could someone please help me review the schematic and suggest what I should check?In particular, I would appreciate guidance on:STM32H747IITX Ethernet RMII configuration and pin assignments PHY hardware connections and required configuration PHY reset and power-supply requirements 25 MHz/50 MHz Ethernet clock configuration PHY address and MDIO/MDC communication Required Ethernet termination/bias components STM32 Ethernet GPIO alternate-function configuration Any hardware-specific requirements or common mistakes when designing Ethernet on a custom STM32H747 board Recommended steps to debug whether the issue is on the MCU, PHY, clock, or PCB s
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.