Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I have STM32H755ZIT3 controller, and I am tying to read voltage sensor AMC1333M10 and sensor has internal clock of 10 MHz . I am trying to read on controller DFSDM channel 7, core M4 with clock 64 MHz . Is this practically possible to read in such a configuration ? As when I read the value(dfsdm_buffer), it is always 7 (~0) whether there are voltages on the terminal or not.Code: // start HAL_DFSDM_FilterRegularStart_DMA(&hdfsdm1_filter0, (int32_t *)dfsdm_buffer, BUFFER_SIZE); // callback : void HAL_DFSDM_FilterRegConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter) { ... }Following is my configuration for DFSDM in MX : Channel 7 : "PDM/SPI input form ch7 and external clock"Channel 7 :Channel 7 Parameters:Type : "SPI with rising edge"Offset : 0Right Bit Shift : 0x00Analog watchdog parameters:Filter Order: "Sinc 3 filter type"Oversampling: 1Filter 0:regular channel selection:regular channel selection: "Channel 7"Continuous Mode: "Continuous Mode"Trigg
I am using ST’s Motor Control Workbench (MCW) version 6.3.2 to control a sliding door. I am using PMSM as motor and FOC as control method. PMSM has 10 pole pairs and there is a 1024 ppr incremental quadrature encoder on it (has not index pin). I am using Nucleo-G474RE, STEVAL-IHM023V3 and X-Nucleo-IHM09M2 boards. I am having trouble with encoder alignment. if I'm not mistaken, ST MCW uses “move till aligned with phase A” method (see attachment) as the encoder alignment. But i have a mechanical limit and this will not allow the motor to perform the needed alignment movements. I have posted this in the motor control forum. Not answered yet (https://community.st.com/t5/stm32-mcus-motor-control/incremental-encoder-alignment-problem/td-p/775343) Does ST have any plans to update MCW software to include the motionless start method into speed sensing configuration in the near future? Can anyboady give/share source code/flow chart etc.? Any information you provide will be gl
Hi,I am working with the STM32N6 series MCU on the STM32N6570-DK board and have encountered a pin multiplexing conflict.As per the schematics and datasheet:PA15 (JTDI) and PB4 (JNRST) are multiplexed with LTDC signalsThese pins do not appear to have alternate mappingsMy use case requires:LTDC for driving the displayJTAG for debugging (full JTAG, not just SWD)However, enabling LTDC conflicts with the JTAG interface, specifically JTDI.I have a few questions:Is there any supported way to use both LTDC and full JTAG simultaneously on STM32N6?Are there any alternate pin mappings or remap options available that are not obvious from CubeMX?Is dynamic switching (e.g., using JTAG during debug and reconfiguring pins for LTDC at runtime) a viable or recommended approach?Are there any hardware workarounds or recommended debug strategies for this scenario?I understand that switching to SWD avoids this issue, but I would like to confirm if full JTAG usage is fundamentally incompatible with LTDC on t
Hello ST Community,I am facing a critical issue with my STEVAL-PROTEUS1 board. The device is in a state where neither the wireless stack nor the application code can be updated or debugged.1. Corrupted Device Information (SWD_READ_FUS.PNG)When reading FUS info via ST-LINK (SWD), the device returns corrupted version numbers:FUS Version: v68.39.fffffe0.7STACK Version: vfffffff0.0.68.78 2. FUS & Wireless Stack Operation Failures (SWD-START-FUS.PNG / SWD-START-WIRELESS.PNG)Attempting to start the FUS or Wireless Stack results in:Error: FUS_STATE_ERR_UNKNOWN: Unknown errorLog: Start FUS Operation Failure! and Start Wireless Stack Operation Failure!3. Flash Write & Verification Mismatch (SWD-UPLOAD-CODE.PNG)I am unable to flash a standard application elf file. Even though the device is connected via SWD:Error: Data mismatch found at address 0x08001000 (byte = 0x12 instead of 0x00)4. USB DFU Mode Inconsistencies (USB-READ-FUS / USB-START-WIRELESS)Switching to USB (PID: 0xDF11) s
Hello ST,What is the maximum current draw into the STM32H563/573's VDDUSB pin, please? Is this the same as IDD(USBBCD), i.e. 300 uA (ds14258 rev.6 Table 120)?
Hi, please share CMRT (Conflict Minerals Reporting Template) EXCEL FILE FOR STM32F051K8T7
Hello guys, I would like to know if it is possible to directly connect NUCLEO-F446RE board with steval-mic003v1 mic array without any expansion board. Would love to know your feedback and much appreciated.
Hello, I am working with STM32H750 and encountered an issue related to SPI communication in low-speed mode. Issue description When operating SPI in low-speed (e.g. prescaler /128, ~195 kHz), I observed that: The last SCLK high pulse becomes shorter than the others This may affect correct sampling of the last bit on the slave side This behavior seems consistent with Errata 2.22.6: "Truncation of SPI output signals after EOT event" Root cause understanding From the errata description and signal observation, it appears that: The SPI peripheral is disabled too quickly after the EOT event Since the CPU (PCLK domain) is much faster than SCK,the last SCLK high period is truncated Implemented workaround To address this, I modified the HAL driver (stm32h7xx_hal_spi.c::SPI_CloseTransfer()) to introduce a short delay between EOT and SPI disable, only in low-speed conditions. Instead of using a fixed delay, I implemented a minimal delay proportional to SCK period, to avoid unnecessa
I'm trying to get a basic example of USB comms working on an STM32U575 chip working. I've looked into several bits of example code, but they all just say "it should just work" and don't. STM32CubeU5 Example. This seems like a logical choice, as it's packaged in the FW pack that I'm currently using. But I can't get the VSCode STM32Cube extension to recognize that it's a project and build. I've tried moving the STM32CubeIDE directory contents (.cproject, .project, etc.) to the root of the application directory, but it's still not being recognized. Also, looking into Core directory, I don't see any code that demonstrates USB data transfer. It looks like a template for starting with AzureRTOS, but nothing beyond that. What am I missing?USB_Device Middleware. This is one example that describes using a middleware called USB_DEVICE, and then calls to a function CDC_Transmit_FS(). There are several other examples floating around with this. H
Problem: nRST appears to leave the STM32U5 inoperative when applied at any time other than followingapplication of power. Serial traffic is expected through UART4 following a reset. When the boardis powered on, the STM32U5 software runs as expected; initial traffic through UART4 and thenthe STM32U5 interacts through UART4, accepting typed in commands and producing expectedresponse traffic.If the reset switch (SW1) is used to reset the STM32U5, it does not produce the expected serialtraffic and no longer communicates through UART4.A power-cycle of the board produces expected serial traffic and the board interacts (throughUART4) as expected.The board does not reset correctly after being programmed (using a STLINK-V3SET program-mer). The program flash is, however, correctly programmed. The updated flash image works fol-lowing a power-cycle.This schematic fragment shows power, BOOT0, nRST and programming connections to theSTM32U575RIT6 (U1 is 64LQFP package). Bulk capacit
Hello everyone,I have followed the steps in this forum post (“Solved: Deploying a deep learning model on NUCLEO-H753ZI”) Solved: Deploying a deep learning model on NUCLEO-H753ZI - Page 2 - STMicroelectronics Communityto try X-CUBE-AI’s validate feature on the STM32N6570-DK board. Below is my workflow and the problem I encountered:1. BackgroundDevelopment Board & Firmware VersionsBoard: STM32N6570-DKX-CUBE-AI Version: 10.1.0ST Edge AI Core Version: 2.1.0Models That Have Validated SuccessfullyI first used the simple example model provided in that forum post, and validation completed with results.I then tested one of ST’s official STM32N6 AI-demo models; validation completed successfully and reported the expected accuracy metrics.New Model Under TestMy colleague provided a different, more complex model from the STM32 Model Zoo(The model file is attached at the end of this post.). All earlier steps—generate, compile, download to the board—worked fine. However, during the validation ste
STM32L052TIM21, Channel 1: Output PWMTIM21, Channel 2: Switching between Output PWM and Input CompareSystem Clock: 32 MHzHello,I want to use TIM21 of STM32L052 for PWM output on channel 1 and input capture on channel 2 simultaneously. uint16_t TIM_CCMR1_backup; uint16_t TIM_CCER_backup; // PWM on channel 1 and channel 2 void PWM_init(void) { RCC->APB2ENR |= RCC_APB2ENR_TIM21EN; TIM21->CR1 &= ~TIM_CR1_CEN; TIM21->ARR = 0xFFF; TIM21->CR1 = TIM_CR1_ARPE; // TIM21, channel 1 TIM21->CCMR1 |= (0b111 << TIM_CCMR1_OC1M_Pos); // PWM mode 2 TIM21->CCMR1 |= TIM_CCMR1_OC1PE; // output compare preload enable TIM21->CCR1 = 0; // reset output compare register TIM21->CCER |= TIM_CCER_CC1E; // enable output // TIM21, channel 2 TIM21->CCMR1 |= (0b111 << TIM_CCMR1_OC2M_Pos); // PWM mode 2 TIM21->CCMR1 |= TIM_CCMR1_OC2PE; // output compare preload enable TIM21->CCR2 = 0; // reset output compare register TIM21->CCER |= TIM_CC
Hello everyone,I would like to share my recent project developed using TouchGFX for industrial applications.I have designed a fully modular keyboard UI using custom containers. The keyboard supports:Uppercase and lowercase inputNumeric keypadSpecial charactersPassword inputEmail inputCalibration data entryThe project is designed with a focus on real-time usability and clean UI design for embedded systems.GitHub Repository:https://github.com/DhruvProject4/touchgfx_advanced_keyboard.git Screenshots: I would really appreciate your feedback and suggestions.Thank youDhruv Dave
New question moved from this post. Another question: which is the best way to proceed for the schematic design of a custom board with series G49 or H5? is it better to: - start from the datasheet of the MCU, - or from some applications notes like this https://www.st.com/content/ccc/resource/technical/document/application_note/76/f9/c8/10/8a/33/4b/f0/DM00115714.pdf/files/DM00115714.pdf/jcr:content/translations/en.DM00115714.pdf - or the reference schematic of the NUCLEO - or the CUBMX configurator (but all the connections for power, crystal are not specified here) - or other resources are more indicated for easy design setup? thanks again
Hi all, X-CUBE-AUDIO-KIT has a project for STM32H573I-DK but this discovery kit has a very small LCD screen. I see the soon to be available STM32H5F5J-DK with a larger screen. Both of these kits have an M33 core MCU so technically the example for one could be ported to the other but that's not something I'll like to do. Will there be an upgrade to X-CUBE-AUDIO-KIT anytime soon and will it include any examples for STM32H5F5J-DK? Thanks
Hi everyone, I’m working on an STM32N6 project configured with: ThreadX running in Non-Secure SAU configured RISAF configured External Memory Manager enabled(Load and Run mode) The project is very simple. However, when debugging the Non-Secure application, as soon as tx_thread_schedule() is called, execution jumps to HardFault.The Fault Analyzer reports: “Attempt to do exception with bad value in EXEC_RETURN number (INVPC)”. The code is loaded in external flash memory using Load and Run mode, the signed bin files are uploaded in the external flash using STM32CubeProg and then debugged using STM32CubeIDE.Has anyone experienced INVPC errors on STM32N6 with ThreadX in Non-Secure?Any suggestions would be greatly appreciated.
Hello everyone,we have a setup where the STM32U375 MCU is the slave in I2C communication.We want to NACK the host request on certain conditions. Basic description of our firmwareWe are internally using a register structure in the MCU and the host can send a read/write request via I2C to access the contents of the registers.The current register address is handled internally by the firmware and automatically incremented on each byte written / read.For example, if the requested register address is 0x0001, the host should not be allowed to write to the register but only to read it.First we receive the one-byte device address, then the 2-byte register address.After receiving the 2-byte register address, we can check if the host is allowed to read/write on this register and want to either ACK or NACK the communication on I2C1. Solution tried but not successfullIt seems when HAL_I2C_AddrCallback is called then it is already too late to NACK the current byte and the hardware has alre
Hello"Program and Run Target" stops with some Messages (Small Test Prog.)"Program All": ------------------------------------------------------------------- STM32CubeProgrammer v2.22.0 ------------------------------------------------------------------- Memory Programming ... File : STM32N6570-DK_FSBL-trusted.bin Size : 32.63 KB Address : 0x70000000 Erasing memory corresponding to segment 0: Erasing external memory sector 0 Error: failed to erase memory Error: failed to erase memory c:/TouchGFXProjects/MyApplication_5/gcc/include/flash_sections_int_ext.mk:18: recipe for target '_fsblflash_' failed make[2]: *** [_fsblflash_] Error 1 makefile_fsbl:45: recipe for target 'flash' failed make[1]: *** [flash] Error 2 ../../gcc/Makefile:8: recipe for target 'flash' failed make: *** [flash] Error 2 Failed "Program Internal Flash": Memory Programming ... File : STM32N6570-DK_Appli-trusted.bin Size : 345.22 KB Address : 0x70100000 Erasing memory corresponding t
Hello, I'm trying to do a quick test with the STM32F412G-Discovery kit and the analogue microphone input.I use this example https://github.com/STMicroelectronics/STM32CubeF4/tree/master/Projects/STM32F412G-Discovery/Examples/BSPwith the menu #### AUDIO REC ANALOG ####.The problem is that the firmware crashes at the line BSP_AUDIO_IN_Record(internal_buffer, AUDIO_BLOCK_SIZE); void AudioRecAnalog_demo (void) { AudioRec_SetHint(); /* Initialize Audio Recorder */ if (BSP_AUDIO_IN_InitEx(INPUT_DEVICE_ANALOG_MIC, DEFAULT_AUDIO_IN_FREQ, DEFAULT_AUDIO_IN_BIT_RESOLUTION, DEFAULT_AUDIO_IN_CHANNEL_NBR) == AUDIO_OK) { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_GREEN); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() - 95, (uint8_t *)" AUDIO RECORD INIT OK ", CENTER_MODE); } else { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() - 95, (uint8_t *)" AUDIO RECORD INIT FAIL", C
Hello, a while ago I ran into a problem with my system consuming to much power.After searching this forum, I came across this post: https://community.st.com/t5/stm32-mcus-wireless/using-stm32wb55-freertos-osthreadflagswait-can-return/td-p/767777 It describes how osThreadFlagsWait adjusts the timeout and explains that this can cause problems.In the thread i described my problem with this function (see below), but I was asked to post that question in a new thread.No problem, of course, so I did :) I discovered another annoying problem with osThreadFlagsWait.I was measuring the current consumption to check if it was sufficiently low in case the system goes into stop2.To my surprise, I discovered that it wasn't (draining 6mA instead of 30uA).After a long search, I discovered that the high-consuming task state wasn't "suspended", but "blocked"!A little later, I realized this would happen when I called osThreadFlagsWait.I assumed the timout value could be osWaitForever, so the task wo
I'm using a * STM32N6-DK * Brightsense VD56G3 I've made 2 camera drivers so far and the only difference i can see from the cameras is that my first camera module has MIPI short packets start and stop. I'm making this observation from the scope. So i know it's sending the data it's just receiving black messages. Question * Do you need short packets frame start and end for it to grab images. Other info * I'm using Zephyr, but i just want to make sure from the hardware i don't need short packets because i don't think VD56G3 can generate short packets.
Hello everybodyI'm working with USB PD sink on my own board with STM32G071KBT6 microcontroller ad development software: STM32CubeIDE 2.1.1 and STMCubeMX 6.17 (freeRTOS, without TCPP, with my own protection of VBUS and CC lines).I want to set sink to APDO 24 V (if the charger accept it) or otherwise 20 V PDO.Unfortunatelly if the charger, which I use, not accept APDO 24 V, it send hardreset and cut off the Vbus, so I can't use the flag to inform about the status (APDO or PDO).Is there any way to read the PDOs from the source and on based on this choose APDO or PDO?I have no structure DPM_Ports, and USBPD_DPM_GetDataInfo(PortNum, USBPD_CORE_DATATYPE_RCV_SRC_PDO, buffer, &size);returns size = 0;Best regards
Hi everyone,I’m using the B‑U585I‑IOT02A development board for an IoT project. The onboard STSAFE‑A110 secure element comes pre‑provisioned with a default key and certificate, but for my application I need to:Provision my own keypair and certificate, andOptionally add additional keys or certificates into unused STSAFE slots (for testing or multi‑cloud use).I couldn’t find a clear step‑by‑step guide for:Generating and injecting a custom keypairUploading a custom certificate chainAdding extra keys/certificates to new STSAFE slotsWhether CubeProgrammer or Secure Manager scripts support provisioning user keysIs there any official documentation, example project, or provisioning tool that explains how to do this on the B‑U585I‑IOT02A?Any guidance or links would be greatly appreciated.Thank you!
Hi,In GfxDesigner 4.26.1, I created a blank project for STM32U5G9J-DK2.I opened it in CubeMX 6.17 and tried to migrate FreeRTOS. However, when I changed CUBE-FREERTOS version from 1.0.1 to 1.5.0, the freeRTOS version did not change from 10.4.6 to 11.2.0.Why ? Is this expected behaviour ? Thanks for help. X-CUBE-FREERTOS-1.0.1 (FreeRTOS version 10.4.6)I migrate to newer versionX-CUBE-FREERTOS-1.5.0 (FreeRTOS version 11.2.0) But version did not change from 10.4.6 to 11.2.0
Dear STMicroelectronics Support Team, I am working with two ST-LINK/V2 debuggers and have observed a difference in the VTref (VAPP) signal location on the 20-pin connector. I would like to understand whether this is expected behavior. Details of the debuggers: 1. ST-LINK/V2 marked: B2025 162. ST-LINK/V2 marked: A2017 10 Used board to flash : BLUENRG-M2SP Used flasher tool : RF-Flasher utility v4.5.0 Observation: * In the B2025 16 debugger, the target voltage (~3.3 V) is measured on Pin 1 of the 20-pin connector.* In the A2017 10 debugger, the target voltage (~3.3 V) is measured on Pin 19 of the 20-pin connector. Both debuggers are being used under similar conditions with the same target hardware. Could you please clarify: 1. Whether such variation in VTref (VAPP) pin location is expected across different ST-LINK/V2 units?2. If there are any known hardware variations or revisions related to this behavior?3. Any guidance to ensure cor
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.