Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I want to cancel my attendance to one of the online workshops as I won't be able to attend, by I can't find any contact information or procedure to do it.
In AN2606 Rev. 70, Chap 90 Device-dependent bootloader parameters table 226 the RAM area accessible from the bootloader seem inconsistant: - C031xx has a negative RAM range, excluding RAM at bottom and top of full RAM range as accessible from the bootloader- C01xx RAM range declares all RAM as accessible - C031xx excludes RAM at bottom and top of available RAM Please confirm these values. Thanks!
I need to use an external loader via single SPI for a project. Despite performing all the necessary steps. I'm getting an error through CubeProgrammmer./* Entry Point */ ENTRY(Init) /* Generate 2 segment for Loader code and device info */ PHDRS {Loader PT_LOAD ; SgInfo PT_LOAD ; } /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0x200; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ /* Specify the memory areas */ MEMORY { RAM (xrw) : ORIGIN = 0x20000004, LENGTH = 112K-4 } /* Define output sections */ SECTIONS { /* The startup code goes first into FLASH */ .isr_vector : { . = . + 0x1FC; . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); } >RAM :Loader .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM .ARM : { __exidx_start = .; *(.ARM.exidx*) __exidx_end = .;
Hello, In the reference manual rm0481 (stm32h562) in chapters 7.11.38 and 7.11.51 it is stated that EDATAx_STRT Bits do not have any hardware effect. Can I assume that the corresponding bits in FLASH_EDATAxR_CUR are set from option bits only? In that case what is purpose of these bits in FLASH_EDATAxR_PRG? Are rhey also set from option bytes? What about the EDATAx_EN bit in FLASH_EDATAxR_PRG? Here the documentation is NOT stating that there is NO hardware effect. Is this correct? If yes, where does the actual setting of EDATAx_EN in FLASH_EDATAxR_CUR come from? By the way in Table 51 there is an DATA_EN1 bit in FLASH_EDATA2R option bytes. May I assume that this is a documentation error and it should in fact be DATA_EN2 Thank you
Hi ST Community, I am working on STM32H563 with external SDRAM connected through FMC. I am trying to use: heap in SDRAM global variables in SDRAM execution/data access from SDRAM DCACHE enabled Current SDRAM mapping: 0xC0000000 I noticed that in STM32F7/H7 examples there is support for: HAL_REMAPMEMORY_FMC_SDRAM() which remaps FMC SDRAM memory regions internally. I found this in STM32F7 HAL: __HAL_SYSCFG_REMAPMEMORY_FMC_SDRAM() But on STM32H563 I cannot find any equivalent remap mechanism or SYSCFG macro. My questions are: Is there any equivalent SDRAM remap functionality available on STM32H563 / STM32H5? Is SDRAM fixed permanently at 0xC0000000 on STM32H5 architecture? Does STM32H5 treat SDRAM at 0xC0000000 differently regarding: DCACHE burst accesses MPU memory attributes speculative accesses Are there any special MPU/DCACHE recommendations for using: malloc()/calloc() heap in SDRAM .bss/.data sections in SDRAM execution from SDRAM Current observations: SDRAM works correct
Hi,I spent a few days trying to make Ux_Device_HID and Ux_Device_HID_Standalone to work on Ubuntu with latest versions of CubeMX and Cube IDE (STM32CubeIDE Version: 2.1.1, STM32CubeMX 6.17.0)The only way I managed Ux_Device_HID to work on NUCLEO-H723ZG was by the following steps:start MXselect example for nucleo board and start project directly in CubeIDE (not doing anything in CubeMX)compile project in CubeIDE without any changesflash to the board and it worksHowever, if I want to open it in CubeMX and generate code even without any changes - the resulting code does not work at all. I used git to do diff and changes are all over..Of course I could do changes in CubeIDE directly without nice MX interface, but I kind of like it simple ))Anyway, could someone form ST explain why *.ioc file from example cannot be used with Cube MX to generate a working code?
C5 implements a way to de-activate selected boot devices. This will allow to use the system bootloader on custom board were some activity on pins used by the bootloader but not used for the bootloader would inhibit use of the bootloader. This feature has been requested before and is very welcome. However neither in RM0522 nor in AN2606 I find the explanation for the fifferent bits. Did I miss something?
Hi, I'm using the STM32WBA54KG microcontroller to comunicate by BLE. In STM32CubeMX (v6.13.0), I have actived the STM32_WPAN packet and the configuration "USE_TEMPERATURE_BASED_RADIO_CALIBRATION" is "YES".I need to read the Vcore channel to know if the battery is low. How can I do it? Thanks.
Hello all,I'm working on an embedded project based on an STM32F030K6T6 microcontroller.The MCU is connected to an Adafruit TFT display with an integrated resistive touchscreen. The display is driven via SPI using the ILI9341 controller, while the touchscreen is interfaced using four wires (X+, X−, Y+, Y−).The resistive touchscreen is read by dynamically configuring the GPIO pins and performing ADC measurements to retrieve raw X and Y coordinates. These raw values are then calibrated and mapped into screen coordinates to detect user interaction with the UI.The graphical interface consists of four blocks:- RELAY_1_ON- RELAY_2_ON- RELAY_3_ON- RELAY_4_ONEach block behaves like a button. When the user touches a block:- the corresponding GPIO is set HIGH to drive a MOSFET connected to a relay.When the same block is touched again:- the GPIO is set LOW, turning the relay OFF.To handle touch interaction correctly, a simple state machine is implemented to detect press and release events, ensurin
I am devoloping a low-power motion detector device using the STM32L071 mcu.The PIR sensor wakes up the system through wake-up pin, and after completing the RF packet transmission, the system goes back to sleep. In other words, I have a system that continuously switches between standby and run modes.How should I implement the watchdog in such a system ?I don't want the watchdog to keep counting while the MCU is in standby mode. I only it to run during run mode.My code like this (bare metal): int main(void) { /* USER CODE BEGIN 1 */ config_getresetflags(); /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ ws_register_sensor_driver(&ws_door_driver); ws_init_mx(); ws_wkp_src(); ws_init_se
Hello,In this file, the line:USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_XACTPOS_Pos;wrongly alters bits 1 to 3 of register HCSPLTThat can be fixed simply by removing this line, since middle payload is encoded by bits 00 in the XACTPOS field.
Hello, I purchased an STLINK-V3PWR from Mouser. When I tried to use it, STM32CubeIDE 2.1.1 suggested updating the firmware. This failed, and the STLINK-V3PWR appears to be unusable (bricked). What can I do? Return the device for a refund/replacement? Or is there a way to re-flash the firmware using an STLINK-V3SET? If it is possible to restore the firmware by re-flashing it, where can I find the correct firmware? Kind regards, Jack.
Dear Team, Currently we are seeing part below in stock, Can we know if the parts were also assembled in China. Can you please check and confirm on the same. We are planning to procure 250# for production purpose. MPN: STM32H533CET6 (or) STM32H533CET7Source: STMicroelectronics
Dear Team, We are currently using STM32H523CET6 in our designs. Can you please let us know if there any one is to one non- chinese alternative for the same. Please provide your support on this by treating this as critical, because we are holding our production.NOTE:Country of Origin/ Country of assembly/ Country of Manufacturing is NOT CHINA.
Hi !I've using TouchGFX Designer for a while, only using Simulator project (which Board setting is PC) for sfx evaluation and learning. And I wanna try to flash my previous project running on a real microcontroller board like F429 discovery board.Here's my question: How to migrate my previous PC Simulator project to new CubeMX project based on real board project?I tried to find related settings in TouchGFX but failed. Is it the only way to migrate my previous ui into new project by doing all the steps in the new TouchGFX project?Thanks !
Hi ST Support Team, #1 Demo provided by ST for STM32H7B3I-EVAL board is working on Windows Simulator. But it is not working for Target (STM32H7B3I-EVAL board.) #2 Does code generated by TouchGFX designer will run on Target board without any code changes on target (STM32H7B3I-EVAL).Please help me to resolve this issue. Regards,Tejas
Hi everyone,I am working on an STM32H523 MCU and I have recently observed some strange behavior regarding the PB14 and PC9 pins. I have the following setup:PB14 is configured as input (I use this for the TIM2_CH2 alternate function, but this does not affect the issue) and is externally pulled up using a 10kOhm resistor.The PC9 pin is configured as output.When the PC9 pin is unset, the PB14 is 3.3V, as expected. But when setting the PC9 pin, the voltage on PB14 drops to only 1.13V. These pins are otherwise not connected, so 2 seemingly unrelated pins seem to have some dependency within the stm32h523 chip. Another test was performed by configuring PB14 as output (without pullup). Now, when PC9 is unset and PB14 is set, the voltage on PB14 is 3.30V. When setting PC9, the PB14 voltage drops to 3.26V, which seems related... To make sure it is not caused by our own hardware, we did the same test on a STM32H5 Nucleo-144 board (MB1404C), this development b
I am using STM32CubeMX 6.16.1 to configure a project for STM32F415.I use the FATFS on SD card and set it up as:According to FATFS documentation (https://elm-chan.org/fsw/ff/doc/config.html#lfn_unicode), the data type TCHAR should translate to char in this case. However, CubeMX generates Middlewares/Third_Party/FatFs/src/ff.h in which TCHAR is defined as WCHAR, i.e. a 16-bit type:The _STRF_ENCODE is correctly defined as 3 in FATFS/Target/ffconf.h, which corresponds to UTF-8:Is this a bug? How can I ensure that UTF-8 uses the 8-bit data type correctly?
Hi everyone, I’m designing my first custom PCB for an underwater ROV project (Leak Detection + ESC Control + Jetson Interface) and I would really appreciate feedback before moving closer to manufacturing. A few months ago I shared the schematic review here, and after applying suggestions I completed the PCB routing stage.Now I would like to ask for a review of the PCB layout itself, especially regarding signal integrity, grounding, routing quality, and overall reliability. The board is designed around an STM32G431CB and acts as a sensor/control board communicating with a Jetson Orin Nano and a separate Power Distribution Board (PDB). Main Functions Reading 4 leak sensors Generating ESC PWM outputs Communicating with Jetson Orin Nano Processing leak sensor states and sending a digital LEAK_FAULT signal to the PDB Interfacing with: BNO08X IMU D300 depth sensor ESCs Leak sensors Board Layout Overview Bottom side: 4 leak sensor connectors Left and right sides: ESC connector
I recently bought a STM32F446 64 pin chip and wired it up. The following circuit is made: I've installed 0.1uF capacitors between two power pins, and two I've not (It's difficult to do so) it's consuming around 20 to 30 mA Pin 30 shows 1.132 volts (4.7uF cap is installed) voltage 3.298 v oscillator is working fine I tried bypassing the 15uH inductor as I thought that is too much, but neither way works The chip is perfectly soldered, checked for resistances multiple times Tried uploading code from both usb to ttl converter and STM programmer from Nucleo f072rb board all the wiring is correct according to me checked multiple times, but when I upload the code using arduino ide, I get this issue: Sketch uses 16576 bytes (3%) of program storage space. Maximum is 524288 bytes.Global variables use 1212 bytes (0%) of dynamic memory, leaving 129860 bytes for local variables. Maximum is 131072 bytes.NODE_F446RE not found. Please ensure the device is correctly connected.Faile
Hello, I am designing a USB-C power sink using the TCPP01-M12 and STM32G071CBT6 (UCPD peripheral). The connector is a Molex 2171790001 receptacle. I have two separate issues and would appreciate guidance on both. --- ISSUE 1: No power at all with Type-C to Type-C cable When I connect a USB-C to USB-C cable between my board and a USB-C charger, the board does not power on. However, when I use a Type-A to Type-C cable (from a USB-A charger), the board powers up fine. Hardware setup:- J1: Molex 2171790001 (CC1 on A5, CC2 on B5 — both routed)- IC1: TCPP01-M12 (CC1C and CC2C connected to J1; CC1 and CC2 connected to STM32 PA8/PB15)- IC2: STM32G071CBT6 (UCPD1_CC1 = PA8, UCPD1_CC2 = PB15)- TCPP01 VCC (pin 12) is driven by STM32 PB12 GPIO (TCPP01_PWR net)- TCPP01 DB/ (pin 10) is connected to STM32 PB11 GPIO- C1 and C2 (330 pF each) are now soldered on CC1c and CC2c lines to GND- R8 and R9 (0 Ω, intended to connect UCPD_DBCC1/PA9 and UCPD_DBCC2/PA10 to GND) are NOT yet soldered — so DBCC1 and D
I have a custom STM32H755IIK6 board where ADC1 and ADC2 are used as an I/Q receiver. The ADCs are configured in dual regular simultaneous direct mode, 12-bit, at 1.92 MSPS per channel.The board also includes a LAN8742A Ethernet PHY. The 50 MHz RMII reference clock trace is routed close to the ADC pins (ETH_REF_CLK on P2, ADC inputs on P3 and R3).Both STM32H755 and LAN8742A use separate 25 MHz crystals.ADC clock configuration:PLL2P = 30.719995 MHzDIVM2 = /5DIVN2 = x153DIVP2 = /25FRACN2 = 4915I observe a periodic spur pattern with peaks at:93.75 kHz280.31 kHz466.88 kHz653.44 kHz840.00 kHz Noise level is below approximately 14 codes p-p when applying a 0.9 V DC input from a signal generator. I am using an external 1.8 V reference.The spur frequencies shift when I change the sampling rate, but the amplitudes remain more or less the same.Initially I suspected the 50 MHz RMII clock because touching the 33 Ω series resistor on ETH_REF_CLK changes the spur waveform, making it resemble a 9
Environment:MCU: STM32WB09KE, Cortex-M0+Board: NUCLEO-WB09KEIDE: STM32CubeIDE 2.1.0STM32CubeIDE Build: 27993_20260219_1630 (UTC)STM32CubeMX Version: 6.17.0OS: Windows 11 HomeFirmware package: STM32Cube_FW_WB0_V1.4.0Example project used: BLE_DirectionFinding_Central_LocatorSetup:I am using the STM32WB09 Direction Finding example project on the NUCLEO-WB09KE board.The project is based on ST’s provided STM32CubeWB0 package and the NUCLEO-WB09KE board files available here: https://www.st.com/en/evaluation-tools/nucleo-wb09ke.html#cad-resources The goal is to use two GPIO pins as antenna-switching control signals for AoA direction finding:RADIO_ANTENNA_ID_0 -> PB0RADIO_ANTENNA_ID_1 -> PB1PB0 works correctly. When configured as RADIO_ANTENNA_ID_0, I can observe the expected switching signal on a Saleae logic analyzer. Screenshot provided here: https://imgur.com/a/uk8L8tq Not much here, but zooming in into each pulse shows rapid switching- you can trust me. PB1
Hi! I am working on a design that uses an SD card and an STM32U5 MCU. In trying to educate myself more thoroughly about SDIO bus design, I've come across LVS (low voltage signaling), which is part of the UHS-I spec and required for reaching SD speeds above 25MB/s. I've not designed for this before, and an interested in examples that demonstrate the level-shifting part of this. I'd be particularly interested in solutions that allow the MCU to run at 3.3V, rather than 1.8V, though it's possible that this is an unusual thing to want (I'm still fairly ignorant about this...but keen to learn!)I'm wondering, then, if there are any ST eval boards that demonstrate this in any form? I found this forum post that suggests a few solutions, but most rely on the MCU being run at 1.8V. (I am further aware of the notion that some MCU's have a VDDIO domain that allows the MCU to run at 3.3V but allow some peripheral to be run at a different/lower voltage. Unfortunately the U5 series uses this
Hello, I am working on an application that uses the SDMMC peripheral to read the contents alternating audio files every 150ms. The buffers i have to store the data are large enough to store the entire file in a single burst within RAM. The problem I am running into is that intermittently, the sound "loops" indicating a lockup on the sound subsytem. I've added a small timer in SysTick in order to quantify how long and often this lockup occurs as the logic is running in a lower priority interrupt. I find that the system locks up between 300ms-1200ms. When I listen for this audibly and stop the code, I find that the code is stuck in:if(BSP_SD_ReadBlocks_DMA((uint32_t*)buff, (uint32_t) (sector), count) == MSD_OK) { ReadStatus = 0; /* Wait that the reading process is completed or a timeout occurs */ timeout = HAL_GetTick(); while((ReadStatus == 0) && ((HAL_GetTick() - timeout) < SD_TIMEOUT)) { } /* in case of a timeout return error */ if (ReadStatus == 0) { res
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.