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
My target is a 144 pin version of the STM32H5.I would like to implement both a JTAG and a FMC interface.More specifically, a 24-bit muxed-PSRAM.And I would like to output the Byte enable signals.However on this package size, there is only one possible pin for NBL1, PA15.Which is also the DEBUG_JDI pin.Is there any way to route the value of NBL1 to another GPIO pin?
Hi ST team,I am using STM32U5G9 in my project. It would need simple firmware update feature and the image would be received by UART from a zigbee module.I have read UM2851 and AN5447 application notes and check the SBSFU example in STM32CubeU5 package (v1.8.0) in github. I believe this is what my project needs:1. MCUBOOT (Secure area)2. NS Application (non-secure primary slot)3. Nonsecure image secondary slot (for firmware update)4. Authentication and integrity check5. SWAP mode with scratch region I want to maximize the flash usage, so it doesn't need:1. Secure application2. Secure data3. Non-secure data4. Loader5. Encryption The bootloader would verify the signature in primary slot and execute the NS application. NS application would write the new image into Nonsecure image secondary slot when firmware update is needed.I would like to ask:1. How to modify the SBSFU example to meet above requirement? How should I modify below config file?- mcubo
Hello, I’m working with an STM32F446 and have configured GPIOB pin 12 as an EXTI input. After initialization and before entering the main while loop, I call a function that blocks program execution(what I mean by blocking : I have a test that stands in a blocking while until I receive the first bytes of USART reception) . In this scenario, changing the pin state does not trigger the EXTI interrupt. However, if I comment out this blocking function, the EXTI works as expected. I also observe the same behavior if I insert a while(1) loop before the main loop.Has anyone experienced similar behavior? If yes, do you know what the solution might be? Thank you in advance.Aymen
Hello,I am designing a Matter/Zigbee Gateway using an STM32U5 as the host. My planned architecture includes:ST67W: Handling Wi-Fi and Thread (Matter over Wi-Fi/Thread).STM32WBA (or similar): Handling Zigbee (Matter Bridge logic).I have two specific questions regarding the ST67W's coexistence capabilities:Internal Coexistence: Does the ST67W natively support concurrent operation of Wi-Fi and Thread simultaneously without external hardware arbitration?External PTA Support: Does the ST67W expose 3-wire PTA pins (Request/Priority/Grant) to manage coexistence with an external 802.15.4 radio (e.g., the STM32WBA running Zigbee)?Basically, I need to confirm if it supports a "Hybrid Coexistence" setup where it manages internal Wi-Fi/Thread traffic while acting as a PTA Arbiter for an external Zigbee MCU.Thanks in advance.
Dear ST Team,我用usb转ttl单独对4g模块发at,回复消息是正常的,单独模拟给单片机发数据,回应的数据也没有丢字符,就是4g模块跟单片机之间通信的时候存在问题When I use a USB-to-TTL adapter to send AT commands to the 4G module alone, the responses are normal. When I simulate sending data to the microcontroller alone, the data is also received correctly without any missing characters. The problem only occurs in the communication between the 4G module and the microcontroller. STM32L051C8T6Watcher List:<wang_hardware@wisetelcom.com>
STM32F429ZI Ethernet @180MHzRM0090 33.8.1 page 1197, ETH_MACMIIAR CR: max value is 100 150-168MHz HCLK/102Is this a print error (other micros in the family can only reach 168MHz) or the controller is not specified to work at 180MHz ?Thx
Hello ST Community,I'm currently developing a project on STM32H743 using TouchGFX 4.25.0 (RGB LTDC interface, framebuffer in external 16MB SDRAM) and LWIP + FreeRTOS (TCP client mode over Ethernet RMII). Everything works fine when TouchGFX is not included. However, after adding TouchGFX to the project, I'm facing strange Ethernet instability.:magnifying_glass_tilted_left: Observations:Without TouchGFX:TCP Client connects to the server reliably.No reconnection or data loss observed.Using recv() with flags = 0 works flawlessly for long durations.With TouchGFX + LTDC + DMA2D:Frequent TCP reconnections start occurring.Happens especially when using lwip_select() + recv() mechanism.If I skip lwip_select() and use direct recv() with flags = 0, reconnections stop, but after some time communication lags or stalls.:light_bulb: Hypothesis:I suspect the problem lies in AXI bus contention between:LTDC/DMA2D accessing external SDRAM (for framebuffer)Ethernet DMA accessing DTCM/SRAM or other AXI slav
hello, I need to use both touchgfx and usb msc host with stm32h743 in my project. they work fine separately , but when I add usb to my touchgfx project it does not work(all my usb implementations are based on controllerstech video). Do I need to do any different thing when they are used together? thank you for your help.
Hi All,I am currently planning a custom motor control design based on the STM32G431CUB6 microcontroller for a 3-phase inverter application.Before finalizing my PCB design, I would like to clearly understand the firmware flashing and runtime communication possibilities, especially related to Motor Pilot and real-time monitoring.I kindly request your clarification on the following points:Is the use of ST-LINK mandatory for flashing the firmware into the STM32G431CUB6 during development?Does Motor Pilot software communicate with the MCU only through ST-LINK, or can it also operate via UART?For real-time monitoring of parameters such as RPM, DC bus voltage, current, and motor status using Motor Pilot, is ST-LINK compulsory? Your guidance will help me finalize my hardware design and production programming strategy correctly.
I am working on custom evk of STM32WB05KZ sdk(stm32cubewb0-v1-3-0) on STM32CubeIDE_v_1.19.0 and STM32CubeProgrammer and trying to redirect logs on UART1 through __io_putchar/_write. It is working with Examples(GPIO_EXT, I2C, ADC, etc) but while running BLE(Any of it) section from Applications it is not giving any log through UART/Virtual COM Port. Below is the refrenced code of my main.c: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2024 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ***************************************************************************
Greetings,I'm working on a project where S2-LP scans multiple channels and receives a packet when a valid preamble is detected. For dwell time timing I'm using the RX timer. The timer is set to 2 milliseconds and is stopped whenever a valid preamble over certain signal level is detected to allow packet reception. Whenever the timer expires or a valid packet is received the next channel is selected (cycles from 1 to 10, then the cycle repeats) if(chSwitch) { chSwitch = false; newChan = S2LPRadioGetChannel() + 1; if(newChan > 10) newChan = 1; subGHzSetChannel(newChan); }chSwitch flag is set in interrupt handler whenever the RX timer expires, or a valid packet is received.Channel switching function:void subGHzSetChannel(uint8_t chNum) { S2LPCmdStrobeCommand(CMD_SABORT); S2LPRadioSetChannel(chNum); S2LPCmdStrobeCommand(CMD_RX); }Radio settings:Base frequency: 915.5 MHzData rate: 10 kb/sFrequency deviation: 20 kHzChannel filter: 65 kHzChannel spacing: 250 kHzModulation:
How to drive HSD and LSD pin using SPI command in EVAL BOARD L9301 and we need technical details what frame we have to send form our ECU to actuate the LSD and HSD drive and even more technical details related to this we are waiting for your immediate response
Hello there, First time posting here!Please let me know if I am posting things inappropriately. We are looking for a MCU and its corresponding evaluation board. Our input signal that coming into the board/MCU is 800 MHz.And our application processing speed is also at least 800 MHz. We notice that STM32N6/Cortex-M55 seems like a choice as its processing speed can go up to 800 MHz.It also has a new ST Neural-ART accelerator, seems like a good choice for our neural network process.However, we did not find a evaluation board with STM32N6/Cortex-M55 that has input PIN can digest up to 800 MHz. Anyone has any suggestions?Or is there any other combinations you should consider? Thank you guys so much!
Hello everybody! I guess that apart from the Cube IDE, the only viable option for Mac users is Crossworks, so I would like to make an LED-flash project in Crossworks just to see what this IDE can offer. The problem is that I could neither find any prepared example project nor any guide on how to make one. Please, could anybody guide me through the process? Thank you guys!
Hi,My problem is, that i want to trigger an SPI reading event, on an master timer repetition event. I registered the HAL_HRTIM_RepetitionEventCallback and start the SPI, within this function. The first problem is, that there is always a delay, that seems way too big, to start the peripheral at a CPU clock 0f 170MHZ. On the other side, that delay is not consistent, making it even harder to work with. This is a waveform i get. In pink is the clk line of the SPI, you can see, that for whatever reason sometimes 4 transmissions take place, eventhough only one dataframe was set up. When the light blue line goes high, the SPI should be triggered by the according ISR. I´m not sure, what im doing wrong, but i even set the HRTIM interrupts to the highest priority to service earlier. Here is my SPI setup. As i only want to recieve data, im using master recieve. I also tried full duplex and then i can get rid of the multiple data frames sent, but i thought this would then include du
Hello, i have a problem with I2C SSD1317 OLED display in combination with STM32. On arduino it works. On STM it works with other controllers but not with SSD1317. Display is working and address is ok (because it's working on Arduino). I tried different speeds and pullups. Arduino and SSD1317:STM32 and SSD1306: STM32 and SSD1317:Arduino code://Atmega88 SSD1317 OLED 4 pins I2C //Buffer size 384Bytes //Four 7 segment numbers are displayed. No flicker. //Decimal point and frame graphics are provided. //Without the character table, 30% of Flash and Ram are used only. static byte bufr[384] = {}; unsigned long tim , bufridx ; #define oled 0x3c const byte initcode[]= { 0xae,0xd5,0x80,0xa8,0x2f,0xd3,0x00,0x40,0x8d,0x14, 0x20,0x00,0xa1,0xc8,0xda,0x12,0x81,0xcf,0xd9,0xf1, //0x81 contrast 0xdb,0x40,0xa4,0xa6,0x2e,0xaf}; void setup(void) { TWSR=0x00; TWBR=0x02; //8M / (16+2*2)*1 = 400khz // Set pre-scalers (no pre-scaling) //TWSR = 0; // Set bit rate //TWBR = ((F_CPU /
Hi, I’m working with an STM32C011F6P6TR device, and after programming it via SWD using STM32CubeProgrammer, the MCU became completely stuck in resetSymptoms- After programming an ELF file through STCubeProgrammer, the MCU no longer runs.- The NRST pin stays LOW permanently, even after power cycling.- I cannot reconnect with STM32CubeProgrammer, even using “Connect Under Reset” mode.- The tool returns: DEV_HELD_UNDER_RESET.- Removing power, disconnecting ST-LINK, reconnecting, and trying again does not help.Before programming, everything worked normally and I was able to connect and flash multiple times (Using VS-CODE and ST extension).Questions:What could cause the MCU to remain stuck in reset after flashing?Is it possible that option bytes got corrupted or misconfigured during programming?Is there any way to force a full chip erase or restore factory option bytes when the device cannot be accessed through SWD?Has anyone encountered a similar issue with the STM32C0 series where NR
Hello, I want to design a PCB with STM32H743VIT6 MCU. But I am not sure how can I choose crystal and capacitors properly. In STM32H743VIT6 datasheet there is one section about this topic;according to this information should I take the Cstray value as a10? (Many other documents suggesting 3-5 pf)so if I choose 16MHz 12pf Capacitor my values are gonna be like this;CL = 12pFCstray = 10pFC1 and C2 load caps,Formula : CL(crystal)=( (CL1 * CL2) / (CL1 + CL2) )+CstrayCL1 = CL2 --> C12 = ( C / 2 ) + 10pFC values are should be 4 pF instead of 12pf in the circuit ?
hi everyone, can anyone steer me to a Datasheet for this, or an identification please? thanks, elts
Hello everyone,I’m working on diagnosing and rewiring the control system for an Ingrem Veyron J20 gaming chair. The chair uses a servo module with an RJ45 connection to the handheld remote, and I’ve been tracing signals back to the main board (marked ST‑H801S‑V1.1 and ST‑H8‑CORE‑V2.1).Here’s what I’ve established so far:RJ45 pinout from the remote:Pin 1 → Green (likely RX)Pin 2 → Black (Ground)Pin 3 → Yellow (TX??Pin 4 → White (logic/handshake line, not VCC)The board itself has a separate AC power feed.With RJ45 disconnected, the board powers up fine (red LED lights). When RJ45 is wired incorrectly, the board fails to boot.I believe the connections come from UART1 and COM20, but I don’t know how they should map to the RJ45 connector:question_mark:What I NeedIf anyone here owns an Ingrem Veyron J20 chair, could you please:Photograph the main board (ST‑H801S / ST‑H8‑CORE) with the connectors attached.Show the RJ45 wiring harness and how the colored wires (green, black, yellow, whit
I am running Linux Mint And I have had STMCubeIDE 1.7 and 1.9 and just installed 2.0. It gave me an error the first time which I forgiot to write down, but it was in the window that normally lets me edit the .ioc file to assign my pins and activate the peripherals. I looked in the community and someone said unclick CDT in the Available Software Sites. Now it does not even ask to create/edit the .ioc file. I am wondering if things are getting confused because I have 3 versions of the STM32CubeIDE installed. How do I uninstall them, so I can try to install a clean copy? I looked at one of my older projects and the .ioc file looks like a text file. #MicroXplorer Configuration settings - do not modify ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5 ADC1.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_6 ADC1.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_7 ADC1.Channel-3\#ChannelRegularConversion=ADC_CHANNEL_8 ADC1.Channel-4\#ChannelRegularConversion=ADC_CHA
Hi,I am working on an STM32N6 project inspired by the peopleDetection example in which I try to run a yolov8 for instance segmentation.My pipeline uses camera (DCMIPP) + LTDC display + NPU inference (ATON / X-CUBE-AI).Each subsystem works correctly on its own:If I comment out the inference code in the main while, camera + LTDC work perfectly.If I comment out the camera/display code and keep only the inference (LED toggle + delay), the LED blinks, meaning NPU inference works correctly.This behavior is consistent when programming through CubeProgrammer.However, when everything is enabled at the same time, the display stays completely black.The portion of code that causes the issue is:LL_ATON_RT_Init_Network(&NN_Instance_Default);/* Run Inference */do{ll_aton_rt_ret = LL_ATON_RT_RunEpochBlock(&NN_Instance_Default);if (ll_aton_rt_ret == LL_ATON_RT_WFE){LL_ATON_OSAL_WFE();}} while (ll_aton_rt_ret != LL_ATON_RT_DONE);/* End of Inference */LL_ATON_RT_DeInit_Network(&NN_Instance_De
Hi ST team,I am using STM32U5G9J-DK2 board and the verson of STM32CubeProgrammer is v2.21.0.I tried to reset MCU to factory settings (in option byte tab) using STM32CubeProgrammer but failed.After that, STM32CubeProgrammer could no longer connect to the board with below log.14:23:14 : STM32CubeProgrammer API v2.21.0 | Windows-64Bits 14:23:25:813 : Selected loader: C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr 14:23:25:814 : External loader C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr is unloaded 14:23:25:814 : Selected loader: C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr 14:23:25:814 : External loader C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr is loaded 14:23:28:572 : UR connection mode
Moved from this thread. Why does attempting to compile this example result in these errors? ../../USBX/Target/ux_stm32_config.h:29:10: fatal error: stm32h5xx_hal.h: No such file or directory 29 | #include "stm32h5xx_hal.h" | ^~~~~~~~~~~~~~~~~
Hi everybody,I'm trying to make a bootloader in my STM32F446. The aim if this one is the possibility to update the firmware but with keeping the previous one in case of issue. So, I'll have two slots for firmware.For now, I have the following sectors in my flash :BOOTLOADER : 0x0800 0000 -> 0x0800BFFF (it only uses sector 0 & 1 for code, so I use last word of sector 2 (0x0800 BFFE & 0x0800 BFFF) to write a "magic word" which gives me the information, if we're currently running on SLOT 1 or 2).SLOT 1 : 0x0800 C000 -> 0x0800 3FFFSLOT 2 : 0x0804 0000 -> 0x0807 FFFFMy FW is running on slot 1. It receives the order to update, so it restarts, checks on which slot the new FM must be copied, writes into the flash, and starts again on new slot (and this is done at each update, so FM is running on SLOT1/2 alternatively).Everything works well, except the last step, it always run on slot 1 (even if all the code has been written in the slot 2).In the two first 32 bytes (0x0800 0000
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.