Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I am using the stm32g47ret6 microcontroller and I am having troubles with transmitting and receiving data using the USART2 to my PC through the ST-LINK V3-SET. If I understand correctly, I left the v3-set configured as default (did not change the jumper configurations). I used MX to configure the usart2 module and used vcp_rx and vcp_tx for communication, used the pins PA3 and PA2 and also configured them in MX. I checked the baud rates, COM Port in my device manager. I am using tera term 5 to read the data, but I get a blank screen every time I start the program. To debug this, I tried probing the pins using an oscilloscope and I do see some repeated pulses, the baud rate matches and Uppercase 'U’ does give a square wave. I also checked the UART transmit status which shows HAL_OK in live expressions in the CUBEIDE. I am using a custom hardware board with the stm32g474ret6 mcu, it is connected to the st-link via the stdc14 connecter. This is the schematic for it. Below is the c
Hi, looking to power the NUCLEO-F767ZI off another board (which has a TPSM843320 buck), any issues with this as the 5V rail (E5V), on the dev board you have LD1117 LDO, but the rail I can provide isn’t high enough for the dropout. Any spec on ripple or how clean the E5V rail should be? Seems to only be used by STLINK and USB.
Hello,I am using the VDx1943 EVK kit and would like to extract the live camera feed using the SDK. Could you please help me identify the correct DLL file to use?So far, I have tried using:st_brightsense_sdk_vdx193.dll en.STSW-IMG507_16GZUnfortunately, I have not been able to successfully pull the live view with either of these. Could you point me to the correct DLL file, or advise on the proper method to extract the live feed from this kit?Thank you for your help.Regards,
Hello everyone,I'm working on an application using a motor with a nominal speed of 1850 rpm and a nominal current of 4.1 A. The motor operates within a speed range of 300 to 800 rpm, and I'm looking to implement stable and efficient speed regulation.I have already imported my project into MC Workbench and configured the following parameters: Current configuration:Speed sensing mode:Speed Sensor Mode: Hall SensorSpeed regulator:Execution Rate: 1 msTarget Speed: 648 rpmAuto Calculate Kp & Ki: enabledKp ≈ 14.96Ki ≈ 0.0105Maximum speed error before fault: 3Current regulators (Torque/Flux):Execution Time: 50 µsControl Mode: Speed controlCut-off frequency: 6000 rad/sAuto Calculate Torque/Flux Kp & Ki: enabledIq (Torque) Regulator:Target: from speed regulatorKp ≈ 7.62Ki ≈ 0.326Id (Flux) Regulator:Target: 0 AKp ≈ 7.62Ki ≈ 0.326Modulation:Selected modulation: NonePWM and current sensing:PWM frequency: 20 kHzCurrent sensing gain: 21Measurement rang
Dear STM Engineer, thank You very much for Your great effort for the new STM32V8. My comments on the features after looking into stm32v8-presentation.pdf: - STM32V8 will have a ETH-Gb-MAC with PTP, that is great news for applications in the field of scientific instrumentation. -- I am missing PTP-Timestamp-capture-peripherals to generate PTP-precise timestamp input-pulse captures on external events. So triggered by one GPIO input-pulse-edges (or better several logic-combined GPIOs, at least two to have one "gating), a timestamp (64 Bit or more?) should be stored, including in its timestamp-word at least two (better four or more) GPIO Input-states: state high/low AND edge falling/rising. We would need as many as possible of these PTP-Timestamp-capture-peripherals as possible, e.x. 16 or more of them per MC. Would You consider to include such PTP-Timestamp-capture-peripherals into STM32V8? - - I am missing PTP-output-pulse-peripherals to generate PTP
In STM32H7 MCU FW, i am implementing the GPDMA transfer to XSPI in indirect mode, updating DR Register from FW with DMA. I have a custom x8 SPI DDR Slave as target. The issue is i am getting Data transfer error during the HAL_DMA_Transmit_IT function. I have refered the app note for GPDMA - AN5593 where it is mentioned as - on page 38. I am using SW based trigger to dma since there is no GPDMA req signal for xspi for STM32H7. I want to knowhow to implement software-based trigger if gpdma req signal is not present. I have mentioned the code below. IF there is any workaround to fix the HW DMA req signal issue from xspi? If not then on what other STM device having min of 2 - x8 spi support proper GPDMA transfer with HW DMA req implementation. Code used in my application is mentioned below - static void MX_GPDMA1_XSPI2_TX_Init(void){ __HAL_RCC_GPDMA1_CLK_ENABLE(); hdma_xspi2_tx.Instance = GPDMA1_Channel0; // use typed instance macro hdma_xspi2_tx.Init.Request =
Using on a STM32H563RI with trustzone for a secure bootloader and non-secure application. Both the secure and non-secure side were correctly working in OPEN state, and I did a test of going to a CLOSED state and regression back to OPEN with authenticated debug. After the regression, RTC_EnterInitMode(), times out trying to enter init mode and HAL_RTC_Init() fails. I tried the solution from this form post of calling HAL_PWR_EnableBkUpAccess() and that did not work.Notes:- Trustzone and the secure watermarks for the bootloader were reprogrammed in the option bytes after regression.- RTC is LSI as its clock source.- The call to HAL_RCCEx_PeriphCLKConfig() in HAL_RTC_MspInit() returns HAL_OK.- The RTC pheripheral is marked non-secure.- The code has not been changed since preforming the regression and was working previously. The RTC Init Code and Clock configs are included below.void MX_RTC_Init(void) { /* USER CODE BEGIN RTC_Init 0 */ /* USER CODE END RTC_Init 0 */
Setup:I have a CubeMX/CubeIDE-generated STM32G474RET6 project (ThreadX) that I build as a static archive rather than a flashable executable, meant to be linked into a separate top-level consumer application. The consumer supplies main(), calls into this library's init function, and never defines its own vector table, interrupt handlers, or MSP callbacks — this library owns all of that. Problem:A static archive only pulls in the .o members something already-linked actually references (need-driven extraction). That interacts badly with two CubeMX-generated weak-symbol patterns: Vector table vs. stm32g4xx_it.c: startup_stm32g474retx.s gives every handler a .weak/.thumb_set XXX,Default_Handler fallback, satisfied locally from the always-linked startup object. Since nothing else references handlers like NMI_Handler or a peripheral's IRQHandler, the linker never has a reason to pull stm32g4xx_it.c.o out of the archive — the real handlers in it are silently dropped in favor of Default_Handler
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?
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
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,
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 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
Hi ST,I found a problem of fixed-range local ADC non-linearity from 170mV to 480mV on STM32U545 after full hardware linear calibration.1. Test EnvironmentHW: NUCLEO-U545RE-Q board (MB1841D), Firmware package: STM32CubeU5 FW V1.8.0.Test instruments: Precision DC power supply, function signal generator, digital oscilloscope (used to verify the actual voltage at ADC input pins).Working Mode: Button→ LPTimer→ ADC→ DMA→ UARTMX: See attachmentMain code: See attachment2. Two types of input tests (static DC + dynamic triangle wave, identical distortion observed)(1) Static DC step voltage testWe applied stepped DC voltage from 81mV to 850mV via precision power supply and resistor voltage divider. The real voltage on ADC1 input pins was measured and recorded with an oscilloscope for every step, ruling out inaccuracies from signal sources or resistor division. Test results: ADC1 conversion curve is perfectly linear below 170mV and above 480mV. A consistent concave distortion only exists within 17
/* USER CODE BEGIN Header *//** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * <h2><center>© Copyright (c) 2022 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** *//* USER CODE END Header *//* Includes ------------------------------------------------------------------*/#include "main.h"#include "seven_seg.h"#include "timer.h"#include "74HC595.h"#include "led.h"#include "welding_mode.h"#include "adc.h"#include "led_
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.