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
Heyho,is there an overview when the cycle counter (DWT->CYCCNT) keeps running in which sleep modes?Or can anybody tell me?This info is spread over all kinds of documentation, and AI doesn’t give me a clear answer.Thanks!
Hi there, I am trying to to set up IEEE 1588 PTP time synchronisation with the Netx Duo IP-Stack. I want to port the STM32N6 example (https://github.com/STMicroelectronics/STM32CubeN6/tree/main/Projects/NUCLEO-N657X0-Q/Applications/NetXDuo/Nx_PTP_Client) to my STM32H563 / Nucleo-H563ZI.To my understanding, the H5 Series support PTP and should be able to run the example. The programm runs and prints out the MAC-clock, but the time does not increment and stays always on the same value of 0 seconds and 0 nanoseconds.I also tried to examine the PPS Signal on PG8 with an oscilloscope but as there is no running MAC clock, I get no PPS Signal.To fix this issue I tried different clock increments, thread-priorities. My guess is that the PTP clock in the MAC and the PPS output have to be activated seperately, but I wonder how? Thanks
The reason why TIM14->CCR1 = 50 and TIM9->CCR2 = 49 coexist1. Background and Configuration· Chip: STM32F407ZGTx· Connection: TIM14_CH1 (PF9) outputs PWM, connected via jumper to TIM9_CH1 (PE5) for input captureTIM14 (PWM output) configuration:· Clock 50 MHz, prescaler 4999, counting frequency 10 kHz· Up-counting mode, ARR = 199, CCR1 = 50· PWM Mode 1, active highTIM9 (input capture) configuration:· Clock 50 MHz, prescaler 4999, counting frequency 10 kHz· Slave mode: Reset mode, trigger source TI1FP1 (rising edge)· CH1: rising edge direct capture (CCR1)· CH2: falling edge indirect capture (CCR2)2. Observed PhenomenonIn the capture interrupt, the following registers are read:```cuint16_t IC1_Width = __HAL_TIM_GET_COMPARE(&htim9, TIM_CHANNEL_1); // TIM9->CCR1uint16_t IC2_Pulse = __HAL_TIM_GET_COMPARE(&htim9, TIM_CHANNEL_2); // TIM9->CCR2uint16_t CCR = __HAL_TIM_GET_COMPARE(&htim14, TIM_CHANNEL_1); // TIM14->CCR1```LCD display results:Register Value Meaning
Hello everyone,I am currently evaluating the STM32H563 (using the NUCLEO-H563ZI board) with an application that sends a continuous UDP packet stream via 100 Mbps Ethernet.I've noticed that right after startup (or after flashing the board), the MAC drops a number of packets. Upon closer analysis, the MAC's TX buffer fills up completely, causing all subsequent packets to be dropped. After about 1 second, the MAC seems to stabilize, adjusts to the continuous packet flow, and begins sending all packets without loss.My questions: Why does this behavior occur? My suspicion is that the MAC might be operating in a low-power or standby mode initially, and takes a moment to ramp up to a continuous flow. Is this assumption correct? Is there a way to configure the MAC so that it operates at full speed right from initialization? Thank you for your insights!Best regards,Engineer 0815
Hello everyone,When using libcamera on the STM32MP257 platform (ATK-DLMP257B development board with IMX335 sensor), the DCMIPP driver fails to queue stats buffers to /dev/video4, returning -EINVAL. This causes libcamera to crash with an assertion failure during stream shutdown.Additionally, the DCMIPP post-processor (dcmipp_main_postproc) refuses all YUV format configurations (NV12, YU12, YUV420, etc.), returning Invalid argument (22) for each attempt. The hardware only accepts RGB888/RGB565 output formats.When using libcamera on STM32MP257 platform with IMX335 sensor, the DCMIPP driver fails to queue stats buffers to `/dev/video4`, returning `-EINVAL`. This causes libcamera to crash with an assertion failure (`cache_->isEmpty()`) during stream shutdown.Linux kernel version is 6.6.48.libcamera version is v0.3.0+dirty.Steps to ReproduceBasic libcamera capture with fakesinkgst-launch-1.0 -v libcamerasrc ! \ video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! \ fakesi
Dear STMicroelectronics Community,I am performing a thermal analysis for the following component:MPN: LSM6DSOXTRPackage: LGA-14L, 2.5 mm × 3.0 mmCould you please provide the following thermal parameters for this exact MPN and package?Junction-to-Ambient Thermal Resistance, RθJA (°C/W) Maximum Junction Temperature, Tj(max) (°C)Please also provide the PCB/test conditions associated with the RθJA value, if available.If RθJA or Tj (max) is specified in a separate package thermal document, application note, or internal technical document that can be shared with customers, please provide the relevant document/reference.Thank you.Best regards,Bajas.
Hi, I’m having trouble getting valid ciphertext and tag from the AES peripheral in AES GCM mode using the HAL. I know that some HALs for other chips have resolved the tag mismatch issue (e.g., STM32H7xx - AES GCM Invalid Tag Generation after Decryption). It appears that issue was resolved by accounting for the data swapping when zero padding a final block inferior to 128 bits. I applied a version of the fix to my code (based on both reference manuals the interface to the AES is nearly identical) but I’m still having tag issues. I noticed that before and after this fix zero padded words were being written to the AES input register last. Figure 73 on p369 in the RM0511 Reference Manual seems to imply that zero padded words should be written BEFORE the valid words of the block. Am I misinterpreting the figure?Tag and padding aside, I’m not even able to produce valid ciphertext compared to another implementation of AES GCM (python cryptography library). I use the same 128-bit key, the same
I’ve been using STM32CubeIDE, STM32CubeMX, STM32CubeProgrammer, and STM32CubeMonitor on a Mac currently running macOS 26.6.When I run env or export in Terminal (which uses Zsh by default), I find these two STM32-related environment variables.STM32CubeMX_PATH=/Applications/STM32CubeMX.app/Contents/ResourcesSTM32_PRG_PATH=/Applications/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/Resources/binExamined Zsh dotfiles in my home folder and found the following two *export*s in ~/.zshrc that set them.export STM32CubeMX_PATH=/Applications/STM32CubeMX.app/Contents/Resourcesexport STM32_PRG_PATH=/Applications/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/Resources/binWhich apps have added these; CubeMX, CubeProg, or perhaps the respective plugins from CubeIDE? What is their intended purpose, and in particular, which other STM32Cube tools rely on them? Also, do the apps add these every time on launch or only once during installation?
Board: STM32MP257F-EV1Image: FLASH-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v26.06.10Kernel: Linux 6.6.129USB port: CN15 (USB_DRD, Type-C)I'm trying to run a USB gadget (UVC, via configfs/libcomposite) on CN15, andthe UDC never attaches, even though every layer up to dwc3's pullup steplooks correct:- Type-C/UCSI (M33 firmware USBPD_DRP_UCSI_CM33_NonSecure_stripped.elf, ucsi-stm32g0-i2c driver) correctly negotiates the port as UFP/device: /sys/class/typec/port0/data_role = host [device] /sys/class/typec/port0/power_role = source [sink] A partner is detected, and the UCSI power-supply object confirms VBUS at 5V. This all live-updates correctly on physical cable unplug/replug.- dwc3 correctly switches to device mode: /sys/kernel/debug/usb/48300000.usb/mode → "device"- But the pullup never actually happens: /sys/class/udc/48300000.usb/state stays "not attached" indefinitelyManually retrying via soft_connect just logs "UDC had already started" —the UDC core believes the connect s
Hello,I ordered some samples of the ST732M50R component on August 26, 2026, but the order has not yet been shipped.The order number is: PRD176219.Could you please let me know if it is normal for the shipment to take this long ?Thank you in advance for your reply. Best regards,
Ok, a tricky one. So for services and attributes it's documented that there is 10752 bytes, each service takes up 48 bytes, each attribute 40 bytes, and if you got th number of services and attributes you can compute backwards BLE_ATT_VALUE_ARRAY_SIZE (after you mapped all characteristics to actual attributes), given the upper limit. Easy enough. (GATT_DB_Size_SRAM_NVM.xlsx) My problem is now BLE_MBLOCK_COUNT. There is this macro:#define BLE_TOTAL_BUFFER_SIZE(n_link, mblocks_count) \ (16 + BLE_FIXED_BUFFER_SIZE_BYTES + \ (BLE_PER_LINK_SIZE_BYTES * (n_link)) + \ ((BLE_MEM_BLOCK_SIZE + 8) * (mblocks_count)))What is the limit for BLE_TOTAL_BUFFER_SIZE ? If that is known, I can compute backwards to get "mblock_count" for a known "n_link". Or is the documented 10752 byte number the limit for "BLE_TOTAL_BUFFER_SIZE()" plus the BLE_NUM_GATT_ATTRIBUTES / BLE_NUM_GATT_SERVICES / BLE_ATT_VALUE_ARRAY_SIZE database size ?
Hi,I am using an STM32G474 DAC with DMA and TIM6 trigger.My sine table is:uint16_t sine_table[SINE_SAMPLES] ={ 2047, 2248, 2446, 2641, 2831, 3012, 3185, 3346, 3495, 3630, 3749, 3853, 3939, 4006, 4055, 4085, 4095, 4085, 4055, 4006, 3939, 3853, 3749, 3630, 3495, 3346, 3185, 3012, 2831, 2641, 2446, 2248, 2047, 1846, 1648, 1453, 1263, 1082, 909, 748, 599, 464, 345, 241, 155, 88, 39, 9, 0, 9, 39, 88, 155, 241, 345, 464, 599, 748, 909, 1082, 1263, 1453, 1648, 1846};I found that this configuration works:Memory data alignment: Half WordPeripheral data alignment: WordBut this does not work:Memory data alignment: Half WordPeripheral data alignment: Half WordWhy does the DAC require Word (32-bit) peripheral alignment even though the DAC data is only 12 bits?Also, how do I know which peripheral requires Byte, Half Word, or Word DMA data alignment?Is there a general rule or a specific register description I should look for in the reference manual?
Board: STM32F429I-DISC1 (the official ST discovery board), using its onboard SDRAM chip (IS42S16400J-7TLI, 8MB)Framework: Zephyr RTOS 3.7.0What I'm trying to do:This board has a small TFT LCD screen attached to it. I'm trying to display an image/text on that screen by drawing directly into the external SDRAM chip, which acts as the screen's picture buffer (framebuffer) - the display hardware (LTDC) continuously reads whatever's in that SDRAM and shows it on the screen. So the whole approach depends on being able to reliably write pixel data into SDRAM and have it come back out correctly.The problem, in plain terms:Whenever I write a value into the SDRAM and immediately read it back, one specific bit out of the 16 bits always comes back wrong - always the same one, every single time, no exceptions. For example:I write: 0xABCD → I read back: 0xAB4DI write: 0xBADC → I read back: 0xBA5CI write: 0x89EF → I read back: 0x896FNotice in every case, the value comes back almost identical to wh
I am developing an M33 application on STM32MP257F MPU, I would like to know the steps to import, build and debug secure project for Cortex-M33 in STM32CubeIDE for M33-TD flavor. I would appreciate if any one could tell the best and easy way to deploy custom M33 firmware in to this MPU and test it with or without linux?FYI, I am using STM32MP257F-DK (Discovery Kit) Board. Thanks in advance,Gupta
There have been countless topics (e.g. ) on the website’s downloads not working. How is it possible that this still is an issue? Whether I use my account or try downloading as a guest: After clicking the “Download” button, I am back at the tools page with no download starting. It doesn’t make a difference whether I use Chrome or Firefox. Multiple times I had to switch to using my phone to download the software. It was only recently that I noticed that I can also use WSL to download it. I don’t even understand why the GUEST download requires entering an email address. Is there any work going on to simplify downloading the software? You should have the resources to simplify this long, tedious procedure to simply clicking the button and getting the software.
Is it possible to make the command line and description for pre-build and post-build steps larger? It’s a nightmare working with them as they are.I know you can call a script file, but it would still be nice to see more than just a single line.
No PF0 or PF1 on NUCLEO-H533RE even though the schematic and documentation show PF0 on CN7 pin 29 and PF1 on CN7 pin 31. Are pins 29 and 31 connected to anything or is this a documentation error?
Good morning! What can I use to replace the VNH02H component?
Hello, I’m trying to learn how to use the STM32MP135CAEx for a upcomming project.I have been looking online through tutorials and documentation but have a few questions.Project background:I need a device that has 2 ethernet interfaces, a LCD interface and a bunch of common peripherals.I’m a big fan of STM23 controllers and have a few years of experience with them so trying out the MP series would be a next logical step for me.1)My idea was to make a small linux image on run it on the MPU. That linux then should have access to a display with toutch.The display I had in mind is 400x800 pixels.I don’t know if you can run without DDR memory, I’m gone need it, when I look at the standards RAM available.But can you run without?2)Is there a “bring up guide”?I have been trying to set up my ioc but I keep having an error marker in my DDR tab.So I can have a indication of that I understood things correctly. 3)What I’m used to from the controllers is that one a peripheral is configured correctly
hi i have a STM32 NUCLEO L011K4 working perfectly, i’m looking for ways where if i could power it up from external power source example battery through pins
Hello everyone,I am using the X-NUCLEO-WB05KN1 on a NUCLEO-U083RC. I have already read the documentation on the XCube Sofware package and flashed the shield with the SPI.hex firmware. I am testing the Beacon application but when I get to the hci_reset() function it always returns a timeout and the execution does not proceed. I have already tried the 2.1.0 version and the 1.1.0 version of the software package and I got the same problem on both. I have also tried to set the SPI CLK pin with PULL UP configuration as it was noticed on a previous topic but without success. Can anyone help please?Best regards.
STM32F407 CAN1: INAK not set in Keil µVision SimulatorI am implementing a bare-metal, polling-only CAN1 driver on an STM32F407VG in Keil µVision Simulator.During CAN initialization:CAN1->MCR.INRQ = 1;while (CAN1->MSR.INAK == 0){ /* timeout */}MCR.INRQ successfully becomes 1, but MSR.INAK never changes from 0, so the program remains stuck in the loop.I have verified: STM32F407VG is selected and Use Simulator is enabled. CAN1 clock is enabled (RCC->APB1ENR bit 25 = 1). CAN1 register writes work; for example, MCR.INRQ and BTR fields update correctly. Manually setting INRQ=1 in the CAN1 peripheral window also does not cause INAK to become 1. Similarly, setting MCR.SLEEP=1 does not cause MSR.SLAK to become 1. TSR.TME0/TME1/TME2 also remain 0. Is the CAN1 peripheral state-machine behavior (INRQ → INAK, SLEEP → SLAK, mailbox status, etc.) actually supported for the STM32F407VG in the Keil µVision simulator? Or is there a specific configuration required for these hardware
Dear ST teamWhy does ST team add the “negedge” flag in DT for the SDCARD timing initialization on ST eval DKs?Sébastien
While driving STM32303E-EVAL with STEVAL-IPM20B in sensorless (Observer +PLL) foc mode , speed feedback occurs at below 400 RPM and motor stops.
Referred Ticket: How to run program on STM32N6 after flashing without changing BOOT-1 jumper | CommunityThank you for confirming that it is possible to run the application while keeping BOOT1 in DEV_BOOT mode by loading a RAM executable, performing a core reset, setting the SP and PC, and then running the core.My target is: STM32N6570-DKI need to achieve the following flow: Flash and verify the complete HEX file (Example: STM32N6-GettingStarted-ImageClassification/Binary/STM32N6570-DK at main · STMicroelectronics/STM32N6-GettingStarted-ImageClassification) Keep the STM32N6570-DK physically in DEV_BOOT mode. Start the flashed application automatically without manually changing the BOOT1 jumper. Perform the complete operation through command-line tools or a user script. The following command successfully flashes and verifies the image:STM32_Programmer_CLI.exe `-c port=SWD mode=UR reset=HWrst `-el "ExternalLoader\MX66UW1G45G_STM32N6570-DK.stldr" `-w "STM32N6570-DK_GettingStarted_I
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.