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
Hi,Using the STM32G431 in PGA mode vs in standalone mode (external resistor network for Gain), I am getting different noise levels on the final output (measured using ADC).The noise generated in PGA mode is twice as big as in standalone mode. What could be the reason?I expect a change in gain due to the tolerance specified in the datasheet, but did not expect the noise level to increase. Note - I tested with multiple combinations for external gain (100R and 1k5, 1k and 15k, 10k and 150k) to reach 16 gain. All the three resulted in similar noise level. Hence, thermal noise could not be the reason is what I assume, in case of PGA. Is some other effect taking presedence here?
Hello ST Community,I am designing a custom high-power motor controller for an industrial servo motor (RMCS2082) and need advice on component selection, thermal limits, and layout architecture.System Specifications:- Nominal Current: 18.7 A (Continuous load)- Peak / Stall Current: 130 A (Transient spike)- Battery Operating Voltage: 24 Volts- Target Enclosure/Board Temperature: Strictly under 50°C to 60°C Max- Control Method: 20 kHz PWM (generated via external MCU)The Dilemma & My Analysis:I evaluated the VNHD7008AY using TwisterSIM. Brief transient simulations show safe temperatures around 45°C. However, calculating steady-state thermal dissipation for an 18.7A continuous load across the integrated H-bridge path (approx 16-24 mΩ hot) results in 6W to 8W+ of pure heat generation. In a standard PCB design, this localized thermal load will quickly cause a massive temperature rise exceeding my 60°C target and trigger thermal shutdown. Furthermore, the 130A motor stall current exceeds th
After upgrading MX to 6.18.0 when I run STM32CubIDE 1.19 it crashes when doing it’s upgrade check.As it happens so fast I can’t actually see what is happening but managed to open the Preferences to set the Firmware Updater to Off Line Mode..I am using 1.19 as I prefer the MX integration in CubeIDE. So be warned ;)
Hi ST Community,I'm using an external precision voltage reference connected to the VREF+ pin of the STM32G474.I would like to know:What is the minimum output current capability required for the external VREF source? Is there any specification for the average or peak current drawn from the VREF+ pin during ADC conversions? Does the required current depend on the ADC sampling rate, the number of ADCs operating simultaneously, or the sampling time? I couldn't find a clear specification for the VREF+ input current in the datasheet or reference manual.Any explanation or recommendation would be greatly appreciated.Thank you!
I am using the STM32F051C8T6 MCU for TIG welding project, but PWM is not being generated on my custom TIG control board. Can anyone help me so
Connected an USB microphone to an H743 as host and it streams mic audio perfectly at 48 KHz for around 5 seconds then the data freezes.SOF is still being called as is AudioHost_IsoDataReadyISR() from the STM IRQ driver, DMA is running (its set to use DMA, I tried without but same behaviour), but the same 96 bytes are transfered every uS: I can clear the receive buffer but it gets refilled with the same data. Attempts to re-init the pipes etc etc fail to restore streaming.Also, any pause in the servicing of the call to AudioHost_IsoDataReadyISR() results in exactly the same repeat data arriving.This is my own code based on STM’s examples, as I said it runs perfectly for many seconds, if I unplug the microphone it runs again when plugged back in for the same good few seconds.Is there an approved way to restore audio streaming without a full reset when there is an occasional timing glitch in servicing the AudioHost_IsoDataReadyISR() call?
I have an STM32WBA data logging project loosely based on the BLE heart rate project. I sync the RTC via either a BLE message, or NTP from a serial modem. All good; works well and the RTC timestamp ticks along whilst the code is in stop2 sleep. The device is battery-powered, so power is always present. I initialise the RTC in RTC_BINARY_ONLY mode.I track whether the device has received a time sync by stashing a value in one the the backup registers.When the device is reset by a button on the reset line, the RTC gets set to zero. This is not a problem.However, when the device resets by calling NVIC_SystemReset(), the RTC appears to be 4194304 seconds ahead of where it should be. This is 4096 x 1024 seconds. I set the RTC frequency to 1024, so I'm guessing this is something to do with it? My code can handle this after a reset by setting the RTC back by 4096x1024 seconds.What is a more tricky problem is that if the device has been in stop2 mode, and is then woken and reset by&nbs
Hello,I’m using the ADC with DMA for my application where I read the values from a Pot. The DMA is configured to generate interrupts when the DMA buffer is half full and completely full. The readings obtained seem to be correct apart from the fact that there seems to be random 0’s in the buffer. I’m not sure why this happens. Below are the relevant portions of my code: vInit() { /* USER CODE BEGIN ADC1_Init 0 */ /* USER CODE END ADC1_Init 0 */ LL_ADC_InitTypeDef ADC_InitStruct = {0}; LL_ADC_REG_InitTypeDef ADC_REG_InitStruct = {0}; LL_ADC_CommonInitTypeDef ADC_CommonInitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; LL_RCC_SetADCClockSource(SPEED_CONTROL_POT_ADC_CLOCK_SOURCE); /* Peripheral clock enable */ LL_AHB2_GRP1_EnableClock(SPEED_CONTROL_POT_ADC_PERIPH_CLOCK); LL_AHB2_GRP1_EnableClock(SPEED_CONTROL_POT_GPIO_PERIPH_CLOCK); /**ADC1 GPIO Configuration PA0 ------> ADC1_IN1 */ GPIO_InitStruct.
Hi; this question is pretty much the same as another version of it I find on the forums, but it was never answered, so I would like to try asking again. I’m working through a design that will use an stm32u595 for motor control, and the STSPIN233 as my driver. I will be using three current sense amplifiers on my low-side shunt resistors; each of these need a bias voltage to offset the shunt resistor voltages. For past prototypes, I worked with an stm32F4, which doesn’t have this nifty VREF+ pin or VREFBUF capability - so I simply used VDDA to create a bias voltage, and used it for my ADC. VDDA itself was drawn from VDD through a ferrite PI filter. I suppose all of this is sort of “lo-fi”, but it worked - I was able to get a motor to turn using FOC. The stm32u5 is considerably more complex by comparison, so I’ve been trying to teach myself what VREF+/VREFBUF is, and why I might want to use it. Claude, infuriatingly, vacillates from thread to thread in its advice - sometimes it says “O
Hi Everyone,after enabling RTC for the STM32L432KC in STM32CubeMX (version 6.18.0) RTC_WKUP_IRQn doesn't show up in the CubeMX NVIC panel for this MCU but is present in the vector table.Is that a bug or am I missing something?Best regardsGolfBravoRTC configurationMissing RTC wake-up timer interrupt through EXTI line 20?
Hello community,I am currently working on an STM32F777 project where I encounter a race condition between two DMA-triggered SPI transfers originating from the same timer (TIM8).Setup: MCU: STM32F777 Mechanism 1 (Input Capture): TIM8 CH1 is configured for Input Capture. Upon an active edge, a DMA request transfers a 14-bit data packet to SPI->DR. Mechanism 2 (Periodic Update): TIM8_UP (Update Event) triggers a chained DMA transfer that writes 2 consecutive packets to SPI->DR. The Problem:When both events (TIM8 CH1 Input Capture and TIM8_UP) trigger simultaneously, a collision occurs on the SPI bus: Only 2 packets appear on the SPI MOSI line instead of the expected sequence. The transmitted sequence consists of the packet from the CH1 Capture event followed directly by the second packet of the TIM8_UP chained DMA transfer. The first packet of the TIM8_UP DMA transfer is lost/overwritten. Following this race condition, the entire transfer mechanism halts, and no further pa
Hello,I need to speed up a image processing pipeline and want to offload image scaling to NeoChrom. It should be possible on STM32N6, however:I need nema_core.h and nema_graphics.h. I’ve downloaded TouchGFX via CubeMX, but I don’t see those files anywhere. I think, I need a /port/hardware config/ for STM32N6, but I don’t see any examples in https://github.com/STMicroelectronics/STM32CubeN6/tree/main/Projects/STM32N6570-DKHow should I proceed in this situation?
I’m working with the NUCLEO-WL33CC2 development board and running ST’s CLI demonstration firmware. My goal is to retrieve raw baseband I/Q samples, but I can’t get any I/Q output using the demonstrator commands, specifically IQDump. If you’ve successfully extracted I/Q from this board using the stock CLI demo, I’d love to know the exact command sequence and any quirks you ran into. Suggestions welcome on required modes, baud rates, or additional steps I might be missing.
Hello ST Team, I developed a custom USB DFU HOST class on an STM32F446ZE. I soldered a USB-C cable directly to the D+/D-, 5V and GND pins. The Problem: The stack works correctly for transfers up to 128 bytes. However, when I set phost->Control.setup.b.wLength.w > 128 (e.g., 192 bytes) and call USBH_CtlReq, the code enters an infinite loop inside USB_WritePacket. I have traced the execution line-by-line, monitoring the HCTSIZ register values: size (Transfer Size) and cnt (Packet Count). Below is the detailed trace comparing a working 128-byte transfer vs. a failing 192-byte transfer. 1. Successful Scenario: Transferring 128 Bytes Initial State: size = 128, cnt = 2. Loop Iteration 1: i=15: USBx_DFIFO written. Register updates: size = 64, cnt = 2. i=31: USBx_DFIFO written. Register updates: size = 64, cnt = 1. Loop Iteration 2: Initial State: size = 128, cnt = 2. i=15: USBx_DFIFO written. Register updates: size = 64, cnt = 1. i=31: USBx_DFIFO written. Re
Dear Sir,I have using STSPIN32G0A2 to drive a BLDC motor with the 6-step algo. When I use the debugger to reset the board while the motor is spining, the REG12 regulator will be burned out. Pressing reset button (NRST pin) has not killed the board with the running motor and the motor has stopped while pressing reset button. Debugger reset has not killed the board without the motor connection. Debugger reset has pulled low the GPIO (such as) PA15 to pull low the standby pin of the GATE Driver and stop the pin driver the gate of the MOSFET. Debugger reset made the REG12 regulator death while the motor is spinning.I appreciate if you can give me any suggestion. Regards,
We are using Nucleo-F446RE + IHM09M2 + IPMM15B. The offset detection’s progress in Motor Profiler stucks at 7%. We’ve are seeking for possible results.Is it possible for the current at the J4 pin to drop below 0.01A? We observed that the voltage at the J4 pin exceeds 15V, which is higher than the auxiliary power supply's limit. This suggests that the current might have flowed back into the auxiliary power supply.
Hi Team,We are developing a custom board based on STM32N657X0H3Q and would like to interface a 2-lane MIPI CSI-2 camera.We have seen the examples provided with the STM32N6, but they are limited to a few camera sensors. We would like to integrate other MIPI cameras such as GC2083, OV2312, IMX290 etcCould you please clarify:Does STM32N657 support any standard 2-lane MIPI CSI-2 camera, or only the sensors provided in the BSP? Please share the supported camera sensor details. Is there any application note or guide for bringing up a new MIPI camera driver? Which parts of the existing camera driver (e.g., IMX335) can be reused for integrating a different sensor? Has ST validated any other MIPI CSI-2 camera sensors with STM32N657?Any guidance or reference examples would be greatly appreciated. Regards,Ajnas C
Hello, I have a TFT LCD display that uses a ST7789v controller. I would like to interface with it using the KMS DRM subsystem in Linux. I have been having issues getting this to work though.So far I have confirmed that the default driver to ST7789v controllers is running, but it only seems to create a drm_panel. I am having trouble creating/linking it to a connector/CRTC/encoder. I have any DBI related options enabled in menuconfig, but I don’t see any way to interface with DBI displays when running modetest. Does anyone have any advice as to what I need to do to get DRM working with this display? Will I need to write my own drivers? I can provide any existing code/devicetree configurations if need be.
Hi ST Team, for the ECMF02-2BF3 and have a question regarding the recommended stencil opening. In the datasheet, the stencil aperture is specified as 220 µm, but it is not clear whether the aperture should be: Square (220 µm × 220 µm) or Round (220 µm diameter)
I'd like to share an open-source alternative to STM32Cube Build Analyzer, which may be useful for developers who don't use STM32CubeIDE (Eclipse or Visual Studio Code edition), or who build their projects using other tools such as Visual Studio or CMake directly.GCCMapAnalyzer | Source.(HTML file, hosted on GitHub Pages; click on GCCMapAnalyzer to run it in the browser.)FunctionalitiesTree view: Visualizes memory usage by memory region, section, and object file. Memory Map: Displays symbols and sections in an address-space line diagram. Section configuration: Allows customization of how sections are counted and grouped. NoteI hope this post does not violate Community Guideline #5. I originally developed this tool to visualize an STM32H7 .map file before I knew about STM32Cube Build Analyzer, and I thought it might be useful for other community members as well.
I have already submitted the case in ST Online Support, but have had no reply for over two weeks.
In the debug mode of JLink, the usage method of LiveWatch cannot be found. Only STLink has this function. How long will it take for the relevant functions of jLink to be updated?I really enjoy using this extension plugin provided by your official side. I hope you can let me know! thank you{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "jlinkgdbtarget", "request": "launch", "name": "STM32Cube: Launch JLink GDB Server", "origin": "snippet", "cwd": "${workspaceFolder}", "preBuild": "${command:st-stm32-ide-debug-launch.build}", "runEntry": "main", "imagesAndSymbols": [ { "imageFileName": "${command:st-stm32-ide-debug-launch.get-projects-binary-from-context1}" } ] } ]
Hello ST Community,I have an STM32H563 (Rev X) that appears to be stuck in the Provisioning state and I am trying to recover it.Hardware / ToolsMCU : STM32H563Device ID : 0x484Revision : Rev XSTM32CubeProgrammer : v2.23.0Probe : ST-LINK V3SETST-LINK FW : V3J16M9B5S1 NRST is connected to the ST-LINK and Debug Authentication discovery is working.Current Option BytesPRODUCT_STATE = 0x1TZEN = 0xB4 (TrustZone enabled)BOOT_UBE = 0xB4 (OEM-iRoT selected)SECWM1_STRT = 0x0SECWM1_END = 0x7FSECWM2_STRT = 0x0SECWM2_END = 0x7FWRPSGn1 = 0xFFFFFFFFWRPSGn2 = 0xFFFFFFFFLOCKBL = 0x0HDP1_STRT = 0x1HDP1_END = 0x0HDP2_STRT = 0x1HDP2_END = 0x0 SymptomsI can: - connect through ST-LINK V3- read option bytes- read flash- erase sectorsI cannot:- perform Mass Erase- change PRODUCT_STATE back to 0xED Attempting: PRODUCT_STATE = 0xED results in:Expected value for Option Byte "PRODUCT_STATE": 0xEDfound: 0x17Option Byte Programming failedOr modified by application after OB_LAUNCH Debug Authentication DiscoveryUsing:
Hello! Recently I discovered that my program (STM32 TCP client) gets stuck in netconn_connect() function for about 5 minutes if server to which I want to connect to is not available when this function is called. Only after that time program would go intoif ((tcp_rexmit_rto_prepare(pcb) == ERR_OK) || ((pcb->unacked == NULL) && (pcb->unsent != NULL))) {statement (which is present in tcp_slowtmr() function). Once it happens, the debugger shows that:TCP PCB shown in debuggerIt's the tcp_rexmit_rto_prepare(pcb) condition that allows program to go into the if statement. Also, as debugger shows, nrtx is equal to 0, which means there were no retransmissions in the last 5 minutes (rtime=575, which is 287 seconds).Interesting thing is it's possible to "unfreeze" the program way sooner by pinging the client device or by replugging Ethernet cable. netconn_connect() would finally finish and device could try to connect to server once again. By the way, the netconn I used was
Hello ST Community,We are using LIS2DW12 in single data conversion on-demand mode.Configuration:- MODE[1:0] = 10, single data conversion on-demand mode- SLP_MODE_SEL = 0, output data generation triggered by INT2 external signal- INT2 is used for Data update trigger- INT2 is driven by an MCU GPIOAccording to the LIS2DW12 datasheet, INT2 is described as a clock input when selected in single data conversion on-demand mode, and INT2 clock input supports up to 200 Hz.However, we could not find the AC timing specification for the INT2 input trigger.Could you please clarify the following points?1. What is the minimum HIGH pulse width required on INT2 to guarantee a trigger?2. What is the minimum LOW pulse width required before the next trigger?3. Is the trigger detected on the rising edge, falling edge, or by the HIGH level?4. Is it required to keep INT2 HIGH until DRDY is asserted, or is a one-shot pulse acceptable?5. Are these timing values guaranteed over process, voltage, and temperature?
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.