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
Hello, i am using a stm32f103 mcu to provide rtc functionality. I am using a external crystal of 32768 hz for the rtc block.The crystal is rated at 6pf load. +/- 20ppm PN: QT1C-32.768KDZB-T Apart from this i have also implemented a external gps module to provide a "reference time" via uart.Upon power on, the mcu configure the rtc counter with values for hours,minutes,seconds taken from the the gps, then i just display them on a lcd.My problem is the time drift on the rtc when comparing the time from the gpsFor example, after 10 hours of functionality, my rtc clock drifts with 7-8 seconds when compared with the gps time. I have tried to measure the rtc clock on the tamper pin, and here things start to show upThe measured frequency on the tamper pin ( PC13) is 512.295hz.this is giving a huge ppm diference of about 576 ppm. I have tried with several i
Good morning, I need to send data using UART to a board with a specific delay between single elements, which I obtain as I'm using LABVIEW, but on the board said specific delay is not obtained, and worst of all the delay between datas is not constant. I figured there would have been some additional delay, but is there a way to decrease it or at least make it constant? or is it intrinsic to the UART technology? Thx all
Good Morning, I'm struggling with FDCAN Bus Recovery. The system we have to use consists of an STM32H753-based board and a 3rd party ECU, which is internally terminated via software. Our custom board is also terminated, resulting in the correct 60 Ohm between CAN Hi & CAN Lo. In the event I add an additional termination resistor to the Bus, the power-up sequence doesn't matter, however the bus is the over-terminated, which is obviously not correct. I can, however, see the custom board initially blurting out a CAN frame as fast as it can before the other ECU has finished powering up, and then normal CAN comms is seen on PCAN (the PCAN has been configured to not send any Acks). However, if I leave the bus as it is, it looks like the bus from the perspective of the custom board just turns off. I can see the 3rd party ECU splurging out one of its' messages as fast as it can, however our board should be seeing this message and transmitting Acks etc. I have implemented the Bus-Off
Hi there,I have been struggling with the PSRAM. I bought the STM32H7S78 board to pick up the know-how to understand how I should configure the PSRAM at XSPI1 via the EXT MEM manager at my own board. My clock speed is 200MHZ XSPI. PSRAM MPN: APS6408L-OBMX-BAMCU type is slightly different (STM32H7R7L8H6)For sure, I connected the programmer to configure the sbs since the VIO is 1.8V. What I missed from the HW was that I forgot to add the pull-up resistor at the CE pin. Note: I desoldered from the original ST board to check the behaviour and did not influence its behaviour. The reset is connected to the NRST by a diode. Note: Checked the connections, footprints. GND is on the mid1 layer and all of the connections are on the top layer. The length is less than 14mm and the distance between the track are usually 0.2~0.25mm.So all in all, I excluded the HW errors. Note: I bought the same PSRAM as on the ST board and I can use those configs after all. However, before I desolder t
Subject: Critical issue: Board damage during EEPROM emulation write with MCSDK (STEVAL-IHM045V1 + STM32F303)In Hello Experts,I am working with STEVAL-IHM045V1 power board and STM32F303 evaluation board, running MCSDK (FOC, PMSM, dual motor).Mcsdk 6.41Current control approachI am using ProgramTorqueRamp() instead of ProgramSpeedRamp() because speed mode causes audible noise and instability at low speeds.Motors run normally under wall control.Wall control uses 1-wire USART-based communication customized.User sets a PWM-like value from wall control, which I map to a torque reference. By calling Mcacknowledge(); ProgramTorqueRamp(torque_ref, 4000); startmotor(); in the while loopTarget - The user-selected pwm value must be stored using EEPROM emulation (Flash write). Example user can set any pwm, in Speed 1 pwm 25 , speed 2 pwm 45, speed 3, pwm 65 , speed 4 pwm 75, speed 5 pwm 100Critical problemWhen I attempt
Hi,Could you share documentation or examples for running quantized foundational models (e.g. Google Gemma) on the STM32MP257F-DK—first in Python, then in C/C++ using the STM32MP2 NPU? Specifically:Does the STM32MP2 NPU support transformer-based architectures, or is it limited to CNNs (like the STM32N6)?Which inference frameworks are supported for GenAI on this platform? does this NPU ported by ST for llama.cpp ?Sorry, couldn't find required info from STM32 MPU wiki pages.Thanks!
I am using B-G473E-ZEST1S + STEVAL-LVLP01 + R57BLB50L2 in HSO configuration. Whenever I start the motor I can observe LED1 on STEVAL-LVLP01 is turning ON for few ms. Though motor is starting and running successfully. But I need to understand why I am getting Driver Fault from STDRIVE101 IC (TIM8_BRK2) at startup. Can I eliminate this with correct configuration? Attached MotorControl Workbench project and MotorPilot snapshot for reference.
Hello.Forgive me for what might be an incredibly "noob" question, but i'm not ashamed to admit that I am, in fact, a noob.I've been trying and failing and trying and moderately succeeding over the last few days using NanoEdge AI Studio creating an audio classification model.I'm using an Arduino Uno R4 Wifi. I also have a MAX4466 connected to A0, GND, and 3.3vMy entire process up until now.1. Get a sketch running on my arduino which simply does a micValue = analogRead(A0) in a loop for 1024 times. For each read, i so a Serial.print(micValue); Serial.print(" "). After 1024 of those, I do a Serial.println("") to go to the next line.2. With that running on the Arduino, I opened NanoEdge Studio, created my project, recorded a bunch of signals of background_noise, silence, me speaking and another sound that i want to classify. It's not a HUGE dataset, only a couple of minutes, but i'm increasingly adding more to each Class.3. I ran the benchmark.4. The benchmark produ
I have experience with PIC and AVR microcontrollers, but they lack the good debug features of the STM8 series. Furthermore, these microcontrollers aren't cheap. While looking for simple and inexpensive chips, I keep coming across the STM8 series.Mastering a new microcontroller takes time. I'm confused about learning the STM8 because STMicroelectronics is recommending their STM32 series, which uses the ARM Cortex-M core. This recommendation makes me wonder if investing time in the STM8 is a good idea, or if it would be better to learn the more widely-supported and future-proof STM32 family.
drag and drop error I have a Mac Pro M4 with Tahoe 26.2 OS, STM32CubeIDE version 2.0.2, and I am having trouble selecting and copying a selection of lines. I tried several tests and that option disappeared. If I am comparing two files, dragging and dropping text works perfectly. Is there any notification about this? Is there a solution? Thank you. Post edited by ST moderator: This post has been translated from Spanish to comply with the ST Community guidelines. Please use English language as it's an international community and to let others to understand your post. Thank you for your understanding
Using:VSCode version: 1.107.1 on Windows 11.STM32CubeIDE for Visual Studio Code version 3.7.0.I created STM32N6 project that builds two targets: FSBL and Application. I follow the instructions here: https://community.st.com/t5/stm32-mcus/how-to-debug-the-stm32n6-using-vs-code/ta-p/833499.clangd contents:CompileFlags: Add: - '-ferror-limit=0' - '-Wno-implicit-int' CompilationDatabase: Appli/build Diagnostics: Suppress: - unused-includes - unknown_typename - unknown_typename_suggest - typename_requires_specqual If: PathMatch: Appli/.* --- CompileFlags: Add: - '-ferror-limit=0' - '-Wno-implicit-int' CompilationDatabase: FSBL/build Diagnostics: Suppress: - unused-includes - unknown_typename - unknown_typename_suggest - typename_requires_specqual If: PathMatch: FSBL/.*.vscode/c_cpp_properties.json contents:{ "configurations": [ { "name": "STM32_Appli", "compileCommands": "${workspaceFolder}/Appli/build/compile_commands.json" }, { "name": "STM32_FSBL",
I designed a fsm Design for high G application. The odr of high G and fsm are same. The said functionality is generating interrupt when done on eval kit Nucleo board with iks4a1 kit in Mems studio. But when I converted it into header file and loaded in another sensor board with lsm6dsv320. It is not working. Earlier Free fall Fsm was done on same sensor, it worked both in mems and on this sensor board. I have called the fsm load function and enabled the embedded interrupt in MD2_CFG as I am generating interrupt on int 2. Odr and range settings of high G have been done seperately. What can be the reason of non functioning.
Hello, is there any additional documentation that supports this system diagram? My project will have one antenna that will be an RFID tag whereas the other antenna will be reader. Can ST25r100 support this use case? I'd like to have the ability to write to a card as well and it seems like only RFO1 and RFO2 will have the ability to do that function. is that correct? Thanks!
I’m currently working on a project where I already managed to read ISO14443 tags (NTAG213) successfully.To improve the reading quality and range, I now want to switch to ISO15693 tags.However, I’ve spent more than 30 hours trying, and so far, I haven’t been able to read a single one.I know that using the RFAL (Radio Frequency Abstraction Layer) is the right approach for ISO15693, but no matter what I do, it just doesn’t work.I’ve tried several examples, libraries, and even asked AI tools for help — but I also know that AI isn’t great when it comes to low-level driver implementation.Does anyone here have experience with ISO15693 and RFAL on ESP32? Any working examples or tips would be really appreciated.
Using:VSCode version: 1.107.1 on Windows 11.STM32CubeIDE for Visual Studio Code version 3.7.0.I created STM32N6 project that builds two targets: FSBL and Application. I follow the instructions here: https://community.st.com/t5/stm32-mcus/how-to-debug-the-stm32n6-using-vs-code/ta-p/833499This is a single folder project, not multi-root. The problem is that when I navigate to source code which is not under FSBL or Appli then clangd does not know which complication database to use.This disturbs during coding and during debugging when I step through grayed out code with false errors highlighted.CMake (or some STM32 utility) generates .clang file into the root directory. It's stripped down version looks like this:CompileFlags: CompilationDatabase: FSBL/build If: PathMatch: FSBL/.* --- CompileFlags: CompilationDatabase: Appli/build If: PathMatch: Appli/.*But there is no path match for Drivers and Middlewares. If I open HAL GPIO driver, I can see in the STM32cube clangd lo
I have a new board design that interfaces an STM32L4A6 with a uSD card using 1.8V I/O. The SD Card is powered by 3.3V and supports the LVS mode of SD. The STM32L4 does not seem take account the SD specification 6.0. There is no auto detection mecanism of the signalling voltage level in this MCU. This MCU can not start in UHS-I 1.8V mode.Do you know a MCU which can start the LVS identification sequence ?
I've inherited a board that is based on an STM32MP135AAE3 and has an external DDR (W63AH6NBVABI, a DRAM 1Gb LPDDR3 from Winbond). It appears I need to create a DDR.h file similar to the stm32mp13xx-ddr3-4Gb.h or stm32mp13xx-ddr3-8Gb.h files that STM provides (right?) I've taken the existing stm32mp13xx-ddr3-4Gb.h and am slowly going through, figuring out exactly what each line needs and then trying to track down the appropriate information from the DDR datasheet. My biggest concern is that I get the timing ALMOST right and end up with a DDR that works 99.99% of the time (failing, of course, only at customer sites). 1) Is there an archive of DDR definition files somewhere that I missed?2) Is there a better way to generate this DDR definition file?3) Is there a way to test I did it right besides running various memory tests for days and days? As an example, this file needs information like this:// DDRCTRL SDRAM timing regist
Hi all , System and Motor Parameters:Bus Voltage: 24VRated Current: 40APWM Frequency: 40kHzPhase Resistance (Rs): 0.1ΩPhase Inductance (Ls): 0.03mHBEMF Constant (Ke): 1.1 Vrms/kRPMMax Application Speed: 12000 RPMEstimator & PLL Parameters:Speed Estimator:G1 (C1): 552G2 (C2): 592PLL Kp: 500PLL Ki: 100I am currently using sensorless FOC control. When the motor reaches around 6000 RPM, I observe that the motor noise becomes noticeably sharp, and current feedback (monitored via oscilloscope) shows increasing oscillation. Eventually, it triggers an over-voltage (OV) protection error.Based on my understanding, I suspect the angle estimation error increases with speed, causing misalignment between the control and actual rotor position. This might lead to excessive back-EMF, resulting in bus voltage overshoot and an OV fault.I’ve tried adjusting G1/G2 and PLL Kp/Ki via Motor Pilot, but the issue persists.Additional Question:When I reduce Max Application Speed from 1200
I have updated the STM32L4 HAL drivers to V1.13.6 / 14-November-2025 (1.18.2), which has broken my implementation of HAL_UARTEx_ReceiveToIdle_DMA.Is this a fault in the new HAL drivers or does user code need to be updated inside the HAL_UARTEx_RxEventCallback?
Dear ST Team,I am using STM8L052R8T6.I have already configured an external interrupt on PC0 (PORTC, pin 0).Now I want to configure an external interrupt on PF0 (PORTF, pin 0) as well.Since both pins have the same pin number but belong to different ports, I would like to know:Can PC0 and PF0 generate external interrupts independently?How should the EXTI configuration be done for multiple ports?Which EXTI registers and interrupt handlers should be used for PORTF?Could someone please provide guidance or a simple example for configuring external interrupts on PC0 and PF0 on STM8L devices?Thank you.
Hi,I am currently working on the SPC574k Discovery board and having issues with getting an Output on most off the pins. In my attached image configuration I only get an Output on ATOM1_0, ATOM1_1, ATOM2_1 and ATOM3_0. I use the MCS Module to generate an output for each channel. I checked the code for the mcs module and if I route the signal from originally ATOM1_4 to the ATOM1_0, the correct signal apears on the ATOM1_0 Pin.I am also not able to control a number of Pins via the normal GPIO function even when they are correctly configured.My question, is there some additional limitation in the GPIO Matrix of the chip? Do I have to set a configuration in code to get certain pins to work or could I have a defective Microcontroller?Kind Regards,Sir_Alee
Does anyone have access to documentation with an actual list of registers with addresses and functionality and a full description of the register bits for the VL53L0X? All I have been able to find is documentation that refers to the questionable API driver package and some doxygen-generated document based on the comments in the API.
Is there a comprehensive single documentation source of the Flash layout for say, an STM32H563?The documentation I find is very opaque. Questions I have at present (From a non secure perspective):1. Where is OBK located? (0x0BF0000 to 0x0BF9FFFF ???)2. Where is system located?3. Is RSSLIB actually using OBK memory? Or is this located somewhere else?4. Is there a way to self program the debug password for PRODUCT_STATE > OPEN?5. If #5 true, are there some real docs on this? All I find so far is tutorials and code for the 573 in a secure perspective.
Hello, I am trying to set up a project using STM32Cube Extension in VS Code. When I attempt to select the Nucleo‑F207ZG board in the Board/Device selector, the board does not appear in the list.The stm32cube_core output shows the CMSIS_PACK_ROOT environment variable, and under that directory the file .Download\cache\scanner_391867825626163.cache contains entries for nucleo-f207zg as well as STMicroelectronics.nucleo-f207zg_hw-board.1.0.0.pdsc. Despite these files being present, the board is still not discovered by the IDE. Could you please advise what additional checks or steps I should perform to resolve this issue?
When I call function HAL_FLASH_Program twice with the same Flash address, the second call is ignored. See test code below.int8_t buffer1[16] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};int8_t buffer2[16] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};EraseIntFlash( 0x08200000, 0x08300000 );HAL_FLASH_Program(FLASH_TYPEPROGRAM_QUADWORD, 0X0820000, buffer1);HAL_FLASH_Program(FLASH_TYPEPROGRAM_QUADWORD, 0X0820000, buffer2); In Memory Browser, I expect:0x08200000 03020100 07060504 0B0A0908 0F0E0D0CBut I get:0x08200000 03020100 07060504 FFFFFFFF FFFFFFFFWhat is going on? I really need this to work. Can anyone provide insight or solution or workaround?Jim Eno
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.