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
When enabling MCE2 for the STM32N6 with the following settings:the generated MX_MCE2_Init crashes here: ContextAESConfig.KeySize and ContextAESConfig.Cipher_Mode are not initialized to any value. After adding: ContextAESConfig.KeySize = MCE_AES_256; ContextAESConfig.Cipher_Mode = MCE_CONTEXT_BLOCK_CIPHER;the function crashes to:HAL_MCE_EnableAESContext cannot be called with MCE_NO_CONTEXT.
I am designing a LED driver board for an industrial instrument and am evaluating the ST1CC40 as a constant-current buck driver for the following application: Application requirements:• Input voltage: 5V DC (regulated)• LED: Cree XLamp XP-L2 white LED• Target forward current: 2.2A• LED forward voltage: 3V at 2.2A, Tj = 85°C From the ST1CC40 datasheet, I have confirmed the following:• VIN range 3V–18V covers our 5V supply • Maximum limiting current 5A covers our 2.2A operating point • INH threshold VIH = 1.2V min is compatible with our 3.3V PWM signal • Duty cycle at operating point: 2.93V / 5V = 58.6% — within range • RSENSE = 97mV / 2.2A = 44mΩ (targeting 44mΩ E96 standard value) I have the following technical questions: 1. With VIN = 5V and VOUT ≈ 2.93V (duty cycle ~58.6%), is there any concern with the internal bootstrap circuit or headroom voltage at this relatively low input voltage/ applicat
Please provide a Linux version of MCSDK. ST already has CubeMX and CubeIDE for Linux and they also run on Java, so I guess it should not be a problem.Or even a better alternative, just provide source code for MCSDK examples in a git repository. It is very frustrating to obtain source code through CubeMX and always having to log in.
Hello,I noticed that the MB1720 High_band Low_power configuration and the MB1720 High_band High_power configuration have different input line differentials. I would like to know, when combining High_band/Low_power nodes with High_band/High_power nodes in the same RF mesh network, what design considerations should be followed and how the part should be designed?Thank you.
Hello!I'm working on an Nucleo-H503RB board and trying to communicate with a LSM6DSO over I3C.I am now able to use ENTDAA to assign a dynamic address to the LSM6DSO.Next, I want to test using SETDASA to assign a dynamic address based on the static address (0x6A) of the LSM6DSO. I followed Getting started with I3C - stm32mcu(4.2 Dynamic addressing using SETDASA CCC section ), but encountered the following issue.Issue:The process stops at RSTDAA and does not continue to SETDASA.I have already verified via I2C that the static address is 0x6A.Question:How can I successfully complete the SETDASA procedure? Full Code:/* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include <stdio.h> #include "target.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------
Hi Technical Support Team,I am working with the Nucleo-H563ZI board and would like to enable the I3C interface within the Zephyr environment.Could you provide a minimal sample project or a reference configuration (Devicetree/Kconfig) to validate the I3C host driver and I3C shell?Thank you for your assistance.----------------------------------------------prj.confCONFIG_I3C=yCONFIG_I3C_SHELL=yCONFIG_I3C_STM32=yCONFIG_USERSPACE=yCONFIG_I3C_RTIO=y----------------------------------------------
:warning:Note: The internal GPIO structure has been simplified for better conceptual understanding. (Components such as ESD protection diodes, pull-up and pull-down resistors, etc., are not shown.):warning:Warning / Disclaimer This analysis is based on my personal study and interpretation of technical documents. Therefore, I cannot guarantee that it fully represents the actual internal behavior of all STM32 microcontrollers. This is a simplified conceptual model for educational purposes.INTRODUCTIONIn this document, we will examine how our code affects GPIO units at the MOSFET level. Our analysis focuses on the MOSFET switching logic in General Purpose Output (Push-Pull, Open-Drain) and Input Mode (Analog and Alternate Function modes are not included in this analysis). I used the following documents as references for this analysis and the visuals:AN4899 Application Note (STMicroelectronics)RM0365 Reference Manual (STM32F3 series)Since this analysis is based on the STM32 architecture, w
Hello,I am working on a project using an STM32H7S3 with an XSPI NOR Flash (ISSI IS25WX064) running in XIP (Execute-in-Place) memory-mapped mode. The firmware is split into two stages: a Bootloader and an Application context executing directly from the external flash.I need to put the flash into Deep Power-Down mode (command B9h) before the STM32 enters Standby, in order to minimize total system current consumption. On wake-up, the Bootloader handles the Release from Deep Power-Down (ABh) before re-entering memory-mapped mode and jumping to the Application.I am struggling to find a clean way to send the Deep power down command from the Application context. The main obstacles are:1. The XSPI handle (hxspi1) lives in the Bootloader context, so the Application does not have direct access to it.2. The Application code runs from XIP flash. This means that aborting the memory-mapped mode (required before sending any command) from code that itself is fetched through that same memory-mapped int
Hello everyone, I have a custom PCB with an RFM69HCW and an STM32L011G4U6, I'm stuck, transmission and reception work fine, but if I want to add an ID, it gets stuck, here are my two INI files, sorry for my English. void RFM69_Init_RX(void) { uart_print("=== RFM69 CAPOT RX INIT (868MHz) ===\r\n"); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); HAL_Delay(10); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); HAL_Delay(50); RFM69_WriteReg(0x01, 0x04); // Standby HAL_Delay(10); // === Fréquence 868 MHz === RFM69_WriteReg(0x07, 0xD9); RFM69_WriteReg(0x08, 0x00); RFM69_WriteReg(0x09, 0x00); RFM69_WriteReg(0x11, 0x7F); // Puissance max // Configuration Paquet RFM69_WriteReg(0x02, 0x00); // Packet mode RFM69_WriteReg(0x03, 0x1A); RFM69_WriteReg(0x04, 0x0B); RFM69_WriteReg(0x2F, 0xAA); // Sync Word RFM69_WriteReg(0x30, 0x55); RFM69_WriteReg(0x37, 0x00); // Pas d'adressage RFM69_WriteReg(0x38, 9); // Payload Length = 8 octets (suffisant pour "arm" et "o
Hi everyone,I'm experiencing a frustrating issue while debugging an STM32H755 using STM32CubeIDE v2.0.0.When I launch a Launch Group (or start the debug sessions sequentially), the start point (Entry Point) in main often points to the exact same memory address for both the Cortex-M4 and Cortex-M7 cores (e.g., 0x81013be). This overlap obviously prevents a proper debug session.This behavior seems random. Sometimes it starts correctly, but as I develop and recompile the code, they suddenly end up "stacked" on the same address.Current Setup:IDE: STM32CubeIDE v2.0.0.GDB Server: Manually configured with separate ports (61234 and 61240).Guidelines: I've followed the official dual-core debugging recommendations.Is there a specific configuration or "hidden" setting to prevent the IDE from overlapping these entry points? Or is this a known bug in v2.0.0? It’s becoming quite a bottleneck for my development.Thanks in advance!
Hey there, I have run into an issue while trying to using the new edge AI-studio software. I try to make a run such that I am able to the reach the generate project page.However, currently, I am stack at the point where the pipe running in the EDGE AI studio tries to use the STM32 cube programmer, I think to run the binary and verify it works before proceeding to provide the generated project page.My set up includes a custom made board, set in DEV boot, and an st-link v3 pwr connected to the custom board. I can confirm that I am able to program the board using cube programmer. I am also able to debug the code programed to this board using XIP paradigm , there for I think the connection there is okay,The custom boards OCTO XSPI is very similar to that of the stm32n6570.DK as I am able to use the default bootloader for the dev board to be able to program it.How ever the logs from running the cube AI studio say Run failed: Error: STM32CubeProgrammer exited with code 1I attached
Hello,For the ASM330LHH, it's not clear which registers are covered by the BDU setting. Although the datasheet and application notes list some registers that are covered, they are presented more as examples than an exhaustive list.In my testing, it appears the BDU register doesn't protect the temperature (non-FIFO) registers at all. With BDU enabled, I would still get ~1 degC temperature spikes when the sensor was operating at the rollover boundary (LSB near 0x00 or near 0xFF), due to the slight time skew between the two registers. I was able to work around this by using the FIFO.I also need to be able to sample the TIMESTAMP registers (TIMESTAMP1, TIMESTAMP2, TIMESTAMP3, TIMESTAMP4), from outside of the FIFO. This is important because I need to periodically correlate the ASM330LHH's internal timestamp to an external time/clock; using the FIFO would introduce a large skew and a lot of complexity.Are the timestamp registers protected by the BDU feature? Can
Hello, I have implemented a DDS sine wave generator where I use a timer interrupt to update DDS phase word and also use the same timer triggering a SPI transmission via DMA to an external DAC using a nucleo-g431rb. I am now doing the same thing with a nucleoh723zg on a different pcb, but cannot achieve the same performance. I've only uploaded 1 spectrum image of the H7 output but the problem is the image I uploaded is not the constant spectrum, it's center frequency changes -20 to 20 Hz every sweep. I am using ~16MHz SPI speed and I have checked hardware of both pcbs, there is no problem with the communication and DAC CS jitter is very low (or none) for both MCUs. I also checked the phase word variables on the run via uart in H7 and saw that there are reoccurring (not periodic though) jumps in phase word. But I use uart so cannot be exactly sure about that. I'm sure there are no missing interrupts which I'm controlling by flipping a GPIO pin. I can use a direct write to SPI data regist
I need to implement a protocol using 11110000 as preamble. The protocol is 2-FSK 868.1 MHz, +/-35kHz, 25kbps. According to RM0511 STM32WL33 only supports 01010101 or 10101010 as preamble for 2-FSK. Is it feasible to use the STM32WL33? I am planning to use direct buffer mode.
Hi ST Support Team,I am working with the STM32L476RCT6 on a custom-designed board for an NFC reader project.I am facing a critical issue during basic bring-up:Issue DescriptionThe MCU appears to hang when using HAL_Delay() and HAL_UART functionsThe code runs only during debug (step-over execution), but not in normal run modeIn normal execution:HAL_Delay() blocks indefinitelyUART transmit functions also get stuckIn debug mode:Code executes correctly step-by-stepGPIO (LED toggle) works as expectedWhat I Have VerifiedFirmware is successfully flashedMinimal project (only GPIO toggle, no complex logic)Using default CubeMX-generated initializationSystem clock configured to HSI (no external crystal)Issue persists even in a very simple projectObservationsBehavior suggests a possible issue with:SysTick / time base not runningInterrupts not functioning correctlyOr clock configuration problemRequestCould you please help identify:Why HAL_Delay() is blocking in normal execution but works during deb
Hi everyone,I’m relatively new to embedded systems, so apologies if this has already been discussed elsewhere. I’ve tried searching, but haven’t been able to find a clear solution.I’m currently developing a system based on the STM32F746G Discovery board using TouchGFX for the touchscreen UI. In addition, I’m interfacing with a distance sensor over I2C. My goal is to log data (timestamp + sensor value, already formatted) to an SD card.The issue I’m facing is the following:When I enable only SDMMC and FatFS in CubeMX, I can successfully open a file and write data to it.However, when I integrate this functionality into my full project (which includes TouchGFX, FreeRTOS, and I2C), the SD card logging no longer works.I’d really appreciate any guidance or suggestions on what might be causing this or how to approach debugging it.Thanks in advance!
The board I am using is NUCLEO-H7S3 and I have encountered the following issuesI want to perform continuous and large data sampling using ADC+DMA, but when the collected value reaches 10000, the subsequent values become 0. When I modify the number of collected values to 50000, it stops at 17231 and the subsequent values remain 0. At this point, I am connecting the ADC pin to the 3.3V on the board. I'm not sure where the settings went wrong, please help me.Thank you.
"I am currently working on implementing Ethernet communication using a NUCLEO-H753 board. As a first step, I attempted to perform a ping test. I followed the official tutorial videos provided by STMicroelectronics step-by-step, but unfortunately, I am not getting the expected results (the ping is failing). I would appreciate any guidance or advice on what might be causing this issue or which specific configurations I should double-check." "Let me share my CubeMX configuration with you first so we can review the setup." 1. System Core - CORTEX_M7 2. Connectivity - ETH 3. LwIP 4. Clock I will also share the modified source code with you. STM32H753ZITX_FLASH.ld /* Modification start */ .lwip_sec (NOLOAD) : { . = ABSOLUTE(0x30040000); *(.RxDecripSection) . = ABSOLUTE(0x30040100); *(.TxDecripSection) . = ABSOLUTE(0x30040200); *(.Rx_PoolSection) } >RAM_D2 /* Modification end */ ethernetif.c /* USER CODE BEGIN 2 */ #if defined ( __ICC
Hello, I've recently managed to modify the SBSFU example for the STM32F413H-Discovery board and adapt it for my STM32F419 mcu, building it and executing it successfully.Now the issue is, i need to modify the loading mode from serial ymodem to downloading the firmware image from a file inside of an USB stick To do this, im using the ST driver that is present already in other projects, which requires interrupts (specifically OTG_HS_IRQn and possibly others) but when the code tries to setup the interrupt and its priority with HAL_NVIC_SetPriority(OTG_HS_IRQn, NVIC_PRIORITYGROUP_4, 0); HAL_NVIC_EnableIRQ(OTG_HS_IRQn); There's a reset of the MCU, so how do i make it so that the SBSFU project can use interrupts?I stumbled upon the AN5056 document where at page 38 talks about interrupt support in the SBSFU, but for the STM32L496 which has a Firewall feature i do not have. Is that still the correct way of proceeding? If so, how?Best regards
Hello, I'm using a NUCLEO-C5A3ZG. Not sure it's the right place to write but my goal is to setup the debugger using the STM32CubeCLT_1.21.0 Package under a VSCode environment (already using cortex-debug extension for other projects).I am able to reach the target using the embedded stlink for example with a reading of the flash : /c/Program Files (x86)/ST/STM32CubeCLT_1.21.0/STM32CubeProgrammer $ ./bin/STM32_Programmer_CLI.exe -c port=SWD freq=1000 mode=UR -r32 0x08000000 10 ------------------------------------------------------------------- STM32CubeProgrammer v2.22.0 ------------------------------------------------------------------- ST-LINK SN : 005100353235511237333439 ST-LINK FW : V3J17M10 Board : NUCLEO-C5A3ZG Voltage : 3.29V SWD freq : 1000 KHz Connect mode: Under Reset Reset mode : Hardware reset Device ID : 0x45A Revision ID : Rev Z Device name : STM32C59x/5A3 NVM size : 1 MBytes Device type : MCU Device CPU : Cortex-M33 BL Version : 0x100 Debug in Low Power mode enabl
Hello,I am working on a project where I need to both read and write regularly into the STM32 flash memory. I have some concerns and questions regarding its endurance.First off, I posted a question not long ago about writing to FLASH using ST EEPROM library. I was wondering why upon writing to a variable, it did not effectively write it into flash. This is essentially due to how the library itself works. Hence why I can not really use it to manage flash wearing, because I need the writing to happen precisely when I call a write function due to the fact that my product can be power off at any moment.So going back to the reference manual RM0456, I came upon section 7.3.8 which states:"Each flash memory page can be written and erased 10 000 or 100 000 times. A maximum of32 pages (256 Kbytes) per bank feature this increased endurance of 100 kcycles. Thisenhanced endurance can be used for data storage that usually needs more intensivecycling capability than code storage.Any flash page can be
Hi all, I’m debugging a reproducible SPI6 slave issue on STM32H753ZI and would like feedback from anyone familiar with H7 SPI v2 behaviour. Setup MCU: STM32H753ZI Peripheral: SPI6 slave Master: Raspberry Pi 5 (spidev) Pins: PA5 SCK PG8 NSS PG12 MISO PG14 MOSI SPI mode: CPOL=0, CPHA=1 (HAL SPI_PHASE_2EDGE) Pinmux verified as AF8 on live registers. Important context about observed bytes Initially master read 0xFF consistently; after removing pull-up resistors on the MISO path, reads became 0x00.This was line-bias behaviour, not a functional fix: pull-up + Hi-Z -> 0xFF no pull-up/weak low bias + Hi-Z -> 0x00 So the core issue remained: slave not reliably driving/qualifying frames. What I tested I instrumented both HAL and LL test images (counters + CR1/CFG1/CFG2/SR + pin-level edge counters). A/B tests that did not fix it NSSPolarity LOW vs HIGH AFCNTR 0 vs 1 soft/hard NSS var
Hi, I am using the Nucleo-L552ZE-Q board. I use STM32CubeMX version 6.17.0 which appears to be the laters version. When generating code for SD card FAT FS using CubeMX i get "sd_disckio.c" file containing only stubs of the functions, without content (the stub functions just return error value/no_init value). In CubeMX i have done some fault finding steps already with no luck. I have configured SDMMC1 before enabling FATFS. I am staying with default values, exvcept clock divider (Currently using 8). I am using Mode "SD 4 wide bus" Under Middleware->FATFS i enable it for SD card. SOMMC instance is SDMMC1, BSP code none. The rest is default values. FAT FS version in cubeMX is R0 12c I have tried investigating the options in CubeMC, but i cant spot anything wrong so far. I also tried starting from scratch with a new project in CubeMX, with the same result: sd_diskio.c only contain stubs. Does anyone have a fix for this issue? Or can anyone point out where i find the&nbs
Hi,I want to create a pin-compatible board to X-NUCLEO-SRC1M1 to further explore USB-C charging, is there a STEP or DXF file available for this or any other X-NUCLEO board that has both the ST Morpho and Arduino UNO R3 connectors please?Kind regards,Al
Hi, I am using two rotary encoders on an STM32U5G9ZJT. Currently I have:- TIM8_CH1 and CH2 available- TIM3_CH3 and CH4 available I know that standard encoder mode uses CH1 and CH2. CubeMX shows options like:- Encoder Mode (with remap CH1/CH2)- Encoder Mode + Index (with remap CH1/CH2 + ETR) My encoders are simple mechanical rotary encoders. Question:Should I use "Encoder Mode with remap" to map CH3/CH4 to CH1/CH2,or is there any benefit to using "Encoder Mode + Index"? Is there any difference, If I use "TIM8 in encoder mode" or "TIM3 encoder mode from remap" Thanks!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.