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
Hi,I have been using OpenAMP on an STM32H755ZIT MCU recently but ran into an issue where the mcu would go into hard fault caused by a bus fault somewhere in virtio code. The issue occurs only after a while, after dozens of messages have successfully been passed in both directions.I haven't been able to exactly pinpoint the violation because i get an IMPRECISERR bus error and have not been able to disable write buffering (I tried with an MPU config which failed and the config register value from https://community.st.com/t5/stm32-mcus/how-to-debug-a-hardfault-on-an-arm-cortex-m-stm32/ta-p/672235, but that doesn't seem to exist on this mcu). I did seem to get the rough area of the fault with the stack trace which pointed me to `uint16_t vq_ring_add_buffer`. Because of the disassembly view and register state before the fault I think the error relates to a str in the 0x20010000-0x2001ffff memory region which is the DTCM memory region of the CM7 core according to the datasheet. This doe
Hello, I'm posting a new message because the previous one was not answered with successful connection. The problem is that when MCU is populated on my board with Read-Our Protection enabled, it is not possible to connect STM32CubeProgrammer v.2.21.0 to that MCU, it becomes a brick.This option was available in the version 2.0.0. that doesn't work on Windows 11.How can be done two step connection: 1) full erase and 2) connection ? Thanks,Alex
Hello ST Team,I am working with the B-G431B-ESC1 board using STM32G431CBU6 and the STM32 Motor Control SDK.On the evaluation board, Motor Pilot communicates with the target MCU through the on-board ST-LINK (STM32F103) using SWD and VCP.My question is:Is it possible to use STM Motor Pilot to communicate directly over UART with the STM32G431 (for example via an external USB-to-TTL adapter), without using the on-board or external ST-LINK?
Hello everyone,I’m currently facing a blocking issue with SWD programming on an STM32U575VIT6Q placed on a custom PCB.Until today everything worked correctly: I use a CLI-based flashing procedure that programs a set of binary files (around a dozen) using commands like the following:%CLI_EXEC% -vb %VERBOSITY% -c port=swd dLPM -w "filename" %address% -vThe entire flashing sequence has always completed successfully, but during the last programming cycle I suddenly received the following error:Error: Cannot connect to access port 0! If you are trying to connect to a device with TrustZone enabled please try to connect with HotPlug mode. If you are trying to connect to H5 device and your target is already locked with password or certificate, please open your device using Debug Authentication.Since that moment, I have been completely unable to connect to the MCU with my ST-Link V2 in any mode.I tried:NormalUnder ResetHot PlugPower-downUnfortunately, all attempts fail with the same error.A few
STMicroelectronics Support Team,I am currently working on a project using the ST67W611M1 Wi-Fi module and I would like to request your technical support regarding a platform migration.I have successfully validated the ST67W611M1 using the STM32U575ZI-Q Nucleo board, running the test and reference applications provided in X-CUBE-ST67W61.With this setup, the NCP firmware, AT command interface, and Wi-Fi connectivity are all working as expected.My objective is now to migrate this implementation from the STM32U575ZI-Q (STM32U5 series) to an STM32G0B1RE, which will be the target MCU for the final product.Given the architectural differences between the STM32U5 and STM32G0 families (clock tree, peripherals, HAL configuration, and BSP adaptations), I would appreciate your guidance on the following points:Recommended procedure or reference examples for migrating the ST67W611M1 host firmware from STM32U5 to STM32G0Any known limitations or constraints when using the ST67W611M1 with the STM32G0 se
Hi,I need to implement the following behavior on a STM32WB55.Upon a command, device must advertise in 2 different modes:Just works. No bonding, connection is accepted without any authentication requirements. All characteristics can be read and written.Legacy pincode. No bonding, a fixed pincode shall be required by the host at every connection.To acheive that, I followed scrupulously the ST wiki & configured the following:aci_gap_set_io_capabilityaci_gap_set_authentication_requirementcharacteristic security permissionsI am able to have either one of the 2 scenarii, but I cannot switch dynamically from one another.The key difference resides in the security permission of each characteristic.With ATTR_PERMISSION_NONE, characteristics can be read & written without authentication (just works mode)With ATTR_PERMISSION_AUTHEN_READ | ATTR_PERMISSION_AUTHEN_WRITE, pincode is properly required at each connection.Unfortunately, I cannot switch dynamically between the 2.I tried the fo
Hi, in STM32H7 dual core, i have an example of data sharing between the core using ring buffer method, here when caches are enabled, the data sharing is not happening what will be the reason. when caches enabling lines are disabled data sharing is happening. ring buffer is placed in D3 SRAM regards. Srinath
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code and a linker script content. Please read this post: How to insert source code. Hello,I'm trying to use an LCD with ILI9341 chip. I've connected all pins to the LCD and I've set in CubeMX the FMC like this: But when I tried to run the program, all calls from main.c is calling MX_FMC_Init(); then is going in this function: HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, const FMC_NORSRAM_InitTypeDef *Init) { .. __FMC_NORSRAM_DISABLE(Device, Init->NSBank); .. And soon this macro is executed function MemManage_Handler() is called: /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { /* USER CODE BEGIN MemoryManagement_IRQn 0 */ SerialPrint("MemManager_Handler fault.."); /* USER CODE END MemoryManagement_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ /* U
MCU: STM32H723VET6ADC: ADC1 / ADC2 / ADC3 (12-bit, single-ended)VREF: 3.3 VApplication: Digital Multi meter (DC / AC voltage measurement) Problem DescriptionIn my DMM hardware design, the Analog frontend applies a mid-scale level shift (VREF/2 = 1.65 V) before the ADC input.This is done intentionally to support bipolar AC measurements using a single-ended ADC: Input signal → amplifier/divider → +1.65V offset → ADC (0–3.3V)As expected:0 V input → ADC reads ~1.65 VPositive/negative AC swings are in around mid-scaleHowever, for DC voltage measurement, I want the behaviour to be:No input connected → display 0.000 VApplied DC voltage → display the same voltageMid-scale offset should NOT appear in the final DC readingObserved IssueIf the mid-scale offset is not removed after ADC conversion, the firmware reports:~3 V on 6 V range~30 V on 60 V range~300 V on 600 V rangeeven when no voltage is applied.This is because the ADC correctly reads ~1.65 V, but that bias is still presen
Hello,Today I opened VS Code to work on my project and noticed the update was available. That's awesome, but typically we're forced to freeze our toolchain once we release the code to product, to avoid the risk that updates have unwanted side effects. Right now I've been evaluating whether we can use VS Code, or if we better stay with tried and true CubeIDE.It's fine for hobbyists to always update to the bleeding edge, but what about anyone using STM32 micro for application in automotive, medical, and defense application? It's a requirement to know that every possible change is tested before releasing code to the product, including toolchain and IDE updates. We can't know if there's a bug on day 0 of the release, of course!Can we understand if the ability to freeze version is on the development roadmap of the VS code plugin? If not ever, any safety critical application should probably avoid it, don't you think?Thanks.
Hello,I apologise in advance if my post lacks any important information, I am very new to working with these sorts of boards and have limited experience with motor control in general. I am using a B-G431-ESC1 to drive a 24V hoverboard motor. I have profiled the motor and uploaded the firmware to it and it runs just fine on the motor pilot with FOC speed control. I had also used the potentiometer on the ESC to change the speed without issue.I wanted to switch to using PWM signals to control the speed of the motor, and reuploaded the firmware to the board with the potentiometer option disabled and the Electronic Speed Control option enabled for the stage configuration. Using an ESP32 I generate a 490Hz PWM signal and first send 1060us pulses to the ESC (verified with an oscilloscope). I then send a new PWM to the ESC where the signal is high for 1850us. My expectation was that the initial 1060us PWM would arm the driver, and then the 1850us PWM would command the ESC to dri
The latest version of STM32CubeIDE for VSCode can have its performance affected by network conditions when working online. If the network is disconnected, the entire set of plugins may become unresponsive for a long time (ten or so minutes) before switching to offline mode. The whole plugin suite should be designed to primarily work offline, performing occasional network tasks in the background intermittently. 最新版的stm32cubeide for vscode ,在联网工作的时候,性能会被网络状态影响。如果发生了断网,则整个插件组会假死很久(十几分钟),才能切换到离线工作状态。整个插件组应该设计成离线工作为主,在背景状态、间歇性进行一些联网工作。
I have a custom board with an STM32G051. The STM32 is a SPI receive only device. PA1 is SCLK, PA2 is MOSI, PB0 is nSS (which is hardware controlled). The beginnings of the project where created with CubeMX so the clocks should all be set correctly.The SPI transactions are simple 12-bit data with an active low chip select. Note that the MISO signal is not connected on the board. The master device does not read any data from the STM32G051.The SPI peripheral is setup as below: hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_SLAVE; hspi1.Init.Direction = SPI_DIRECTION_2LINES_RXONLY; hspi1.Init.DataSize = SPI_DATASIZE_12BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; hspi1.Init.NSS = SPI_NSS_HARD_INPUT; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 7; hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASI
Hi I cannot ask a a question on x-cube-cellular because there is no lable for it. Also the ST87M01 4G NB-iot modem has no label. So i cannot ask a question about it. Arggg, Regards, Hans.
i have written a driver code to run 4 wire resistive touch panel. I use only 1 adc and change its adc channel during runtime. Like i set X+ and Y+ as output high by default and X- and Y- set as low by default and set X- and y- pull down to make ADC read 0 when not pressed. Basically, I have few functions that change the configuration such as X+ and X- to output, set Y+ to analog and Y- to input to set Y+ and Y- as an output, set X+ to analog and X- to input. read x voltage in previous case and read y voltage in later case. ADC is only one to switch the configuration during runtime and its resolution is 16 bit with 810.5 cycles sampling time. ISSUES: 1- gpio output 3.3v and ground but its adc measuring voltage is from (0.7 to 1.15 for x axis) and (0.55 to 2.8 for y axis) 2- if i move the wires then its voltage ranges change. Is this issue related with the firmware developed for running the 4-wire touch panel or hardware issue? I have connected decoupling capacit
We have used LSM6DSOXTR and IIS2MDCTR for our boards and we require any kind of certification test reports or certifications if applicaple. Where can I find them.
The ST87M01 NBIOT module has been announced but is only going to large scale manufacturers at present as samples. Does anyone know roughly how long it’s likely to be before it would be available to us smaller players?
..
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code and a linker script content. Please read this post: How to insert source code. I have a STM32L433RCT3 and I'm exploring using the USART wakeup feature from STOP1 on RXNE. To improve the wakeup time and not miss any data, I clock the USART directly from the HSI and I configured the wakeup clock to be the HSI. I'm wondering if someone could confirm this is a safe thing to do at 115200 baudrate? I'd rather not use the USART's UCESM: USART Clock Enable in Stop mode bit to keep the clock running in STOP1 mode (significantly more sleep current).From what I understand, the HSI takes a maximum of 6.2us to start up & stabilize? (Section 6.3.8 of Datasheet). Do you add the startup time (1.2us) and the stabilize time (5us) or do I just take the stabilize time? At 115200 baudrate, there is a bit coming every 8.68us. Theoretically, do I ha
Hi, I'm looking for the complete manual of ST87M01, including the list of AT command, as refered in UM3382EVKITST87M01-1 (https://www.st.com/resource/en/user_manual/um3382-evkitst87m011-stmicroelectronics.pdf) ressource file. thanks !
I’m working on a project using STM32H7 (Cortex-M7 core) with eMMC and Azure RTOS FileX to manage file systems.The buffer is allocated as:ALIGN_32BYTES (uint32_t fx_mmc_media_memory[FX_STM32_MMC_DEFAULT_SECTOR_SIZE / sizeof(uint32_t)]);During initialization, I call:fx_system_initialize();fx_media_open(&gst_mmc_disk, "eMMC", fx_stm32_mmc_driver, ...);However, the system crashes with a HardFault inside: SCB_InvalidateDCache_by_Addr()which is called from: fx_media_open() ->fx_stm32_mmc_driver() ->mmc_read_data() ->invalidate_cache_by_addr() CopyEdit
Hi,I'm having an issue with the WBA6_LinkLayer_BLE_Basic_lib.a library on zephyr.The library is found in zephyrproject/modules/hal/stm32/zephyr/blobs/stm32wba/lib directory in zephyr 4.2 (tag v4.2.0 in https://github.com/zephyrproject-rtos/zephyr/tags).The issue is with function llhwc_conn_evnt_done in object llhwc.o inside the library:On occasions, this function generates a Usage Fault (unaligned memory access) when run on nucleo_wba65ri board.The offending instruction is 'ldrh r3, [r2, #0]' at address 0x0000359c (function assembly code below).The registers at the time of the fault are:R0: 0x00008F10R1: 0x00008208R2: 0x4802FFFFR3: 0x0000FFFFR4: 0x2000CBB0R5: 0x4802000CR6: 0x0000FFFFR7: 0x48020000R8: 0x2000DD34R9: 0x0000923CR10: 0x20005A48R11: 0x48028238R12: 0x00000000R13: 0x20018318R14: 0x0803C65CR15: 0x0803D070PSP: 0x200184A8R2 holds the address 0x4802FFFF, which causes the hard fault.My nucleo_wba65ri is running a central BLE application, sending data to another
Hello ST Community,I'm working on an STM32H753VIT6 project and need to upgrade FreeRTOS from v10.3.1 to v11.2.0 due to cybersecurity requirements. I've encountered several integration challenges that I'd like to share and seek guidance on.BackgroundCurrent Setup:Working on an STM32H753VIT6 microcontrollerFreeRTOS v10.3.1 with CMSIS-RTOS v2 wrapper automatically generated using CubeMX which works seamlessly out of the boxTarget:Using the newest FreeRTOS v11.2.0 from official repository (preferably without the CMSIS wrapper so future upgrading will be easier): https://github.com/FreeRTOS/FreeRTOS-Kernel/releases/tag/V11.2.0The process:So I followed some guides from the FreeRTOS forums and the ST community forums.Like this one: https://community.st.com/t5/stm32cubemx-mcus/is-there-a-way-to-disable-the-automatic-default-task-creation-when-c-2560/td-p/256903where I've been told there is no other way of upgrading (at least for my STM32H753VIT6) than deactivating the FreeRTOS from within the
Hello ST Community,I am encountering an issue with X-CUBE-AI v10.2.0 (embedded in STM32CubeMX 6.14.0) when trying to deploy a PyTorch model with a custom layer to an STM32H7.I have enabled "Custom layer support" in the X-CUBE-AI settings. I am required to provide a JSON configuration file to map my custom ONNX node to my C implementation. However, I am unable to pass the Analyze step due to a JSON schema validation error.Environment:STM32CubeMX: 6.14.0X-CUBE-AI: 10.2.0Target: STM32H7Backend: ST Edge AI Core v2.2.0-20266My Goal: I need to map the following custom operator to a C function prefix:Operator Name: SpectralConvDomain: MyCustomImplementation Prefix: spectral_convHeader: custom_spectral_conv.hThe Issue: I keep receiving the error E010(InvalidCustomLayerImplementation) from stedgeai.exe. It appears the JSON format I am using is incorrect for this specific version of the core.Attempts:1. Using the "prefix" key (Standard Key-Value format):JSON { "MyCustom::SpectralConv": {
Hi All,I am quite new to bootloaders and I wanted to understand best approach to upgrade the firmware. I will get the firmware from a 4g module and store it in external flash. We are based on STM32U5A5 mcu and it will always use the application present in the internal flash. External flash will have two copies/slots. Current one for rollback and new downloaded one.I am thinking about the following approach. I was wondering if there is anything build-in to do this? I suppose almost everybody must be using the same approach.Is there any stm32 bootloader that can do the same? If custom bootloader is needed is there any template I can follow?Thanks,Sandeep
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.