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
HiI designed a PCB with an STM32MP157 using a Micron LPDDR3 memory. When I started the layout, I was advised that the memory would be available at least until 2029, so proceeded in good faith. When I came to order prototype samples back in March, I found that there was a Last Time Buy of August 31st this year.The only option that I had was to change the layout to support DDR3L memory, however with the current DRAM supply crisis, I do not have confidence that this generation of device will have sufficient longevity of supply to justify the investment in mass production.My alternative is to jump to an STM32MP2-based board and use DDR4 or LPDDR4 memory which will likely be available for longer but again with the current supply chain situation, these generations could also be obsoleted sooner than anticipated. I already read of DDR5 and LPDDR6 memories coming on stream.Two questions:With regard to the STM32MP1 and STM32MP2 processors, what is ST’s best guidance about which DRAM memory type
I have used some time to figure out to use the ADCs for a couple of Nucleo STM32G4xx boards. In particular I liked to be able to make use of the asynchronous clock. I found out by some trials and errors to get the right RCC settings for that.In RM0440 you got a ADC clock schematic figure 83 page 597. I have tried to enlarge this schematic a bit regarding the RCC controls like this: Can you agree to this schematic?These functions can help configure RCC for the other ADC clock input:__HAL_RCC_ADC12_CLK_ENABLE() Enables clock to AHB interface__HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK); Enables clock to PLLPI did not find a function outside the big HAL RCC init data structure to set the bits ABCxxSEL[1:0] of RCC_CCIPR, so I did that bare metal.
Hello,I’m using STM32Cube AI Studio to optimize and validate an ONNX model on a NUCLEO-N657X0-Q board. In general, everything works fine. However, I would like the board to be configured in overdrive mode (npu_freq = 1000MHz, mcu_freq = 800MHz) by Cube AI Studio for the validation runs on the target because I’m hoping to achieve a better inference time.When executing new “runs” in Cube AI Studio, the device attributes are always as seen in the screenshot below.Results overview of a run in Cube AI StudioIf I use the the ST developer cloud to optimize and benchmark my model with the STM32N6570-DK board (because the NUCLEO-N657X0-Q is not available in the DC), the device attributes are as follows:Device attributes for the benchmark in the developer cloudSince those two boards have the same STM32N657X0H3Q MCU, I expect a similar inference time on my NUCLEO-N657X0-Q board with Cube AI Studio if I could just activate the overdrive mode. I didn’t find any settings in the Cube AI Studio user i
Hi, I am trying to design a custom board with a 1 rank dual die 16Gb LPDDR4, AS4C1G16MD4V-046BIN. I have read the design guide AN5489 and DDR config AN5723. From my understanding there is only one chip select pin for each rank, correct? What do I do? Is there a configuration supported by the STM32MP2x processor with 2 chip select in 1 rank?FYI, I am designing a board based on STM32MP235, so supposedly only 1 rank is usable as per the datasheet.
Hi team ST,As we all know, the major DRAM manufacturers have all announced they will stop fabricating the DDR4 die and only LPDDR4 is still in production, in light of this, does STMicroelectronics has an plan to design a new PMIC more focus on the LPDDR4 configuration with less LDOs and smaller package? Given that we don’t need the external termination for DDR anymore with LP DRAM.
Somesays ago, I successfully used STM32Cube.AI Studio to deploy a model to an STM32U585CIU6 board and test it.However, yesterday evening I upgraded STM32CubeIDE, STM32CubeProgrammer, and STM32CubeMX. After that, when I tried to run the same process again, I started getting an error.I searched online and found some similar cases. The suggested solution was to update all related software, so I updated the tools accordingly. However, the same error still occurs.I also tried using another laptop. On that laptop, I performed the same software upgrades and then tested with an STM32H743VIT6 board, but the same error occurred there as well.Because of this, I suspect that I may have missed updating some required software or package.Has anyone experienced this issue before or found a solution? I would greatly appreciate any advice or guidance.ps : stedgeai version is v4.0.1.
I want to create an MX25UM51245G. sldr, but it keeps failing with a prompt Use the official MX25UM51245G_STM32N6570-NUCLEO.stldr to confirm that the board can be downloaded successfully Please check the MX configuration that I generated for MX25UM51245G_STM32N6_ ExtMemLoader. stldr
Hi!I've found good programs for surfing on the web (Google, wikipedia, MSN, News etc.) and playing Youtube videos in full 1080p HD. No heavy JavaScript is enabled. Those programs requires an update of the extremely light weight GUI library FLTK 1.3.8 to 1.5.x. Is there anyway I could do that in OpenSTLinux Yocto SDK? The name of these programs are: - FLTube Youtube Player - Dillo Web Browser These are old technologies from late 90's, but they are extremely optimized to run on low, slow and old hardware. Still maintaining by developers.
Setup: STM32F446RE Nucleo + MPU9250 (I2C1, PB8=SCL/PB9=SDA), breadboard wiring, HAL library, 100kHz standard mode.Symptom progression: Sensor works intermittently. When it fails, I see two distinct failure signatures that seem to escalate:First failure mode: HAL_I2C_IsDeviceReady() succeeds (device ACKs its address) but the WHOAMI register read returns the wrong value. After a couple of MCU resets without touching hardware: escalates to the device not ACKing its address at all (IsDeviceReady fails outright).What I've tried:Implemented the STM32 I2C "clear busy flag erratum" workaround (ST-documented fix for the analog filter/BUSY-flag lockup bug — the 15-step GPIO bit-bang + SWRST sequence). This did NOT reliably fix it — worked on some boots, failed on others, no clear pattern. A full power cycle (not just MCU reset — actual power removal) temporarily restores it to working. Reseated all breadboard connections (SDA, SCL, VCC, GND) multiple times — no change in behavior.What this rules
OpenSTLinux: Starter Package, plain image (FlashLayout_sdcard_stm32mp257f-dk-optee.tsv), version 5.0.17-openstlinux-6.6-yocto-scarthgap-mpu-v26.06.10M33 firmware: Zephyr RTOS (4.4.99), board target stm32mp257f_dk/stm32mp257fxx/m33, loaded and started from Linux via remoteproc.Goal: Drive a SPI device (Qorvo DW3000) from the Cortex-M33 over SPI6, which is exposed on the CN5 header (GPIO10/SPI6_MOSI = PC7, GPIO9/SPI6_MISO = PC4, GPIO11/SPI6_SCK = PF7).When the M33 firmware performs a SPI transfer, the GPIO chip-select line toggles correctly (verified on a logic analyzer), but SCK never produces any clock pulses & the line stays flat. Consequently no data is exchanged (MOSI/MISO flat). The transfer call itself returns; it just produces no clock.What I have already checked:-RIFSC firewall: SPI6 shows as NSEC, NPRIV, CID filtering disabled (from the RIFSC debug dump) — i.e. not blocked/assigned exclusively to the A35.-Clocks: clk_summary shows both ck_icn_p_spi6 (~200 MHz) and ck_ker_sp
I am working with an STM32MP257F-EV1 Evaluation board (board reference MB1936, target STM32MP257FAI3) and am unable to debug the Cortex-M33 core independently over SWD. Setup:- Board: STM32MP257F-EV1- Tools: STM32CubeIDE and STM32CubeProgrammer.- Boot switches (SW1) set to Development boot: Boot0=1, Boot1=1, Boot2=0, Boot3=0- JP3: no jumper fitted (STLINK-V3EC active)- CubeIDE debug configuration: Load Mode = "thru JTAG/SWD link (Engineering mode)", Access port = "8 - Cortex-M33", SWD interfacei have attached debug error screenshot. i want to debug a standalone (bare-metal) application running on the Cortex-M33 over SWD.Could you help with the following:Is it possible to debug the Cortex-M33 via SWD/JTAG on the STM32MP257F-EV1 without booting from SD card, eMMC, or QSPI. What is the recommended/supported procedure for attaching a debugger (SWD) to the M33 core when running a standalone bare-metal application. Are there specific boot configuration or provisioning steps required (e.g.,
Dear ST Support Team,I am currently working on an LLC resonant converter project using the STM32G474 microcontroller.My goal is to implement Synchronous Rectification (SR) using the STM32G474's PWM timers and Comparator peripherals. However, I am unsure about the correct peripheral configuration and firmware implementation.I would appreciate your guidance on the following: How should I configure the PWM timers and Comparator peripherals in STM32CubeMX for Synchronous Rectification? Which timer and comparator connections are recommended for this application? Are there any reference projects, example firmware, or application notes available for implementing SR on the STM32G474? Are there any recommended CubeMX configurations or firmware examples that demonstrate this functionality? Could you recommend any official documentation, training material, videos, or tutorials that explain the implementation of LLC Synchronous Rectification using STM32? My objective is to understand the c
Hi all,I’m looking at a STM32C092 for some UART stuff. The data sheet has USART1 on an independent clock. Using MX I select USART1 as Asynchronous and MX calculates the rate according to the independent clock as expected,However, when I select USART1 as Synchronous MX calculates the bit rate according to the APB clock. I don’t have a device to test it on.Is MX right or wrong?Thanks in advancePedro
We are using the PowerSTep01 chip to control a stepper motor.https://www.st.com/resource/en/datasheet/powerstep01.pdfRecently we have had issues with the control of motors where the initialization of the PowerStep01 chip failed at startup and the status register read 0x0000 before initialization and 0xE603 after initialization and 0xE613(HiZ=1) when tried to run the motor. After some investigation we figured that sending a reset pulse for 5ms worked (initial Solution A) which had to be increased to 100ms (Solution B) for a stable outcome.The solution was built by reading through the answers in different forums, with 2 examples links belowhttps://forums.parallax.com/discussion/165132/trouble-driving-the-powerstep01-using-the-x-nucleo-ihm03a1expansion-board https://community.st.com/power-management-53/powerstep01-constantly-tripping-overcurrent-25813 Below is the detailed problem description as well as details of solution A and B. The problem resurfaced after removing intermediatory fi
我在尝试用STM32Cube AI Studio运行一个STM32F407ZGT6项目时遇到了“启动失败运行”错误,我不确定问题的原因。一开始运行正常,但之后错误一直出现。使用“主机”模式时,它正常工作。2026-07-13 10:49:46 错误:以下路径中找不到4.0.0版本的可执行文件:C:/*ST*/*STEdgeAI*/4.0,C:/*ST*/*STEdgeAI*/*2026-07-13 10: 49:47 错误:以下路径中找不到4.0.0版本的可执行文件:C:/*ST*/*STEdgeAI*/4.0,C:/*ST*/*STEdgeAI*/*2026-07-13 11:14:59 错误:从公共IP获取国家时出现错误:获取失败2026-07-13 11:15:00 错误:以下路径中找不到4.0.0版本的可执行文件:C:/*ST*/*STEdgeAI*/4.0,C:/*ST*/*STEdgeAI*/*2026-07-13 11:15:01 错误:以下路径中找不到4.0.0版本的可执行文件:C:/*ST*/*STEdgeAI*/4.0,C:/*ST*/*STEdgeAI*/*
Hello everyone,I am working on a project where I need to control a BLDC motor with integrated hall sensors.I saw this feature on RM0440 Document ‘29.3.28 Timer input XOR function’I decided to use the TIM2 as the ‘Interfacing Timer’ and TIM1 as the PWM generating/motor driving timer.I can read the time period between the hall sensor changes via TIM2->CCR1 register but I can not get the COM event with TIM1. Can anyone help?The following is my CUBEMX setup: Here are the snippets of my code which I think are the most related. If you need other parts of my code I can provide it.
In file included from Middlewares/ST/AI/Misc/Src/ai_device_adaptor.c:19:Middlewares/ST/AI/Misc/Inc/ai_device_adaptor.h:655:8: error: unknown type name 'UART_HandleTypeDef'; did you mean 'DMA_HandleTypeDef'? 655 | extern UART_HandleTypeDef UartHandle; | ^~~~~~~~~~~~~~~~~~ | DMA_HandleTypeDefMiddlewares/ST/AI/Misc/Inc/ai_device_adaptor.h: In function 'port_io_get':Middlewares/ST/AI/Misc/Inc/ai_device_adaptor.h:664:12: error: implicit declaration of function 'HAL_UART_Receive' [-Wimplicit-function-declaration] 664 | status = HAL_UART_Receive(&UartHandle, (uint8_t *)c, 1, timeout); | ^~~~~~~~~~~~~~~~Middlewares/ST/AI/Misc/Inc/ai_device_adaptor.h: In function 'port_io_write':Middlewares/ST/AI/Misc/Inc/ai_device_adaptor.h:676:12: error: implicit declaration of function 'HAL_UART_Transmit' [-Wimplicit-function-declaration] 676 | status = HAL_UART_Transmit(&UartHandle, buff, count, HAL_MAX_DELAY); | ^~~~~~~~~~~~~~~~~make: *
There are several contradictory results in the Spec regarding the mode transition after self test aborted, as shown in the following figure,Which conclusion is correct
Hi ST Community,I am working with an STM32N657 and would like to use the integrated NPU directly from my own C/C++ application.I understand that X-CUBE-AI together with the Neural-ART can generate the code required to execute a neural-network model on the STM32N6 NPU.However, I would like to understand whether it is possible to use the NPU without X-CUBE-AI.Does STM32CubeIde provide HAL APIs that allow an application to directly initialize, configure, load, and start the STM32N6 NPU?
Hi Team,Hope you are all doing well.I am currently working on the motor control related project, and I am proposing the SPC58EC series as the MCU for this application. The development board selection is fine, and we can proceed with the SPC58EC evaluation/development board.Before moving forward with the custom hardware design, I would like to clarify the debugging and programming interface.Initially, I considered using the StellarLINK in-circuit debugger/programmer. However, the STMicroelectronics website currently lists StellarLINK as NRND (Not Recommended for New Design).Therefore, could you please suggest the recommended alternative debugger/programmer for the SPC58EC series that is suitable for a new design?Please suggest the recommended debugger and corresponding JTAG connector/pin configuration so that we can finalize the PCB design accordingly.Thanks and Regards,Aravind
In debug mode, the variables in the watch window are by default displayed in decimal format. I couldn't find a way to set it to display in hexadecimal format. I am using the jlink debugging configuration.
Can you help me check the issue of generating external falsh download files for my STNM32N647? Last time with your help, I successfully generated the burning file for MX25UM51245 using cubemx. However, due to this shortage, we replaced it with the external falsh of MX25LM51245 with pin2pin.For this replacement, we have modified VDDIO3 to 3.3 power supply on the hardware. I used the software based on the MX25UM51245 file and modified the IO voltage configuration of the PWR. The VDDIO3 of the PWR has been configured to 3.3V, and the XSPI remains the same as before, using 100MHz.The burning file generated using this configuration cannot download MX25LM51245 now. * I have confirmed that the OTP124 of the chip used remains at 0.https://community.st.com/stm32cubeprogrammer-mcus-30/stm32n647z0-failed-to-create-the-download-file-for-mx25um51245-external-flash-167199
I bought an stm32f103c8t6 recently, and just wanted to write a simple test C/C++ program for it. It has been 3 days - I have tried multiple combinations of cubemx and cubeide versions and everytime there is the same issue - it just doesn’t let me build the imported project. On this site I found a similiar question on this topic and people said that the problem is caused by system username containing non-english characters. I changed my windows profile name to contain only english characters and the problem persists.I am a bit lostHere is a photo of my project, just generated by MX. inside the project folderAnd here is how it looks after i open it in the IDE I have tried to manually set the nature to C/C++ but it doesnt solve the issue at all. it just make a small “C” appear over only the upper folder.
I am using the starm-clang with cmake.I need to use multithreading lock. I understand that in standard PICOLIBC the locking functions are included but just as stubs and "weak" defined and you need to override the functions and define new implementations to use them.I tried to do this but I get all kinds of "duplicate symbols" errors when I link.Are you doing something special with the STARM_PICOLIBC library?Is the locking functions already implemented and functional in you version of PICOLIBC?
Hi everyone,I’ve been working on some firmware lately for a media-based project, and I’m looking at the practical limits of decoding high-fidelity mp3 streams (specifically 320kbps CBR) on mid-range MCUs like the STM32U5 series.While standard 128kbps streams are easy enough to handle, moving to the 320kbps standard introduces some interesting challenges regarding the DMA (Direct Memory Access) buffer size and the overhead of the file system (FatFS) when reading from an SD card.I’d love to get some insights from the community here on a few technical points: Buffer Management: For a stable 320kbps mp3 playback without stutter, what is your preferred double-buffer size to minimize SAI (Serial Audio Interface) underruns? Hardware vs. Software Codecs: Are most of you using dedicated external hardware decoders for high-fidelity audio, or are you achieving stable results using software libraries like Helix or minimp3 on the Cortex-M33 core? Power Optimization: Since 320kbps requires more
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.