Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello everyone,I am looking for some help getting started with the STSAFE-A110 in a new project.My Setup: MCU: Custom board using STM32H503CBT6 Secure Element: X-NUCLEO-SAFEA1B expansion board Software: STM32CubeIDE with the X-CUBE-SAFEA1 middleware added via CubeMX Output: I am using the USB CDC Virtual COM port (Classic Middleware) for my output. I have not enabled and am not using UART. The Problem:I am completely stuck trying to get the initial communication working. I cannot seem to establish communication between the STM32H5 and the STSAFE-A110 through I2C, and I cannot get StSafeA_Init() to initialize the STSAFE properly.I have tried reading the user manual (UM2646 - Getting started with the X-CUBE-SAFEA1), but I find it extremely confusing. It does not clearly outline the necessary steps that I need to take to start the project properly from code generated by CubeMX.What I need help with:Could someone provide a clear, step-by-step guide on how to actually bring up the STS
This is a small feature request to fix an annoying quirk of the TouchGFX Designer.When opening the texts menu in the designer, all of the texts groups are expanded by default. In projects with many texts/groups, its tedious to collapse all of the groups or scroll to the bottom of the expanded groups. I think it would be better if either TGFX stored the state of the groups expansion OR collapsed them all by default.
When sending the first initial SYNC (0x7F) byte to the STM32N6 boot ROM over UART, the boot ROM replies with two ACK (0x79) bytes, while only one ACK is sent as a response to later SYNCs. Is the boot ROM guaranteed to always reply with two ACKs to the first SYNC?First sync:Later syncs:
Hi there,Im trying to get my STEVAL-PTOOL1V1 up and running with my motor, a Sofasco sDBS7025 with the following specs:3-phase BLDC7-12V DC operating voltage1.5A rated current11100 max RPM 4 pole 8 pins:PinFunction1V2W3U4HW5HU6HV75V08COMI have managed to get it operating by using the STEVAL-PTOOL1V1_6S_HL example project in the ST Motor Control SDK V 6.4.1 however I seem to have little control over the speed.I haven't been using the potentiometer feature of the STEVAL-PTOOL1V1 and instead been using the following functions:MC_ProgramSpeedRampMotor1(2000, 1000);MC_StartMotor1();and when wanting to change the speed, changing the 2000 for a different speed and rebuilding the project and programming to the board.However when I input a different speed e.g. 10000 there is no difference to the speed, observed by the current draw of the bench power supply remaining the same. I suspect I have setup the motor parameters incorrectly in the MC Workbench 6-step wizard but am not
The STM32G031G8U6 in a UFQFPN28 package does not have PF0 / PF1 pins for HSE OSC_IN / OSC_OUT. It does however have OSC_IN on PC14. This is intended for an external CMOS oscillator in bypass mode.I’m currently in the schematic design stage. My board clock is a clipped-sine TCXO used for other purposes. In some modes, I’d like to use it to clock the STM32. I’m very constrained on cost, power, and board space. The clipped-sine doesn't meet the voltage level requirements for a bypass-mode clock.Is it possible to configure HSE as if it were a crystal, but instead supply a clipped-sine 0.8 Vpp clock from the TCXO to PC14 OSC_IN? Does the die used in UFQFPN28 even have the HSE oscillator circuit that exists in the 48 pin package?I would set RCC_CR[HSEBYP] = 0 and RCC_CR[HSEON] = 1. I don’t see any register controlling the OSC_IN alternate function on PC14. STM32CubeIDE doesn't allow this configuration, unsurprisingly, but I would configure t
Hello ST Community,I am using STM32H7B3 + TouchGFX + 7-inch 800×480 TFT with GT911/GT9111 touch controller.In the TouchGFX PC simulator, all buttons and toggle switches work correctly. But after flashing to hardware:TFT display is working properly.Touch is detected.Actual touch point and detected touch point are different.Touch is detected on the same horizontal line, but the vertical coordinate is shifted/wrong.I want to know the correct solution for touch coordinate mapping/calibration. Should this correction be done. Please guide me on the correct method for touch calibration and hardware control/status display in TouchGFX.Thank you.
On the STM32C542CC in LQFP48, none of the Port C pins that support I2S MCLK output are available. Despite this, enabling the "Master Clock Output" under "Advanced Features" in the MX2 Peripherals tab is still possible and reports no warnings or errors.
Hi all,I want to design STM32N6 based board and in this board I don’t have any 3.3V supply so what should I do the unused USB power pins? Should I left unconnected or connect them to GND? Thanks and regards
Hello, I hope all is well. I’m also looking for the FCC test report for the STM32WLE5CCU6. I noticed someone else had requested it previously, but the inquiry seemed to be redirected and may not have been followed through. In short, I will need someone from your compliance or technical team to contact me directly via email. We are currently working on the FCC frequency‑hopping requirements, and I’d like to understand how this was handled on your side and hopefully obtain some manufacturer guidance. Thank you in advance.
I’m Trying to Implement SVPWM based on the I’m attached research paper where i had completed till the dwell time calculation But i could n’t identify the switching sequence and switching arrangement If anyone know about this kindly help me with your expertise.
I encountered a problem where I used ST's open-source FOC algorithm. Currently, my motor often shakes at a speed of 22k. Upon inspection, I found that the Hall output of the motor has some fluctuations, which is a problem with the motor itself. However, the important issue is that when the timer input captures the Hall sensor signal, there is a problem where both the capture value of 65535 and the overflow flag exist. As a result, the calculated capture value becomes 65535+65536, causing shaking. I think it's because when 65535 was captured, the program didn't process the callback function in a timely manner and only processed the timer callback function after overflowing. What if we solve this problem?As shown in the blue curve in the figure below, when a peak appears, it is an abnormal moment:
Hi Team, We are trying to send camera feed through the TP2860 video decoder to STM32N6570_DK. We have confirmed the configuration of the TP2860 and receiving data at the TP2860 MIPI output, but not receiving packets at the STM32n6570 CSI end. We are positive the CSI configuration is done correctly, but please let us know if we are missing anything sharing the function and also attaching the log :void stm32n6_mipi_host_enable(void){ /* ========================================================================= * STEP 1: FORCE MIPI CORE INTO SHUTDOWN / DISABLED STATE * ========================================================================= * Clear PEN (Bit 1) in CSI_PRCR and clear power bits in CSI_PCR. * This releases the write-protection lock on the configuration registers. */ CSI_PRCR &= ~(1 << 1); CSI_PCR &= ~0x0000000F; k_msleep(5); // Wait for internal finite state machines to safely idle /* =========================================
Hello,I am working on an STM32C011 (Nucleo-like custom board) and trying to use I2C1 with the following pinout:PB7 → I2C1_SCL (AF14)PC14 → I2C1_SDA (AF14)According to the reference manual / datasheet, PC14 can be mapped as I2C1_SDA (AF14).I connected an SHTC3 humidity/temperature sensor (address 0x70) to these lines with 4.7k pull-ups.Problem:My I²C scanner code never detects the SHTC3 (always NACK at 0x70).If I configure I²C on PB6/PB7 instead, the scanner works.GPIO PC14 seems not to toggle as SDA when I try transactions.I suspect this might be related to PC14 also being used for LSE (OSC32_IN). In CubeMX, I set LSE = Disabled under RCC.But I still wonder if PC14 can reliably be used for I²C, or if there are silicon limitations when LSE is involved.Questions:Is PC14 fully usable as I²C SDA on STM32C0 when LSE is disabled?Has anyone successfully used I²C1 on PB7 (SCL) + PC14 (SDA)?Could this be a hardware limitation / errata, or am I missing a CubeMX clock configuration detail?Any fee
Hello,I am working on a NUCLEO-H503RB board and communicating with two LSM6DSO devices over an I3C bus operating in I2C Mixed Mode.When the bus is running in Open-Drain mode, I observe the following waveform characteristics on the SDA line:When SCL transitions from High to Low, SDA exhibits a momentary voltage drop. During the SDA pull-up (charging) phase, the signal does not follow a smooth RC charging curve. Instead, it initially rises slowly and then suddenly jumps to a higher voltage level (VH).SDA waveform during I3C communicationSDA waveform during I2C communication (Open-Drain mode)Could anyone help explain the possible causes of these behaviors? Are they related to I3C/I2C bus characteristics, device handoff timing, pull-up configuration, parasitic capacitance, or measurement effects?Any suggestions or insights would be greatly appreciated.Thank you.Best regards,
Pins 43 (PB1) and 44 (PB0) on the STM32WB5MMG Datasheet are listed at NC (no connection). In CubeMx these pins are available to use. I would like to confirm which is correct for the Bluetooth module LGA86 STM32WB5MMG.
I’m about to start a new embedded project that is probably outside my skill set (as usual) and I’m hoping to get some recommendations on what STM MCU might have a reasonable learning curve to build up the MCU part of this system. It’s another autonomous oceanographic observing platform like I’ve built in the past with a lot of help from people on this forum. That system used a STM32H7 MCU. For this case, I need a few more serial ports and an ethernet connection to a new sensor. And I’ll need a file system and lots of Flash and SRAM. Low power matters, but the MCU is pretty low on the power consumption histogram.The STM32H5 looks like a good choice since it has lots of serial ports and the Nucleo STM32H563 has an Ethernet phy and a USB-C connector that theoretically could support a USB Flash driver.. Here are a few specific questionsQ0 Is there a better MCU choice with an easier learning curve that might meet my requirements?Q1. It looks like the H5 and STMCubeMX/IDE now use FileX which
I have written a small code which inits a GPIO in push pull config and a UART using cubemx then goes into stop mode. I have implemented same example in STM32L073 nucleo and STM32WL55 nucelo. In L073 I am able to see the current goes to 2-3uA. But in WL55 it is consuming 300uA or so. As per datasheet both will disable clocks to peripherals while going into stop mode. But in case of WL55 I am able to 1.5uA only when I denit all the gpios and disable clocks. Is it expected behavior or am I missing something. I have added my code below for reference, thanks in advance. int main(void){/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals
Currently image source files take up a lot of drive space.My image folder TouchGFX\generated\images\src is 44.5MiB on my drive.TouchGFX projects can take up a lot of drive space as is (https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/gfxdesigner-option-to-auto-delete-touchgfx-folder-upon-exit/m-p/724758#M39655). So these files just add to it.You could use build scripts or cmake to add data from binary files to temporary source files. But this can be quite a hassle to make it platform independent. But that would save a lot of drive space as the binary files take up less space than source files with hex constants. (Example to use OBJCOPY)There are ways to shrink the source files. One way is to use uint64_t hex constants instead of uint8_t hex constants to reduce overhead.Before: LOCATION_PRAGMA("ExtFlashSection") KEEP extern const unsigned char image_test_image[] LOCATION_ATTRIBUTE("ExtFlashSection") = { // a x b RGB565 pixels. 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
Hello,First time posting here so I apologise in advance to admins if this is in the wrong area.I’m attempting to use a DP838xx series PHY with an STM32H7xxx series chip in MII mode and I’m running into this odd issue where whenever the ETH_MDC pin is initialized, the TX_CLOCK completely drops out. I believe my PHY is reset when I set the MDC pin. I can’t seem to get around this at the moment and wonder if perhaps there is something quirky or unusual that I’m not aware of?I have this crazy idea that perhaps the pin is being pulled low just at the right time as to send something to the PHY to tell it to reboot or shutdown but I’m not able to look into that much detail.Things I have tried:1. Full setting up my PHY by writing to it’s registers for MII mode and the correct physical medium2. The same but in RGMII mode and then attempting to switch3. Completely fresh project without LWiP stack, manually enabling the ethernet pins one at a time (this is where I discovered that the MDC pin was
Hardware: STEVAL-MKI109D (STM32H563ZI)CubeMX: 6.17.0CubeIDE: 2.1.0Connection: USB-C directly to STM32H563 USB OTG (no ST-LINK chip)PROBLEM:I need USB CDC Virtual COM Port in a bare-metal application(no RTOS). CubeMX 6.17.0 for STM32H563 only offers:- USBX (requires ThreadX)- ThreadX- FileX- LevelXClassic USB_Device middleware (usbd_cdc_if.h / CDC_Transmit_FS)is NOT available for STM32H5 series in CubeMX 6.17.0.USBX requires ThreadX RTOS. Without ThreadX running,MX_USBX_Init() causes the board to crash silently —after DFU flash the board is completely invisible on USB(no lsusb entry, no /dev/ttyACM*).QUESTIONS:1. How do I implement USB CDC on STM32H563 WITHOUT ThreadX?2. Is there a way to enable classic USB_Device stack for STM32H5in CubeMX 6.17.0?3. Is there a bare-metal USBX CDC example that does NOT requireThreadX for STM32H5?4. Can I manually add usbd_cdc_if.c and USB Device library filesto an STM32H5 project without CubeMX support?I have a working SPI sensor application (ISM330DHCX
I am attempting to use X-Nucleo-DRP1M1 + Nucleo-G071RB boards as data communication dock for with following behavior :- The dock is a sink by default and UFP, so that a non PD capable mobile device can connect and communicate with a USB peripheral using the USB OTG feature (even though the mobile device isnt being charged)- if a PD capable mobile device is connected, the dock can send a role swap requests so the mobile device is charged and connected to a usb peripheral. The charging voltage is 5V. It would be preferable if this behavior occurred reliably even in the case of a power cycling while remaining connected, and after repeated disconnects + reconnects. I attempted to use a CubeMX project following this guide (https://wiki.st.com/stm32mcu/wiki/STM32StepByStep:Getting_started_with_USB-Power_Delivery_Dual_Role), setting the dock’s USB-C port as default Sink and enabled USB some connectivity features to enable connection to a peripheral. I do not think the behavior i seek should r
Hi ST team,we are currently developing a new industrial product embedding the STM32U5A5ZJT6Q MCU.For our system reliability assessment, we would like to request the official reliability data for this specific component.Could you please provide:MTBF (Mean Time Between Failures) FIT rate (Failures In Time)If available, we would prefer values calculated according to:Telcordia SR-332 MIL-HDBK-217 Ground Benign (GB) operating environment assumptionsThank you for your support.Best regards
Hello, I have been having a ton of trouble setting up a simple ADC + DMA on the new STM32N6 Nucleo board. I have confirmed that my adc is sampling by looking into the data register of my ADC. However, the only way I got the HPDMA to write in my adc buffer was through DTCM as I followed the reccomendation of this topic, in order to avoid the hassle with S and NS domains. However I wish to sample at 2.5 MSPS and through DWT and the Cplt_Callback of the HPDMA I found that my data actually came through at 1.44MSPS. The ADCs of this STM are rated for 5MSPS.Can anyone help me make it so that I can sample at the desired rate and actually get a hold on that data at the desired rate. Also if you know of a better fix than cranking the CID to 11 I’d happily take it. Thanks, Lorenzo
Hello, I was going through the schematic of STM32U5G9J-DK1 where I came across the unused LDO (U19) for generating 1.8 V on this board. I wanted to know the significance of this LDO and what were the reasons to keep it unpopulated?Also, can I expect to see an improvement in the driving capability of this rail in case I wish to populate U19 with TPS76301? If yes, which orderable part no. of the same would be recommended?
I just upgraded to Cube 2.0.0 components. I did my first build in CubeIDE 2.0.0 with a previously working project and I got strange errors. It appears the HAL objects for the peripherals are getting garbled. When pointers to the objects are passed to functions, the compiler says that the pointer is of another peripheral type. In the output below, the pointers to ADCs are treated like they are of the timer typedef.What could cause this? arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32G473xx -c -I../Core/Inc -I../Drivers/STM32G4xx_HAL_Driver/Inc -I../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32G4xx/Include -I../Drivers/CMSIS/Include -I../USB_Device/App -I../USB_Device/Target -I../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"
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.