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
Good morning,I currently have my final design ready but I am struggling to understand the meter calibration setup in AN4470. Below are images of how to setup to meter a load as per UM2066 and also how to setup the meter for calibration as per AN4470.My main source of confusion is where a load will be applied during the calibration process. If my device is currently setup as Figure 16, do I simply replace the isolated source with the precision current and voltage source (Gen) and leave my load as is?Then I calibrate based on what the readings on the source are (assuming it is precise and I am not using a higher class precision energy meter - HPM). Thanks in advance!-J
The output of TIMX_CH1 and TIMx_CH1N is decided by previous value before bits 6:4 changed to Frozen mode?
Dear all I was setting up the RISAF4 for STM32MP257, however, the partition with name "linuxkernel2" has a glitch where its size shows as givenWhich is beyond the size of my LDDR4 set to 8Gb.How to solve it? A quick reply will be appreciated.Thanking you!With regardsAmit
HiInitial situationMCU = STM32U599VJTxQSTM32CubeIDE = v1.19.0TouchGFX = v4.26.0EEPROM Emulator = x-cube-eeprom-v8-0-0 (downloaded direct from STM website)I use the eeprom emulator to save an array of 251 bytes permant on the flash. To save the data into the flash I use the EE_WriteVariable32bits functionThis are my function to init the EEPROM emulator, write data to EEPROM and read data from EEPROMvoid Datastore::EEPROM_Init() { HAL_FLASH_Unlock(); // 1. Flash freigeben // 2. Sicherstellen, dass Flash idle ist uint32_t timeout = 1000000; while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) { if(timeout-- == 0) { HAL_FLASH_Lock(); this->m_errorHdl_p->Add(ERR_ID_EEPROM_INIT_FAILURE); return; } } // 3. Critical Section / Interrupts kurz maskieren __disable_irq(); // 4. EEPROM Init mit Retry EE_Status status = EE_WRITE_ERROR; const uint8_t max_retries = 3; uint8_t attempt = 0; while(((status != EE_OK) && (status != EE_PAGE_FULL)) && (attempt &l
Split from STM32WB05KNV6TR missing in STM32CubeIDE 2.0.0 Target Selector - this is a new questionHi Ghofrane,Thank you for the explanation. Since the WB05xN acts as a network coprocessor, it doesn't fit my current design goals as I want to avoid using an external Host MCU to keep the BOM cost and PCB footprint at a minimum.I am looking for a standalone (single-chip) STM32 wireless solution. My requirements are:Standalone Operation: The application and BLE stack must run on the same chip.Eddystone Support: It must be capable of broadcasting in Eddystone format.FOTA (Firmware Over-the-Air): The chip must support wireless firmware updates.Cost-Effective: This is a price-sensitive project, so I am looking for the most budget-friendly standalone option in the STM32WB family.Could you please suggest the most suitable part number for this use case? Would the STM32WB15 or the new STM32WB09 be the right direction for a low-cost, standalone beacon application?
I am trying to collect images from a MIPI camera that is not supported by default on the STM32MP257F-DK, but for which I have a driver. With that driver, it's seeing the camera as an attached device, and I can see it in the dmesg output and also as /dev/media2 in v4l2-ctl --list-devices. I have followed the steps at this link (modified to use the imx664 instead of imx335), and also steps I have found elsewhere (below). Is there anything I need to look for or change in order to actually see image frames from the camera, now that I can see the camera itself?media-ctl -d /dev/media2 -rmedia-ctl -d /dev/media2 -l "'48020000.csi':1 -> 'dcmipp_input':0 [1]"media-ctl -d /dev/media2 -l "'dcmipp_input':2 -> 'dcmipp_main_isp':0 [1]"media-ctl -d /dev/media2 -V "'imx664 0-0010':0 [fmt:SRGGB12_1X12/2704x1540]"media-ctl -d /dev/media2 -V "'48020000.csi':1 [fmt:SRGGB12_1X12/2704x1540]"media-ctl -d /dev/media2 -V "'dcmipp_input':2 [fmt:SRGGB12_1X12/2704x1540]"media-ctl -d /dev/media2 -
There are 4 external events that can be chosen to trigger and reset individual counters of each HRTIM timer unit in STM32H743 MCU. CubeMX shows those events once the Event Configuration is chosen "Enabled" . Yet only Source 1 is active (allowed to be chosen) but the Source 3 that I need to connect internally to the TIM2 TRGO output is inactive (cannot be chosen) . Why? My attempts to use AI got strange results - after searching the STM documents AI concluded that CubeMX is limited , it allows only external on-pin connections and any internal connections must be manually coded in addition to the generated code. If it is so then why does CubeMX show those other options yet does not allow to choose them? Or is there way to activate those options ?Please anybody give me suggestion.Note: the STM32CubeMX is the latest downloaded and installed yesterday. The MCU library pack is also current.
Hello,I recently made a custom PCB with the teseo-liv4ftr for an avionic and i have trouble making it work. The module responds to the nmea commands via I2C, but I couldn't get a fix whatsoever and not even a signal on the PPS pin.The Teseo is soldered correctly and with a proper LDO power supply. Also, I am using a Taoglas active antenna (AP.25M.07.0080A).Can anybody please help me?Schematic of the design attached below.
Hello,My STM32H573I-DK board is bricked after a failed provisioning attempt.What happened:Accidentally changed PRODUCT_STATE from Open (0xED) to 0x17 (Provisioning) via programmerThen an AI coding assistant (Copilot) attempted some configuration via DFU mode and enabled TrustZoneI no longer have access to the PC where this was doneCurrent symptoms:SWD: "Unable to get core ID", "Cannot connect to access port 1"DA discovery (debugauth=2): "The target is unable to boot on RSS_DA or is in OPEN mode"DA regression (debugauth=1) with default STM32CubeFW_H5 keys: "Unable to detect DBGMCU Mailbox" or "unable to boot on RSS_DA"DFU (USB0): "Target device not found" (with boot jumper set to SYS/MEM)UART bootloader: timeoutWhat I tried:SWD with HOTPLUG, UR, HWrst, ap=0, freq=100DA regression with default key_3_leaf.pem and cert_leaf_chain.b64regression.bat from ROT_Provisioning\DADFU via User USB (CN17) with JP4 on USB-PD positionUART via ST-Link VCPSetup:Board: STM32H573I-DKSTM32CubeProgrammer: v2
Hi,when selecting the STM32C051K8 in Cube MX it seems that CubeMX has wrong configs/specs about it?As you can see from the screenshot below it shows it is a LQFP package but - unless I missed something - it is supposed to be a UFQFPN32 package.The main issues are...1) when searching for micros with that package, that micro does not appear2) not sure if the entire CubeMX generated code is somehow affected? Firth thought is that it is just a package difference but the pin count is the same so perhaps it is ok, but perhaps not? Point #2 is the most important at the moment. Could someone form ST please guarantee we can use CubeMX to configure the part?Many thanks
Following the ST sample : STM32CubeH5\Projects\NUCLEO-H563ZII regenerated OEMiRoT_Config.obk with the STM32TrustedPackageCreator.then, rebuild the OEMiRot application and the applications OEMiROT_Appli_TrustZone_Secure & OEMiROT_Appli_TrustZone_NonSecureI ran the script : \ROT_Provisioning\OEMiROT\provisioning.batusing the 'PROVISIONED' choice.The script returns No error. But When I check the PRODUCT_STATE with STM32CubeProgrammer, the state came back to OPEN instead of PROVISIONED.But, I had to use the DA to connect to the device with the STM32CubeProgrammer. So, OBK files seems to be applied.I has already checked that the PROVISIONING state has been correct before the OBK provisioning sequence.So it's the action "set state PROVISIONED" that fails (or maybe an issue with the OBK files ???, but no way to check if they are OK).Someone has already meet this issue ? How to fix it ?
Post edited by a ST moderator to be inline with the community rules especially on the code sharing. In next time please use </> button to paste your code. Hi I am struggling getting context save restore working correctly, when operating the HASH hardware block using polling mode.Basicly the flow is like this: /* --- STEP 1: Start hashing first chunk --- */ HAL_HASHEx_SHA256_Start(&hhash, input1,strlen((char*)input1), digest,HAL_MAX_DELAY); /* --- STEP 2: Save context --- */ HAL_HASH_ContextSaving(&hhash, context); /* --- STEP 3: Restore context --- */ HAL_HASH_ContextRestoring(&hhash, context); /* --- STEP 4: Continue hashing --- */ HAL_HASHEx_SHA256_Accumulate(&hhash, input2, strlen((char*)input2)); /* --- STEP 5: Finalize hash --- */ status = HAL_HASHEx_SHA256_Finish(&hhash, digest, HAL_MAX_DELAY); However when calling HAL_HASH_ContextSaving the DINIS is not equal to 1 and CSRx registers return zeros as stated in the reference manualHow do it
I got an error when downloading the .sfi file to STM32H753II using the STM32Programmer_CLI, my HSM version is V2AE.The error message is as follows:What its mean?V2AE cannot support STM32H753,and must use HSM_V1?or H753 cannot support SFI ?I’m a new use about SFI.Looking forward to your reply.
Hi,I am using SBSFU v2.8 with an STM32H750. I have successfully booted my firmware without any protections. I have also enabled protections and succeeded all tests in the test suite provided in the example code in sfu_test.c.However, when I attempt to boot my firmware with any protections enabled at all, I get the following, followed by a reset.This is happening at the first control flow check at line 1092 in sfu_boot.c.In my research, I found this post. I replicated it and included app_sfu.h in sfu_boot.h. It works now.I would like some clarification on this whole situation. Is this a bug? or is my build system just not including app_sfu.h appropriately ?Thanks!
Hello, I am working with an STM32 B-U585I development kit. The board has been previously used, and some protection-related configurations have been modified. I am now trying to perform new tests on the device, but I believe I am unable to bypass the current protection settings. I would appreciate your assistance on this matter. A TFM application was previously installed on the board. When connecting via STM32CubeProgrammer, I observe the following: 1. Connection settings: I connect with the following configuration: Boot0 = 1 Port: SWD Mode: HotPlug Reset Mode: Hardware 2. STLinkUpgrade tool: When opened, the ST-LINK is identified as: Type: STM32Debug+VCP 3. STM32CubeProgrammer observations: RDP = 0xDC (Level 1, read protection of memories) TrustZone = 1 OEM1LOCK = 1 OEM2LOCK = 0 I do have the required password to unlock RDP, and I am able to successfully unlock the RDP protection. My development environment: STM32CubeIDE v1.19.0 To verify firmware download capability, I created
I have STEVAL-PTOOL4A connected to drive - 12V sensored BLDC motor - 2 pair poles - 16k rpm I faced 2 problems - First motor doesn't operate with potentiometer when used alone without the workbench- leds doesn't light(( THE SYSTEM POWERED BY 12VDC 10A))
Hello,We are using the STM32N6 series MCU in our project and encountering issues during debugging. I’ve attached a screenshot of the error message we are seeing.We followed the steps outlined in this guide:https://community.st.com/t5/stm32-mcus/how-to-debug-stm32n6-using-stm32cubeide/ta-p/800547However, the code cannot be debugged from external flash (in dev boot mode).But, when we boot from flash (flash boot) and the debugger is not connected, the code runs as expected.Also, debugging from RAM with FSB works, but debugging the App code from RAM fails and gives the same error.Based on the information in this page:https://wiki.stmicroelectronics.cn/stm32mcu/wiki/Category:Security_with_STM32N6,could this issue be related to the STM32N6's debug security features?Best regards,Egemen Aksoy
It would be nice if the further versions could be running on case sensitive file system on macOS.Currently I need to use an USB key formatted APFS only. Then i can run the installer and install the programmer on this USB stick. As I most of the time only need the command line tools (*CLI) I copied the binaries and some folders with data on my case sensitive disk. They work fine. Only the GUI is not possible on the case-sensitive file system.
Split from The MCU selector cannot be opened, but the board selector can be opened normally.That issue is confirmed as solved; so this is a different issueI had exactly the same issue and could be solved by removing xcubeai.But it's confusing while reading this thread, another reply was marked as solution. Actually deleting .stm32cubemx/finder doesn't work.
Hello STM32 Community,I am currently developing a USB Type-C Active Cable application using an STM32 with the official USB-PD Middleware.My Goal: The MCU needs to behave as an EMarker/Active Cable. Therefore, it should:Ignore all SOP messages on the CC line (no response and no GoodCRC ).Only respond to SOP' and SOP'' messages.Able to monitor (Snoop) SOP messages exchanged between the Source and Sink to maintain state awareness.The Problem: In the current X-CUBE-USB-PD middleware and STM32CubeMX configuration, there is no explicit option to disable SOP handling while keeping SOP'/SOP'' active. Since GoodCRC is typically handled by the UCPD hardware autonomous logic to meet the strict tTransmitSOP timeout, the hardware automatically sends a GoodCRC when it detects a valid SOP message CRC, even if the firmware isn't intended to process it.Technical Details & Questions: I am looking for a way to bypass or disable the hardware-level auto-response for SOP only.Register Control: Is there
I have a STM32WB05TZF6TR. All VCCs are running off 1.8V. I'm trying to use PA8 and PB5 with 3.3V 10k pullups. But the signals are being clamped at 2.5V. I had expected this not to happen, as they are supposed to be 5V tolerant. Does anyone know what's happening here? There's nothing connected to the pins besides the pullups. I have a bare STM32CubeMX project, with just this GPIO init:void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin : PB5 */ GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PA8 */ GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } Much appreciated,David
In ds H5E5 is given: 3x 12b ADCbut on selector is shown:...so secret 3 x 16b ADC there - or error in table ?
I want to design according to the Figma design, but I have no clue.How can I make the menu follow the selection in the simulator? If I want the last menu to scroll down.
Hello,I am planning to use the TLV320AIC23B audio codec with the STM32H7B3LIH6Q controller.Kindly confirm:Is TLV320AIC23B compatible with STM32H7 (using SAI/I2S for audio and I2C for control)?Any specific requirements for clock (MCLK) or configuration to ensure proper operation?Thanks.
I am using the NUCLEO-WL33CC1 (for 868 MHz freq) and I tried the LPAWUR feature based on the Github examples that you provided:https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/LPAWUR/LPAWUR_WakeupRadio_Rxhttps://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/MRSUBG/MRSUBG_WakeupRadio_Tx The issue is that the range that I get is a max of 3 meters, no more that this. I already soldered the C3 capacitor, that is by default missing, with a value of 100pF. The L3 is 5.6nH and L4 is 6.8nH based on the schematics (MB2029) of the NUCLEO witch matches the values that are in the User Manual of the Nucleo (UM3418). Questions:Is there anything that I am missing here in order to get a better range for the LPAWUR feature ?Should I be using a higher power Tx mode to get a better range, on the Github example the Tx power is set to 14 dbm ? If I change these value to 20 dbm and to PA_DRV_TX_TX_H
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.