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
Subject: STM32U5A5: Unexpected behavior on PA11 when used as SPI1_MISO Hi,We observed unexpected behavior on STM32U5A5 devices when using PA11 as SPI1_MISO.The issue has been reproduced on multiple STM32U5A5 devices from different production batches as well as on an STM32U5A5 evaluation board. The same software and hardware setup works correctly on an STM32U585. Description===========When SPI1 is enabled and PA11 is configured as MISO, the pin appears to load the signal unexpectedly.In our setup, the external SPI device drives the MISO line push-pull. However, the signal level reaches only about 2.9 V when active. When the SPI device is inactive (CS de-asserted), the signal drops only to about 2.3 V. To exclude the external SPI device as the root cause, we disconnected it completely and performed a simple GPIO test:- PA11 configured as GPIO input- PA11 connected to 3.3 V through a 10 kΩ resistorExpected result:- PA11 voltage close to 3.3 VActual result:- PA11 voltage only slightly abov
I am developing a control board based on the STM32G474RE microcontroller. This board is self‑designed using Board Designer within Workbench 6.4.2. After configuration and project generation in Workbench, the generated project works fine. The HSO option can be enabled, and no errors or warnings are reported for all parameters. Compilation in MDK‑ARM completes without any issues. I have reviewed the initialization code for ADC1 and ADC2, which are used for phase‑current and phase‑voltage sensing. In principle, the HSO measurement mechanism relies on synchronization with the PWM signals. The PWM waveforms are generated by TIM1. However, I observe that TIM3 is configured as the input trigger source for the ADCs in the initialization code, instead of TIM1 as I expected. Is this a bug in the code‑generation output? Please provide assistance.今天 11:32聊聊新话题
Subject: YOLOv8n ONNX conversion fails with "region 'ROM' overflowed by 5601536 bytes" on STM32N6570-DKI am trying to convert and generate a YOLOv8n ONNX model for the STM32N6570-DK using STM32Cube AI Studio / ST Edge AI Core.My target configuration is:Board: STM32N6570-DK Accelerator: ST Neural-ART RAM: 4200 KB Internal Flash: 0 KB External RAM: 32 MB External Flash: 128 MB Mode: On targetHowever, the generation fails with the following error:region 'ROM' overflowed by 5601536 bytesSince the STM32N6570-DK has 128 MB of external Flash, I would like to understand why the ROM region overflows and whether the model/data can be placed in external Flash.What memory configuration or settings should I use to deploy YOLOv8n on the STM32N6570-DK?I have attached the complete log and the ONNX model. YOLOv8n Data↓https://github.com/ultralytics/assets/releases/download/v8.4.0/yolov8n.pt
NUCLEO-V873XJ board bring-up.STM32CubeIDE 2.2.0 includes support for the STM32V8 series devices; however, the NUCLEO-V873XJ board is currently not available within STM32CubeMX board configurations
Hi,I'm trying to setup HSO on the G431, I used the B-G431B-ESC1 board as a starting guide. I'm trying to use differential sensing with internal OP-AMPs and internal PGA. I have split the currents and phase voltages across ADC1 and ADC2 but I still cannot get the HSO option to show up with MC workbench. I'm using the latest version. I have attached my board JSON file, any guidance will be appreciated.Thanks,Ray
Hello, I am new to STM32 MCUs. We are looking for a low-pin-count MCU with DAC, CAN, and Timer peripherals. Currently, we are working on a DAC application using the NUCLEO-F429ZI board. Could you please suggest a suitable STM32 MCU with fewer pins that supports mainly DAC, CAN, and Timer peripherals? Thanks and Regards,
Hello everyone,I am bringing up a custom motor control inverter board based on the STEVAL-TTM001V1 evaluation kit. I am using StellarStudio, OpenOCD, and the Stellar Motor Control Tool Kit (MCTK with StellarESDK-1.7.0).The Problem: My firmware runs perfectly when launched via a Debug session in StellarStudio. I can step through the code, initialize peripherals, and hit my main loop. However, if I disconnect the debugger and power-cycle the board (or press the physical Reset button), the application completely fails to start.What I have verified so far: Flash Linking: My linker script is correctly pointing to Flash (core1_nvm at 0x08000000). OpenOCD successfully flashes and reports ** Verified OK **. The Trap Location: If I power-cycle the board, let it fail, and then hot-attach the debugger without resetting, I find the PC is trapped in an infinite assembly loop. No Hardware Faults: While trapped in this loop, I checked the CFSR register (0xE000ED28), and it reads 0x00000000. This
Hi ST,I’ve run into a whole lot of issues adding interrupt-based UART to your OEMiRoT w/ Trustzone example on a NUCLEO-U385RG-Q.As you may know this example is not compatible with CubeMX, and it’s not clear which steps are needed to manually incorporate UART4 so that it activates an interrupt on receipt of input when running in the Non-Secure region of code. The idea is to only access the Secure region when needing to utilise certain sensitive variables, called from within a Non-Secure function.Let’s take this opportunity to establish a step-by-step guide for someone who isn’t (yet) an embedded professional, please excuse my ignorance if this already exists, I’d be just as happy to be directed there. My settings so far are:1. Secure/Inc/partition_stm32u385xx.h: Initialise UART4_IRQn as Non-Secure#define NVIC_INIT_ITNS2 1#define NVIC_INIT_ITNS2_VAL 0x000000012. Secure/Src/main.c: Define UART4 pins (CN7 1 & 2, or PC10 & 11) as NonSecureHAL_GPIO_ConfigPinAttributes(GPIOC,
hiIm using the STM32G474RETx for my project.I connected some timers for it but most of them warent generated on my main.c file (TIMER1, TIMER8 and TIMER16 were generated there), but TIM2,TIM5, TIM20 warent generated although i initiated them on the cube file.In addition, the compile button is disabled.Can someone help me with it please.Attached is my cube file.
Context : I want to write a FSBL load and run application on a custom minimal PCB based on STM32N6-DK design. The board uses SMPS power supply and not the default power supply of the STM32N6-DK. I follow this original tutorial as a main example. Problem faced: CubeProgrammer SigningTool version compatibility and header size 1) Write a custom external bootloader to write and read external flash memoryModify the power supply parameter (System Core --> RCC --> SupplySource) in CubeMX to `PWR_SMPS_SUPPLY`Generate ExtMemLoader template from CubeMX Build ExtMemLoader to generate .stldr filemake sure the post build script can be executedmanually copy the .stldr file generated in `/STM32CubeProgrammer.app/Contents/Resources/bin/ExternalLoader/` if necessary 2) Modify SigningTool header generation command in FSBL post-build Build FSBL & Application following the original tutorialCheck heading size, it might be different from the 0x400 that is defin
Hi all,I'm trying to flash a fresh STM32G0x1 MCU (Device ID: 0x466, Revision ID: Rev 1.1) using ST-LINK V2 (FW: V2J48S7) in Hot Plug connect mode with Hardware reset mode, SWD frequency 100 KHz, target voltage reading 3.26V.ST-LINK connects and correctly reads the Device ID and Revision ID, but then fails with:Error: Unable to get core IDError: Unable to get core IDUPLOADING OPTION BYTES DATA...Bank: 0x00Address: 0x40022020Size: 108 BytesError: Uploading Option bytes bank: 0 failedError: Initializing the Option Bytes failedDisconnected from device. Things I've tried: 1. SWD wiring (SWDIO, SWCLK, GND, NRST, 3.3V) checked Target voltage reads 3.26V, stableTried Hot Plug + Hardware reset modeAny guidance on the issue would be appreciated.Thanks!
Hi,I have a firmware running on an STM32H753 that was working correctly. After updating the STM32H7xx_HAL_Driver (by performing the migration in STM32CubeMX), the MCU gets stuck during the execution of SystemClock_Config().While debugging, I noticed that before the migration CubeMX generated:HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)After the migration, the same function is generated as:HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0)If I manually change it back to:HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)the MCU works correctly again. However, every time I regenerate the code from CubeMX, it goes back to FLASH_LATENCY_0.I have already tried changing the PLL and clock parameters in the Clock Configuration tab of CubeMX and then restoring the original values, to check whether CubeMX was not correctly updating the clock tree calculation, but the generated code still contains FLASH_LATENCY_0. Is this a bug introduced in the new HAL driver/C
I am using a STM32G071CB MCU on a device that connects to a battery that supports USB PD and I would like to get a battery status periodically. Code generated by STM32CubeMX that includes trace and GUI code works as expected when using STM32CubeMonitor-UCPD. However, the return path of a battery status reply message does not go through usbpd_dpm_user.c, but through GUI code instead. I would like my application to use usbpd_dpm_user.c as the interface using STM32Cube_FW_G0_V1.6.3, but information on how to do that is incomplete and examples are outdated. There seems to be more required than just selecting appropriate usbpd PE options and adding code to USBPD_DPM_SetDataInfo().Currently, USBPD_DPM_RequestGetBatteryStatus() returns USBPD_ERROR, but a request is send to the battery anyway. However, the battery status reply message does not trigger a call to USBPD_DPM_SetDataInfo() or USBPD_DPM_ExtendedMessageReceived(). What am I missing? Is there any documentation other than usbpd basics?
Dear STM Support Team,the following CLI command takes about 30 seconds on a Raspberry Pi (thanks again btw!) compared to 1 second max on windows: STM32_Programmer_CLI -c port=swd sn=xyz I am using this in a loop to detect whether a MCU is connected.All other commands i tried are comparable in speed to windows so i guess this is a bug.The Pi is a Model 5 running Bookworm and a 6.12 kernel. Thank you very much!
Hi there, Is there a drop in replacment for the IS42S32800G-6BLI (besides the obselete MT48LC4M32B2B5)? Or one that is recommended with the STM32H757?
I want to use the example project Ux_Device_CDC_ACM.ioc as the basis of a project to create a Virtual COM Port to bridge USB to UART. I made sure I downloaded the patch version stm32cubec0-v1-4-1. I opened the project in CubeMX. I corrected the USBX Platform Settings to USB, then went straight to generate code for IAR EWarm, as I usually do. Again, as usual, I began by trying to compile the generated project, which has always worked for me before. But I get Ux_Device_CDC_ACM - Ux_Device_CDC_ACM build_ide.ninja:118: multiple rules generate C:/Users/garyd/Downloads/stm32cubec0-v1-4-1/STM32Cube_FW_C0_V1.4.0/Projects/NUCLEO-C071RB/Applications/USBX/Ux_Device_CDC_ACM/EWARM/Ux_Device_CDC_ACM/Obj/STM32C0xx_HAL_Driver_13552679092417003011.dir/stm32c0xx_hal.o Any ideas?
I have taken one dot board a placed the MCU (TSSOP14) STM32L021D4P7 wired with STLINK V2 programmer , Boot0 pin to pull up and pull down option with jumper wire , NRST pin also same pull up 10kohm and jumper wire to pull down to ground. In STM32 CUBE programmer latest version i am using STM32CubeProgrammer 2.23.0 , chip is only detecting if under hot plug mode , under reset mode it not working , its first time from factory its programming through SWDIO /SWCLK VCC and VSS . After detecting the hex file if a loaded its showing internal memory [0 45] failed to erase, so RDP - i kept to AA it in STMcube programmer after that if i click file for programming in GUI its crashing the tool. Kindly give help to program this IC.
I'm trying to use USB SOF for CRS, but CubeMX2 throws an error asking me to enable USB Host. USB SOF for CRS is meant to be used with USB device.
I have my application running properly on my custom board based on STM32C091RCT6 MCU. I developed my application with STM32CubeMX v6.18.0 and STM32C0 Firmware Package v1.4.0 and I use X-CUBE-FREERTOS.1.6.0 (FreeRTOS 11.2.0 and CMSIS-RTOS 2.1.3).Now I need to modify my IOC project. STM32CubeMX notified me for upgrade to the new release 6.18.1 and STM32C0 Firmware Package v1.4.1. So I install the updates and then I let STM32CubeMX migrate my IOC project. I generate the new upgraded application project and build without any errors.But my application crashes when it starts to run. With the debugger I see an unexpected interrupt is generated as osKernelInitialize() is called; my application falls into Default_Handler().Is X-CUBE-FREERTOS.1.6.0 maybe not compatible with STM32C0 Firmware Package v1.4.1?With the upgrade only some of the files in my “Drivers” folder were changed as well as my IOC and .cproject files.
I attempted to create a new Motor Control Workbench project selecting Controller B-G473E-Zest1S and EVLDRIVE102BP. This combo pops up error window preventing project creation… Errors BusInterfaceConnect: SPI_FullDuplex_SWnSS No IP matches all signals requirement General: Interface STDrive102Interface not found in BusInterfaceArray General: Interface STDrive102Interface not found in BusInterfaceArrayI had previously used the EVLDRIVE102BP connected to P-Nucleo-IHM-03 with no trouble. Now I wish to upgrade my design with G473 or G474 to handle HSO or future ZEST.What’s my best course of action to fix that error and get the board combo working?Alternatively I could base my design on the standard ZEST Kit with STEVAL-LVL01A and upgrade the MOSFETs for higher current.Please advise...
Hi,I am in the middle of migrating a project from STM32F767 to STM32H743. Both MCUs being compatible helped a lot.But there have been still a few road blocks, the last of which seems to be SPI. We use SPI3 to interface with a RA8875 based LCD. With DMA, we were able to get good results on F767, but so far not so much on H743. After connecting MOSI/MISO/CLK/CS lines to a logic analyzer, I noticed there both MOSI and CLK lines idle about the half of the time. Please see the screenshot below. During a supposedly active session of data transmission, either through DMA, or blocking write, there are several gaps. The measured during of those gaps are about either 5ms or 6ms.My question is: when would a SPI instance go into idle state? waiting for TX data to be ready (related to the famous D-cache issue on H7)? Please advise. Thanks in advance.ZL
I am running into a frustrating issue while trying to debug my project. Whenever I start a debugging session, the debugger fails to hit or start from the main () function. I have already double-checked and configured the settings under Tools > Options > Debugger [adjust path if necessary], but the issue persists. Because of this, it's extremely difficult to step through the code and understand the execution flow from the beginning. Environment Details IDE / Version: IAR EW 9.20.2 Language: C/C++ touch GFX framework is there Operating System: Windows STM32H750IBTx What I've Tried Checked and re-configured the debugger paths under Tools > Options > Debugger. Cleaned and rebuilt the solution/project. Kept breakpoint one the very first line of code after main () Error Message / Behavior The execution does not stop in main () entirely or throws a symbol loading error.
Hi,In my project with STM32N6 am not using CSI interface, so in this case, all CSI pins are not connected.But what about CSI output CSI_REXT where according to the manual must be connected 200 Ohm resistor to GND?Can I keep this pin unconncted too? In the manual there is only information that resistor is for setting current for RX/TX driver. Similar situation is in USB interfaces, but in STM32N6 Nucleo-144 development board is one of the USB completly unconnected (including OTG2_TXRTUNE pin with similar function like CSI_REXT pin). Which I take as an aswer in case of USB.I dont know what is diferences in internal structure between RX/TX driver in USB and CSI, but i case of USB in my project (USB is not used too) i wil keep every pins unconnected. But can I afford it in case of CSI? Thanks a lot.Rddk.
After generating a CMAKE project using STM32CubeMX2 v1.1.1 followed by setting compiler options to “treat warnings as errors” (-Werror) and enable strict standards-conformance (-Wpedantic) in the root CMakeLists.txt file, I am errors in, mx_def.h. Though this post shows the workaround:What is the recommended C Standard that STM32C5 project should follow? If the generated code stated “gnu11” but yet uses “gnu23”, shouldn’t the generator use the latter instead (see solution)? And, what are the dangers of doing so? Error Message:error: ISO C restricts enumerator values to range of 'int' before C23 Full Error message:[build] C:/PathTo/ProjectName/source/App/generated/hal/mx_def.h:32:38: error: ISO C restricts enumerator values to range of 'int' before C23 [-Werror=pedantic][build] 32 | SYSTEM_OK = 0xEAEAEAEAU, /* System initialization successfully */[build] | ^~~~~~~~~~~[build] C:/PathTo/ProjectName/source
Hello,On an STM32H725, changing RDP from Level 0 to Level 1 causes the firmware to stop running. In my device, the LED and FDCAN stop responding, even without a debugger connected. During debug session, this occurs in “HAL_FLASH_OB_Launch()”, more specifically after “SET_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTSTART);”. After a manual power cycle, the firmware runs normally and RDP Level 1 is successfully applied.Is this expected behavior? Is a reset required after changing RDP from Level 0 to Level 1,Thanks!
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.