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,I am investigating a Flash programming issue on an STM32H7A/B device with 1 MB Flash (Device ID 0x480, Rev X). STM32CubeProgrammer v2.21.0 treats the internal Flash as a continuous range 0x08000000–0x080FFFFF.Adresses such as 0x08080000, 0x080C0000 and 0x080FFE00 are programmed successfully and code placed there executes correctly, even though these addresses appear to be outside the documented Bank1/Bank2 address ranges in RM0455 Table 15.However, the HAL/CMSIS headers define FLASH_BANK2_BASE as 0x08100000, so IS_FLASH_PROGRAM_ADDRESS_BANK1(0x08080000) returns true and HAL_FLASH_Program() uses CR1/SR1 for that address. Programming 0x08080000 this way results in ECC problems when the location is read back. Could you please clarify the correct Bank1/Bank2 mapping for the 1 MB STM32H7A/B devices, whether 0x08080000 should be programmed through CR1/SR1 or CR2/SR2, and whether this is a known HAL/CMSIS issue?This is currently blocking our bootloader/FUOTA implementation, so a quick c
Hi everyone,I am working on a dual-core project using the STM32H757Xi and running into an issue with STM32CubeMX regarding NVIC interrupt assignment for the Cortex-M4 core.Here is my setup and the problem I am facing: Microcontroller: STM32H757Xi Toolchain: STM32CubeIDE v1.19 Goal: Configure two Memory-to-Memory (M2M) DMA channels assigned to and running on the Cortex-M4 core. Issue details: In CubeMX (under System Core -> DMA), I created two M2M channels: DMA2 Stream 6 and DMA2 Stream 7. I also tested the exact same configuration using DMA1 Stream 6 and DMA1 Stream 7. In both cases, when I check the NVIC settings, the Interrupt Request (IRQ) checkboxes and priority settings for these streams are only active under NVIC1 (Cortex-M7). Under NVIC2 (Cortex-M4), the corresponding IRQ checkboxes are completely greyed out and disabled. Because CubeMX thinks these interrupts belong to NVIC1, it generates the DMA interrupt handlers in stm32h7xx_it.c for the M7 core context instead of
Hello, I have one of the new STM32C5A3ZG chips here.I am currently trying to configure Ethernet using CubeMX2. However, I am unable to configure the system clock to run above 100 MHz while simultaneously enabling Ethernet, as the Ethernet peripheral requires a 100 MHz clock. This is quite a significant loss of performance, considering the core is capable of running at 144 MHz. If I were to try to enable USB at the same time, it wouldn't work at all, as that peripheral requires a 48 MHz clock. Furthermore, I do not trust the internal RC oscillator to provide a stable connection for USB. Is there a practical solution for this?
Hi,I am using the STM32H745I-DISCO board and trying to boot an application from the external QSPI flash (MT25QL512ABB).For this purpose, I created two separate projects: Bootloader Project Initializes the QSPI flash. Configures the QSPI in Memory-Mapped mode. Jumps to the application stored in the external QSPI flash. Application Project Modified the linker script (.ld file) to change the application start address from 0x08000000 to 0x90000000. Added the following statements in CM7/Common/Src/system_stm32h7xx.c (around lines 295–296) inside SystemInit(): As a basic test, the application code is only trying to blink the LED connected to GPIO Pin 13 after booting from the QSPI flash. RCC->CFGR = 0; SCB->VTOR = QSPI_BASE;After building the application, I generated the .bin file and programmed it into the QSPI flash using STM32CubeProgrammer.When I read back the contents from address 0x90000000 using CubeProgrammer, I can see valid data programmed in the fla
Based on discussion here, conclusion is, that given in 'L45x/'L46x there's no DAC1_CH2, and in 'L41x/'L42x no DAC at all, these are unavailable for inputs selectable for COMP for these sub-families of the low-end 'L4xx family group handled collectively by RM0394. Description in stm32l4xx_hal_comp.c does not tell these completely, and there are also references to 'L43x/'L44x having some exceptions, which based on RM/DS doesn't appear to be the case: Also, macros in stm32l4xx_ll_comp.c don't take the missing DAC channels into account, and they should. Can these be looked at, please. Thanks, JW
I've just installed CubeMX2 to start work on a new project using STM32C552xxx.My normal practice is to export a .csv of all the processor pins along with the alternate functions and in CubeMX this is easy.But Cube MX2 only exports a .csv like this:Position Pin Type Signals Pin labels 1 PE2 gpio 2 PC13 gpio 3 PC14-OSC32_IN(OSC32_IN) gpio Please tell me there is an option to list all the alternate functions in the.csv.It is quite impossible to to allocate the pins and peripherals for a new design working only with the pop_up detail view in CubeMX2. An acceptable alternative would be for ST to just publish such a .csv some where.MK
I’m currently trying with the STM32N6570-DK board using the ST Edge-AI v2.2.0I would like to know whether a lightweight Transformer model (for example, a small Vision Transformer or a minimal Transformer encoder) can be successfully converted and executed on the STM32N6. I checked that batch_matmul, transpose, etc. are supported on the link (https://stm32ai-cs.st.com/assets/embedded-docs/stneuralart_operator_support.html )Currently, after converting the lightweight ViT model to tflite or onnx, I am trying to convert it using stedgeai and stm32cubeide, but only the following error messages appear and are not being convertedCode, model file, and error text: https://github.com/minchoCoin/lightweight_vit These model was successfully analyzed with STM32Cube.AI MCU runtime on STM32CubeIDEFollowing error messages appear when I try to convert these model(tflite and onnx) with STM32Cube.AI Neural-ART runtime in STM32CubeIDE or with stedgeai in command line1. tflitestedgeai genera
I am attempting to exist from a Shutdown mode using the WKUP6 pin (PB5) on an STM32G0B1CEU.This is my shutdown code.HAL_SuspendTick();__HAL_RCC_PWR_CLK_ENABLE();HAL_PWREx_EnableGPIOPullUp(PWR_GPIO_B, PWR_GPIO_BIT_5);HAL_PWREx_EnablePullUpPullDownConfig(); // sets the APC bit in PWR_CR3HAL_PWREx_EnablePORMonitorSampling();HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN6_LOW);// Do reads of registers to ensure they were written(void)PWR->CR3;(void)PWR->CR4;/* Clear all related wakeup flags*/__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF);HAL_PWREx_EnterSHUTDOWNMode();This seems to do almost exactly what I would expect it to do.PB5 goes high.Power consumption drops.However, it never wakes up. I have a wire connected to PB5, which I am measuring with a scope, and confirm that it is going high. I am them shorting that wire to ground and confirm that it goes low. The system doesn’t wake up. I know it’s not immediately going back to sleep because right now there is no automated way for it to enter sleep m
Hello everyone,When running STM32Cube AI Studio on Ubuntu 24 with lolcal installation (no sudo rights) I am running in the following problem:When creating a new project and starting a run I am getting an Error when AI Studio tries to look into /opt/st/pluginsRun failed: Error: ENOENT: no such file or directory, scandir '/opt/st/plugins'Does AI Studio whats to look into the STM32CubeIDE plugins or for which plugins is it looking and how could I change the path where it is looking for these?Thanks in advance for your help!
Hardware & Setup- MCU: STM32H523RE (I3C target/slave mode) - Controller: STM32H533RE (I3C controller mode)- HAL Version: STM32CubeIDE 1.16.1, HAL for STM32H5- Bus Speed: 3.205 MHz I3C SDR Problem Description We're implementing an I3C target that needs to respond to random address reads with repeated start: [START][ADDR_W][0x01][RESTART][ADDR_R][DATA][STOP] Where:- ADDR_W writes the address byte (0x01) to tell the target which register to read- RESTART signals the repeated start- ADDR_R begins the read phase- Target should respond with data from address 0x01 The problem: Loading the TX FIFO in the RXFNE interrupt handler doesn't work. The hardware transmits stale data before the ISR can fill the TX FIFO with the requested data. 1. RXFNE interrupt fires when address byte (0x01) is received2. ISR starts executing (~1-2µs interrupt latency)3. ISR flushes TX FIFO and writes fresh data to TDR registers4. But hardware has already started transmitting from the (empty/stale) TX FIFO The I3C
I’m working on a system design that incorporates gigabit Ethernet. I’ve been looking at using the STM32N6x7 family of parts to support this functionality. The product selector and datasheet seem to indicate that each package supports the 1000 Ethernet. In addition, the datasheet starts off by listing the gigabit Ethernet as a family supported technology. However, Tables 2 - 5 of the datasheet that list the variations in supported functionality between packages does not list Ethernet whatsoever on any package. To me this implies that the functionality is supported on all devices equally, otherwise the different protocols supported would be listed here.Figure 1: Example of Product Selector FilterFigure 2: Excerpt from Datasheet Listing 1 Gbit Ethernet Support for the STM32 Family Thus, I started with the smallest package for ease of routing and space consumption. However, when matching the device with an external gigabit Ethernet PHY as required, I noticed that there are signals that are
We are currently evaluating the VL53L9CX 3D dToF sensor for our next-generation product line.Our product is mounted on a machine and subjected to continuous vibration.While reviewing available documentation, we noticed characterization data and community discussions regarding shock/vibration tolerance for older generations like the VL53L1 and VL53L5 series. However, given that the VL53L9CX uses a different optical stack, we want to ensure its structural integrity and alignment stability under heavy mechanical stress.Could someone from ST or the community share: Vibration & Shock Qualification Data: Are there published test reports or datasheet parameters for mechanical shock (g-force/duration) and random vibration (sine/PSD profile limits) for the VL53L9CX? Optical Alignment / Micro-movement Sensitivity: Has ST evaluated whether high-frequency mechanical vibration causes optical misalignment or ranging artifacts in the MOE array setup during operation? Mounting Best Practices:
Hi, the MotorControlWorkbench is generating the Feedforward control constants:M1_CONSTANT1_QM1_CONSTANT1_DM1_CONSTANT2_QDHow are the calculated, are there any documentation or formula for it?The Feedforward seems to be relevant for my project because I see current ripple aligned with my DC bus voltage ripple. But in practice there is no improvement, if I activate the FeedForward control. Also the bus voltage is measured with 1 ms and a filter with 6 values is applied. Are there any tips for my application if I have a bus voltage ripple period of 10 ms (3 Phase, 50 Hz)? Thanks for Help Sebastian
Hi,When attempting to install a package "From local" on a development PC that is offline, CubeMX rejects the package with the error message "package not recognized."How can the package dictionary (XML file) be updated? This would be the offline equivalent of the "Refresh" button. Thanks
Hi everyone,I'm working on Azure RTOS USBX CDC ACM on an STM32F429ZIT6. The USB device is detected successfully by Windows, and a COM port is created, but I'm unable to transmit or receive any data.EnvironmentMCU: STM32F429ZIT6 STM32CubeIDE: 1.19 STM32CubeF4: 1.28.3 Azure RTOS USBX (X-CUBE-AZRTOS-F4)ProblemThe USB device enumerates successfully:Device Manager detects the USB CDC device. A COM port is created. No data transfer occurs. _ux_device_class_cdc_acm_activate() is never called. The CDC ACM class never becomes active.While debugging, I found that execution reaches: UINT _ux_device_stack_interface_start(UX_SLAVE_INTERFACE *interface)where the following assignment is made: class_command.ux_slave_class_command_class = interface->ux_slave_interface_descriptor.bInterfaceClass;Later, USBX calls: _ux_device_class_cdc_acm_entry(&class_command);During the UX_SLAVE_CLASS_COMMAND_QUERY request, the following check is performed: if (command->ux_slave_class_command_class == UX
I have built some prototype boards with the above “brand new” esim purchased from RS-UK. The first 2 out of 10 are coming up with “This ICCID has already been activated” on the 1Global portal.Interestingly the ICCID numbers are only 8 digits off being sequential.I will have 6 more in hand tomorrow but I’m worried these stand a good chance of being the same.Can ST do anything?1Global have already said the ICCID has been activated and then deactivated prior to my purchase and they cannot reactivate it! Which sounds a bit dodgy to me! Malicious BOT registering ICCID’s!!!!RS could probably get me some replacements, but likely from the same batch so could have the same problem!Any idea’s where I go from here? Or if I have possibly done anything wrong?
We are a large electronics company that has been collaborating with ST for over a dozen years.We are currently designing a wireless charger for one of our automotive clients and plan to launch mass production within a few months. Unfortunately, we are unable to test the hardware we have designed because we cannot obtain the necessary STSW-WBC2STUDIO software.Please provide access to STSW-WBC2STUDIO.Thank you in advance for your prompt assistance.Best Regards
Hello,Is there any chance ST could provide examples or guidance on interfacing a CSI (MIPI) camera with Raspberry Pi Camera Module 2 NoIR cameras?From my initial research, it seems the CSI connector uses the same pin layout as Raspberry Pi cameras. However, available examples are quite limited, making it challenging to implement this on my own — especially compared to the simplicity of working with DCMI.Any documentation, sample code, or community insights would be greatly appreciated!Thank you.With best regards,Linas
There is a problem with STM32 signing tool version 2.21.0. When header version is 2.3 and alignment flag is used, then image length in header is greater by the alignment byte count.To reproduce:Create dummy.bin that is filled with 256 bytes of FF's. For example with HxD tool.Sign it with no keys:STM32_SigningTool_CLI.exe -bin dummy.bin --type fsbl --no-keys --option-flags 0x80000000 --output signed.bin --dump-header signed.bin --header-version 2.3 --alignView the signed.bin with hex viewer (e.g. HxD) at offset 0x6C which is Image length by UM3234 rev 2:It is 0x2C0 = 704. This is 448 bytes more than original 256 bytes.When removing --align flag from signing call, the length becomes correct, but this image is not bootable anymore because STM32N6 Boot ROM expects FSBL image start address to be aligned to 0x400.I want to use this length field to check during OTA that FSBL upgrade file size and checksum are correct before programming it into Flash. But I wonder how does N6 Boot ROM treat th
Hello @ST Community @ST MICROCONTOLLER I have purchase NUCELO-H563ZI board.Purpose: I need to read and write pendrive sector using only pure HAL HCD driver (Baremetal Code only) (No FILEX, USBx, ThreadX, FreeRTOS)Following is my Hardware Connection: I am using external USB Type A Female Breakout board. Not using internal CN13 TypeC USB connector.PA11 : D-MinusPA12 : D-PLUSVCC : 5VGND : Board GroundI have attached file which can read and write the sector.While submitting request for “Get Descriptor” command. Code is stuck during USB_EnumerateMSC » USB_GetDescriptor » “USB_ControlTransfer” » “USB_SubmitTransfer” >> “HAL_HCD_HC_SubmitRequest” stuck in “USB_WaitForURB>>HAL_HCD_HC_GetURBState” function.I can observe that while submitting “HAL_HCD_HC_SubmitRequest” request on channel 0 HAL Drive respond on channel 1 instead of channel 0. ch[0].urbState = USB_IDEL while ch[1].urbState = USB_DONE.Also i have also observe that “HCD_HC_OUT_IRQHandler(hhcd, (uint8_t)i);” API “uint8
Hi, I want to use SPI2 on the STM32H757AIIx, the UFBGA169 package. STM32CubeMX allocates PC2_C pin as SPI2_MISO, but the datasheet only shows ADC2_INN1, ADC3_INP0 as additional functions. SPI2_MISO is not defined on that pin (K13). Which one is correct ? Datasheet or STM32CubeMX ?
I am currently working with an ST25R300 reader IC and would like to increase the available RF power at the antenna in order to achieve a higher field strength/read range.I only need ISO/IEC 15693 modulation.I need about 5-8 watts of output power.Is it possible to drive a H bridge driver IC with the push pull output of the ST25R300? And what about deadtime etc.Are there any reference designs or application notes from ST showing an ST25R device combined with an external PA? Thank you in advance!
After creating the project from Workbench, I discovered that pins PA14 and PA13 in CubeMX were not working. I checked the Workbench settings again but couldn't find any parameters related to this issue. Without these pins, the motor cannot communicate. I also tried manually configuring them and the motor worked, but I think the Workbench setup would be better.Schematic of B-G431B-ESC1 discovery kitCube MX
B-G473E-ZEST1SControl Discovery kitSTEVAL-LVLP01Power Discovery kitST offers a sensorless control solution featuring the ZeST (Zero Speed Full Torque) algorithm, bundled with two Discovery kits: the B-G473E-ZEST1S Control Discovery kit and the STEVAL-LVLP01 Power Discovery kit. However, the power board has a relatively low output current (approximately 5 Arms). I would like to know if the ZeST algorithm can be implemented on a different power board that supports a higher output current.
Could you please share the detailed optical filter characteristics of the filter integrated in front of the VL53L9CX receiving sensor, including its spectral transmission/response characteristics?Also, I would like to understand the power supply noise sensitivity of the sensor. Could you please provide the acceptable input voltage deviation, ripple, and noise limits for the sensor's power supplies?
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.