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 ST Team,Could you please review the attached ST25DV60KC NFC antenna design and provide any recommendations regarding the antenna design, schematic, and PCB layout?Any comments or best practices before PCB release would be greatly appreciated.Thank you for your support.
If i type in 1 as endpoint number, enable double buffering and then later switch to endpoint 0, double buffering is still enabled. Code generator will also generate code with double buffering on endpoint 0.
MCU : STM32WLE5CCU6Firmware Package Name and Version : STM32Cube FW_WL V1.4.0Application : FUOTA using LoRaWANSetup : End Node(STM32WL) <===> Gateway(Dragino LPS8) <====> TTNHello, I am trying to get my LoRaWAN FUOTA example running for few days with unsuccessful attempts.At first i was successfully able to build LoRaWAN FUOTA application provided by ST under STM32Cube_FW_WL_V1.4.0. This firmware is made for NUCLEO-WL55JC(STM32WL55JC, Dual core with 256KB flash)But as i have STM32WLE5CCU6(Single core 256KB flash). With that also i tried to change the startup and linkers and updating .cproject with correct part number and was able to build it but while flashing gets an error.\STM32Cube\Repository\STM32Cube_FW_WL_V1.4.0\Projects\NUCLEO-WL55JC\Applications\LoRaWAN_FUOTA\Scripts\STM32CubeIDE> .\program.bat ########################################### # 0- Set all global variables ########################################### ######################################
Despite the peripherals are callable, the code preview from STM32CubeMX2 does not call the init functions of the peripherals.What is the trick to get this done ?We also see in the HAL common settings, the option to toggle generated vs callable is not selectable.Is this something to do with the older version of STM32CubeMX2 v1.1.1 and STM32CubeMX2 v1.0.0 ?Please suggest
Hello ST Team,I am working on the STM32MP257F , using OpenSTLinux 5.0.17 and the ST TSN switch stack v6.I would like to confirm whether the TSN Ethernet switch is officially supported on the STM32MP257F-DK boardNOTE:I understand that the DK board has only one externally accessible Ethernet port and that it can be used as a TSN endpoint. I have enabled the TSN switch, and the following interfaces are available:lowlan0end0sw0p1sw0p2sw0p3sw0epWith the TSN switch enabled, the switch interfaces are created and sw0p1, sw0p2, and sw0p3 are visible. I have connected an external PHY to sw0p3.root@stm32mp2-e3-d2-99:~# ethtool sw0p3Settings for sw0p3:Supported ports: [ TP MII ]Supported link modes: 10baseT/Full100baseT/Full1000baseT/FullSupported pause frame use: NoSupports auto-negotiation: YesSupported FEC modes: Not reportedAdvertised link modes: 10baseT/Full100baseT/Full1000baseT/FullAdvertised pause frame use: NoAdvertised auto-negotiation: YesAdvertised FEC modes: Not reportedLink partner
SetupSTM32MP157, Cortex-A7, bare-metal SDMMC1 → eMMC (61071360 blocks, 512B), CardType 1 Kernel clock: pll4_p_ck (125MHz) via RCC_SDMMC12CKSELR IDMA: single-buffer mode Test: single-block write (512B) to block 4096, then read-back + compare Problem After a cold power-on, the first HAL_MMC_WriteBlocks_DMA() intermittently fails with TX FIFO underrun. Not every cold boot — boot-to-boot random, same config either way.On a boot where it fails, it fails on every retry (tested 5x), even with a full peripheral reset (RCC AHB6 reset + reinit) between each attempt — card info (BlockNbr etc.) verified correct every time, so it's not stale driver/card state.Read never fails, on the same bad boot, same clock, same peripheral.Register data — same board/config, two different cold bootsPassing boot:DCOUNT@DataEnd: 0x0, STA@DataEnd: 0x100 → RESULT: PASSFailing boot (5 attempts, each after full reinit):Attempt 0: DCOUNT@Err=0x098, STA@Err=0x1010, ErrCode=0x10(TXUNDERR)→0x14 (+CMD timeout on stop)Attem
In order to meet the USB suspend mode maximum current requirement I am using Stop mode once the suspend has taken effect. I have no difficulties getting it to go into Stop and the current consumption falls to well below 2.5mA, as required. My problem is that it won’t wake up following either a host-induced wakeup, or due to a remote wakeup that I have set up on my product’s buttons.Host-induced wakeup does cause the current consumption to increase, but it doesn’t get going again. Remote wakeup has no effect whatsoever.If I replace my HAL_PWR_EnterSTOPMode call with a simple __WFI() it wakes up from both without any difficulties, so I know the EXTIs are all set up correctly etc.So what’s wrong? I actually know the answer (after days of head-scratching) and will post it as an answer to my own question so that this is documented and will hopefully save others similar frustration. Although I’m using a C0 with USBX, I imagine this applies to all MCUs.
When I was using STM32N6, I tried to generate USART with STM32CubeMx, but when you enable DCache the DMA did not properly handle USART-RX data.The USART startup code is as follows static FIXED_DMA_USER_RAM uint8_t s_ulDebugUsartRxDmaFifo[16]; bool DevUsartInit(void) { bool ret = false; //HAL_UART_DeInit(&huart1); //MX_USART1_UART_Init(); memset(s_ulDebugUsartRxDmaFifo, 0, sizeof(s_ulDebugUsartRxDmaFifo)); if (HAL_UARTEx_ReceiveToIdle_DMA(&huart1, s_ulDebugUsartRxDmaFifo, sizeof(s_ulDebugUsartRxDmaFifo)) == HAL_OK) { ret = true; } __DSB(); return ret;}/** * @brief The application entry point. * @retval int */int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MPU Configuration--------------------------------------------------------*/ MPU_Config(); /* Enable the CPU Cache */ /* Enable I-Cache---------------------------------------------------------*/ SCB_EnableICache(); /* Enable D-Cache--------------------------------------
I am currently working to redesign one of our products to include Bluetooth communication for remote control. For this, I am targetting the STM32WBA23.Given that the PCB is mounted inside a solid, cast-aluminium housing, I will need to put the antenna on a seperate board and connect it with a cable to the main PCB.My question now is: Where do I put the tuning components? Do I place these on the main PCB, close to the controller, or do I put them on the antenna board?Or maybe it doesn't actually matter. I would appreciate any comments and directions by those more RF savvy than me.
The "Discover" button on the STM32CubeProgrammer fails to connect to my my STM32H56x (STM32H562VGT6) in the Closed state (0x72). The instructions I followed for enabling password security are in the "How to enable RDP-like product state flash protection in STM32H5 microcontrollers" post. No errors came up in following these steps. To summarize my steps:1. Installed STM32CubeProgrammer and STM32TrustedPackage Creator2. Generated OBKey and password.bin files from DA_ConfigWithPassword.xml 3. Set PRODUCT_STATE to Provisioning (0x17) and executed "Start Provisioning" with the generated .obk file4. Set PRODUCT_STATE to Closed (0x72) The issue arises when going to perform a regression. In the Debug Authentication window, clicking the "Discover" button does not prompt me to select a password file and throws an error that states "Failed to communicate with target !". The Debug Authentication sequence does not start. The same error occurs whether or not my ST-Link
The product page and datasheet only mention BLE Core 6.0 but don't call out channel sounding support explicitly like other BLE features. Is it actually supported?
Hello,I'm prototyping a custom board equipped with a WBA23KE and developing its software.Since this custom board doesn't have a 32kHz crystal, I modified the code based on BLE_p2pServer, referencing the description on the following website.LSEクリスタルなしでSTM32WBA上でRFアプリケーションを動かす方法 - stm32mcuHowever, the HAL_RTC_Init() function on line 615 of the attached main.c fails and goes into ErrorHandler().How should I modify the code?
ContextI'm finalizing a 4-layer FR4 board with an STM32WBA62CIU6 (2.4 GHz BLE), and I'm not 100% sure about the best way to make the Bluetooth matching/tuning easier.I first built a board with a PCB antenna identical to ST's (following the exact shape shown in application note AN5129) and a 5-element Pi network, as shown in one of the circuits in ST's application note AN5948:1I then used a VNA, connecting at the pad where the STM32 would sit, and tuned the Pi network components so that the Pi + antenna would present an impedance of 30 + j2.5 Ω — the output impedance of my chip at 10 dBm (the power I want to use):2My tuning workflow was: measure with the VNA → export the result → load it into the SimSmith "Load" → place components in the simulator to get a sense of which values to use in real life. However, when I placed the real components, the result was quite different from the simulator — so different that I ended up unable to complete the tuning.Current setup / measurementsSta
Hello,the observed bug is the following.We are using STM32L433RC and generating some code from CubeMX using low-level libraries. We are currently evaluating precision of the hardware clock compensation, when using internal MSI RC oscillator with external crystal of 32.768kHz connected, and PLL mode (in order to do the compensation) enabled.The sequence generated by the CubeMX is the following:void SystemClock_Config(void) { LL_FLASH_SetLatency(LL_FLASH_LATENCY_4); if(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_4) { Error_Handler(); } LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1); LL_RCC_MSI_Enable(); /* Wait till MSI is ready */ while(LL_RCC_MSI_IsReady() != 1) { } LL_RCC_MSI_EnablePLLMode(); LL_RCC_MSI_EnableRangeSelection(); LL_RCC_MSI_SetRange(LL_RCC_MSIRANGE_11); LL_RCC_MSI_SetCalibTrimming(0); LL_PWR_EnableBkUpAccess(); LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_LOW); LL_RCC_LSE_Enable(); /* Wait till LSE is ready */ while(L
Hi,How does the 3 wire SPI mode work in ISM330DLC? How is the physical connection for this mode? Are there any changes to be made in register configuration other than enabling SIM bit in register 12h?Regards,KJ
Hello,I am currently working on an AI project on the STM32N6570-DK using STM32Cube AI Studio and STM32CubeIDE.I followed the official STM32N6 AI deployment tutorial and generated both projects:FSBL AppliThe AI files generated by STM32Cube AI Studio were copied into the project and the project builds successfully without errors.The application is downloaded correctly to the board and the verification step is successful. However, when the debugger tries to start the execution, the target immediately stops responding.The console shows:Download verified successfullyError in executing 'cont' commandTarget is not responding, retrying...I also get a message indicating a break at an address outside of the application code.At this point I am not sure if:the application is entering a HardFault very early during startup, there is an issue with the FSBL configuration, there is a problem with the linker script or the AI memory sections, or if I missed a configuration step in the STM32N6 deployment
Missing Makefile export capability. Missing option to export only minimum necessary files. Unfortunately this leads to bloated projects. The previous version of STM32CubeMX have these features. Clean and self-contain and not bloated project was the main reason to use STM32 in our company.
Hi,I have a bootloader (0x08000000) jumping to an application (0x0800C000) on an STM32H503CB, everything at 32 MHz HSI, VOS3. The bootloader runs at 1WS flash latency, disables the ICACHE and jumps. About 1 boot in 5, the app dies in the NMI handler right after the jump: FLASH_ECCDETR shows a double ECC error on the very flash line being fetched, at a different address every time. The flash content is intact when read back over SWD - the read just fails transiently. It also depends on the chip: 2 of my 3 boards reproduce it, one never does.If I restore the latency to 3WS (the reset value) in the bootloader just before jumping, the problem disappears completely (200+ reset campaigns, zero failure). My question: why is the H5 sensitive to flash wait states in this situation? 1WS at 32 MHz / VOS3 should be enough on paper, and the bootloader itself runs fine with it. Is there something specific about executing uncached from flash right after a bootloader handover that requires more margin
Hi.I'm trying a simple ping application with my board that contains the H743 microcontroller. I am following the instructions in Adam Berlinger's example. But I can't get ping. I connect my computer to my board via ethernet switch. My computer's IP is 192.168.2.5. But it can't reach to my board. When I try to send UDP packet, I can see the Ip adresses of target and destination(via WireShark software). But I can't see the "Hello UDP message!\n\r". IPs are manually setted. H7 board and computer connected via ethernet switch hub. I added a breakpoint to "void ETH_IRQHandler(void)". After the initial power-on, the system reaches the breakpoint twice even when there is no ping command on the Ethernet port. But when i send ping commands, nothing happens. I can reset LAN8742A PHY via GPIO. /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET); HAL_Delay(50); HAL_GPIO_WriteP
Hello ST Community,I am working with the STM32U535RET6 and need clarification on the interaction between the IWDG Window feature and Early Wake-up Interrupt (EWI).I tested the following configurations:1. Window enabled, EWI disabledThe Window feature works as expected:Early refresh → IWDG reset Late/no refresh → IWDG reset2. EWI enabled, Window disabledWhen only EWI is enabled, the EWI interrupt occurs when the counter reaches the configured EWIT value.In the ISR, the HAL code acknowledges the EWI by setting EWIC.According to RM0456, writing EWIC = 1 clears EWIF and also reloads the IWDG counter with RL[11:0].However, in my observation, the EWI ISR is called only once, and I do not observe the expected counter reload after the EWI acknowledgement.3. EWI and Window enabled togetherWhen both features are enabled, I observe different behavior.For example, with EWI configured for approximately 2 seconds, the EWI occurs repeatedly at approximately every 2 seconds. The IWDG counter appears t
Hello ST Community,We are currently developing a custom board using the STM32N657X0H3Q MCU with the internal SMPS configuration.We have assembled 5 prototype boards, and before applying power to any of the boards, we measured the resistance between the VDDCORE_0V8 rail and GND.We observed a relatively low resistance on all 5 boards, with different measured values:Board Measurement Point VDDCORE_0V8 to GNDBoard 1 TP16 / TP24 22.32 ΩBoard 2 TP16 / TP24 25.9 ΩBoard 3 TP16 / TP24 20.9 ΩBoard 4 TP16 / TP24 12.8 ΩBoard 5 TP16 / TP24 16.2 ΩImportant: None of the boards have been powered up yet.The VDDCORE rail is generated using the STM32N657X0H3Q internal SMPS, with an expected VDDCORE voltage of approximately 0.8 V. The VDDCORE pins are connected according to our schematic, and the internal SMPS pins (VDDSMPS, VLXSMPS, VFBSMPS and VSSSMPS) are also connected as shown in the attached schematic.We are concerned about the low resistance readings, particularl
I have some custom STM32G43KB boards that don’t always behave. The firmware starts with the UART in receive mode, 9600 baud, 9B (8 + parity) 2 stop bits, TX and RX inverted to interface with the host device. The device UART line idles low (ground) as expected for inverted logic, and sends a 17-byte poll message that my board will reply to. Out of 25 boards that have been programmed with the same firmware, about 60 percent of them work, the other 40% show a frame error and do not decode the first byte of the message properly. I have been using alternate function push pull for PA9 configuration, with a 10K pull down resistor to create the idle low condition when in receive mode. Some boards work, some don’t. The same boards, when programmed with other versions of the firmware for interface to different external systems are working fine with AF Push/Pull, 8N1, not inverted, baud rates of 100K, 115.2K and 250K with no issues. When configured for 9600 baud 8E2 inverted, some of the b
I have an STM32L4R on a custom PCB. I am able to flash firmware using CubeProgrammer/CubeIDE to it via an ST-LINK SWD connection as well as a DFU Bootloader via a USB D connector. I have a makeshift connection between the USB D connector to a USB C cable to my laptop in order to flash it using USB_DM, USB_DP, and VBUS wires between the D and C connectors. When the PCB is powered, the ST-LINK is connected to my target MCU and my laptop, and my PCB is connected to my device, my laptop is able to recognize the ST-LINK as a VCP and my target MCU as an "STM32 BOOTLOADER", which allows it to be flashed. The ST-LINK connection is critical in the target MCU being recognized by my laptop. I have written CDC initialization code in order to enumerate my target MCU as a VCP and transmit data to my laptop, however, I am having trouble with that...My code works on the NUCLEO that I have for the STM32L4R. I am also able to step through initialization all the way to the CDC_Transmit() function inside
So I left my program running overnight, and when I check it this morning, the debug output had stopped. Thankfully, the IDE was still running, and it actually caught the hard fault, and even better, the call stack was intact. Here’s what I saw:Call stack showing nested interrupts while running ThreadXSo the IP thread was running, it was waiting on an event flag, another small handler popped, then the Ethernet IRQ popped, and before it could finish execution, the CAN handler popped. The CAN handler checks a queue (with TX_NO_WAIT) for items to transmit, but just before it started executing _tx_queue_receive(), a HardFault occurred.This is the view from inside _txe_queue_receive():_txe_queue_receive() contextAnd this is the view from inside _tx_queue_receive():_tx_queue_receive() contextNow, I’m not sure if perhaps the program counter hadn’t gotten far enough to populate/adjust the stack so that the local variables look correct, but I can see that _txe_queue_receive() definitely had v
Hi, I am using the STM32 NUCLEO-H563ZI board and testing the NetX Duo UDP Echo Server example provided by STM32. Setup: - STM32 NUCLEO-H563ZI- NetX Duo UDP Echo Server example- Direct Ethernet LAN cable connection between PC and board- Static IP configured on both PC and STM32 Issue:UDP communication is not working. When I try to ping the STM32 IP address from the PC, I get "Destination Host Unreachable".Since I am using the official UDP Echo Server example, I expected the board to be reachable and respond to UDP packets.Has anyone successfully tested this example on the NUCLEO-H563ZI? Are there any additional Ethernet, PHY, or NetX Duo configurations that need to be checked? Any suggestions would be appreciated.
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.