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
According to Page 1354 of rm0394, setting LDMA_TX bit must occur only when SPE=0.However, from my reading of the function HAL_SPI_Transmit_DMA, this bit may be set or cleared when the DataSize <= 8bit and MemDataAlignment == HALFWORD, even if SPE=1.This looks like a bug.Am I correct?STM32Cube MCU Package for STM32F4 STM32L4, version 1.28.3
Hi,among probably many other registers, the ITM registers like TCR and Stimulus Port Registers described in the ITM programmers model in ARM Cortex-M7 Processor TRM are missing. Which means I either have to adapt the svd file or go to memory view and translate and modify the registers manually. Is this on purpose and or are there plans to fix this? If you have a repository somewhere I can maybe fix that on my own and start PR.Ty in advance
I am setting up my STM32F303RET6 for four differential inputs to be sampled simultaneously. As seen in the screenshot attached. there is no option for differential inputs on CubeMX. Am I missing something here? I have reset whole project to ensure no pins are assigned elsewhere.
Hi I have a USB-C Connector that will be used for Power Delivery Sink for charging and USB Full Speed Mode(12Mbps) for communicating with onboard STM32F767ZIT6. But only one thing will happen at a time. As seen in the attached schematics, I have used STUSB4500 as PD Sink controller. I will communicate with it via I2C using STM32. I understand that this STUSB4500 will negotiate 20V(60W which i want for charging) with the source(which in this case is AC-DC Wall adapter) in Power Delivery Mode. But my question is during USB Full Speed Mode Communication with STM32, when that USB-C Receptable is connected to a PC instead of Wall Adapter. As during charging mode, USB_VBus is 20V and in Full Speed mode, it is 5V and my STM32 is Self-Powered and VBus sensing is mandatory. But due to USB VBus varying between 5V and 20V, I cant connect it to for example PA9 VBus sensing pin of STM32 using a voltage divider. So, i was thinking maybe there is another option to sense
Hello Everyone,I’m still getting up to speed with the STM32N6 series, so apologies if my question seems off, but I’d really appreciate your help!I’m working on implementing object tracking using the STM32N6570-DK board with the MB1854B camera. I'm wondering if it’s possible to deploy OpenCV on this platform to support the tracking logic.If anyone has experience with this or knows of any courses, guides, or resources that could help me deploy OpenCV (or similar tracking frameworks) to the board, I’d be incredibly grateful.Also, if you have relevant experience and are open to offering support or consultancy, I’m more than happy to discuss compensation. Please feel free to reach out!Thanks in advance for your time and help!
Dear ST,I am searching for LTE module , basic data transfer is to send 2Kb of data using mqtt and perform http opeartion. I have got to know about ST87M01 LTE module, for getting started i got the evaluation board EVKITST87M01-2 i have few doubts before getting it 1) Can i use Vi, Jio or Airtel sim card with it.2) In some series it is showing esim, so does it have built-in esim or need to add it in design externally.3) can i interface ST4SI2M0020TPIFW esim with it.4) If i done with prototype with it, can i get the design and component availability for large.5) Documents for gettign started with ST87M01 and ST4SI2M0020TPIFW esim. Regards,Shubham
Hello,I want to change for boot to use XSPI1 interface, but I am not sure about OTP bits, there in description some bits is not very clear, what OTP bits to set to switch if it's possible ?Additionally if I will use SD card for boot I can set OTP11 value to 0x00000020 (bit5 = 1 = sdcard), write FW to sd and use sd for boot source ?Thanks.
Hello, I tried to program a MSD on an STM32C071. My computer "sees" the USB device but didn't recognized it as a storage device. I use the NUCLEO-C071 and have setup the following: RCC:High Speed Clock(HSE): Crystal/Ceramic Resonator Clock Configuration:Input frequency: 8HCLK: 48ToUSB(Mhz) HSIUSB48: 48 CubeMX USB:Mode: Device_Only,USB interrupt enabled CubeMX USBX:UXDevice memory pool size: 1024*5USBX Device Generate Core Init code: yesUSBX Device System Stack Size: 1024*5 In CubeIDE:main.c: /* USER CODE BEGIN 2 */ MX_USB_PCD_Init(); // Line 94 /* USER CODE END 2 */ /* USER CODE BEGIN USB_Init 2 */ HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x00 , PCD_SNG_BUF, 0x20); // Line 180 HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x80 , PCD_SNG_BUF, 0x60); HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x81 , PCD_SNG_BUF, 0xA0); ux_dcd_stm32_initialize((ULONG)NULL, (ULONG)&hpcd_USB_DRD_FS); HAL_PCD_Start(&hpcd_USB_DRD_FS); /* USER CODE END USB_Init 2 */ In ux_device_msc.c /* USER CODE BEGIN P
Hello all,I am developing a vibration measurement device using LSM6DS3TR-C. Most of the time the data were in good shape (99%). However, I noticed some spike in my vibration intensity reading randomly. After checking the raw data I saw some step change at the same time point, indicating the data reading of the three axis are confounding.My configuration only requires the accelometer readings to be cached in FIFO:1. enable block update 2. set fifo accelometer decimation register to 1 (no decimation) 3. set fifo accelometer data rate to 3333Hz 4. set accelometer data rate to 3333Hz, bandwidth 1.5khz, LPF_BW_SEL to 1 5. set FIFO mode to bypass, then set to FIFO mode (clear and restart FIFO) 6. polling FIFO_STATUS2(0x3B) register for FIFO_FULL_SMART. 7. I2C bulk read the FIFO for 682(sample count) * 3(axis) * 2(16bit-axes) = 4092 bytes from buffer 8. repeat from 5.To identify the issue, I changed step 7 to the following: For i-th reading 7.1 Read the FIFO patte
Say I am operating as master with CPOL=1. Because the NSS pin seems to lag the enable bit (SPE) slightly, my logic analyzer always barfs on the first SPI packet because the clock is in the wrong state.So, I set the GPIO to have a pullup on the clock in CubeMX and the problem goes away - as soon as the init functions run, the clock goes high and stays that way until the first SPI transmit. Also, the clock stays high after the end of the transfer if the SPI is disabled in the callback function.My only concern is for power consumption: It is obvious that the pullup gets applied when the SPI is disabled but I don't know is if the pullup applied all the time even when the alternate mode of the GPIO is set, i.e. is the pullup still applied at the pin when the SPI is enabled? Do clock pulses during an SPI transaction work against the pullup?
Hello,after updating MEMS Studio to version 2.3.1 I am experiencing an issue when working with FSM configurations.Previously everything was working correctly, but now I cannot reload FSM configurations saved as JSON files.Steps to reproduce the issue:Create a new FSM in MEMS Studio.Save the configuration as a JSON file.Try to reopen the same JSON file.The file loads without any error message, but the FSM editor remains empty and the FSM configuration is not shown.However, individual FSM examples included in MEMS Studio open correctly without any issues.This happens both with:JSON files generated previously with an older version of MEMS StudioJSON files generated directly from example FSM projects in the current versionSo the issue does not seem to be related to the JSON content itself.My setup:MEMS Studio version: 2.3.1Sensor: LSM6DSOXQuestions:Has the FSM JSON handling changed in MEMS Studio 2.3.1?Is there a specific way to reopen a saved FSM configuration JSON?Is this a known issue o
I'm working on a design with an STM32L072CZT6TR, where I want to calibrate my main timebase. That main timebase is TIM6, which counts 16,000. The HSE is 16MHz, so there's an interrupt evey 1ms. Calibration is done by counting the number of HSE cycles between two consecutive PPS pulses from a GPS receiver. The PPS triggers an EXTI interrupt, which starts TIM21 and TIM22 at 0 on the first pulse, and reads the timer values on the second.TIM21 is set to count 16,000 pulses and TIM22 is slaved to TIM21. This way, I can conveniently determine whether the HSE is slow (TIM22 == 999) or fast (TIM22 == 1000), and calculate a correction based on TIM21.This logic is copied straight from an older design with an STM8, where it works like a charm. However, the cascading does not work. No matter what, TIM22 is always 0 on the second PPS. I have used CubeMX to set the timers up, and, going over the code with the reference manual as my guide, I can see no errors. Being a hardware engineer
Hello everyone, I'm using a host (STM32F7) communication with ST67W611 BLE WIFI via SPI.So far, I can configure application P2P Client, T01 architecture, gen code and build pass.The issue what I'm facing is I can't init SPI communicaiton with ST67W611. so Could you help me answer some question to debug what issue is?1. I bought ST64W611, so Could I need to re-flash firmawre for this module?2. the W6X_Init(0 function init failed, I checked the pin SPI_RDY alreay has level low (= 0).so I hope if there is someone has worked with ST67W611 via SPI with a host STM32, please share me the experience? Thank you very much!
I'm using eFuse STEF05D, found 2 version of the datasheet below which show the different formulas:STEF05_en.DM00034383,pdf: R-Limit = 65/IshortSTEF05D.pdf: R-Limit = 42/IshortCan someone help clarify which formula is correct?
Hello,I’ve recently started using ST products and the IDE with CubeMX, which is why I’m asking for your help. I’ve just begun developing a communication system using a Nucleo H743ZI2; my goal is to set up a UART and a CAN bus.The UART is done; I used DMA access to optimize it. However, when I try to enable the CAN bus in Cube MX, I run into a problem with the clock configuration related to the bus.When I use the “Resolve Clock Issues” function, I get the error: “Cannot find a solution for some constraints.” Does anyone have any ideas to help me solve this problem? Thank you in advance, and have a great day,
Hi Guys,Based on some tutorials, I am trying to execute ADC module of STM8S105 and display the ADC result in 16x2 LCD display. The problem is : thousandth digit place is showing alphabetic character right from "A" when I increase voltage on ADC channel from 0. Please see my code as well as adc.h file. I am eagerly awaiting someone to suggest where I have made the mistake. #define LCD_RS GPIOD, GPIO_PIN_2 #define LCD_EN GPIOD, GPIO_PIN_3 #define LCD_DB4 GPIOD, GPIO_PIN_4 #define LCD_DB5 GPIOD, GPIO_PIN_5 #define LCD_DB6 GPIOD, GPIO_PIN_6 #define LCD_DB7 GPIOD, GPIO_PIN_7 #include "STM8S.h" #include "lcd.h" #include "adc1.h" main() { //Variable declarations unsigned int test_var ; char d4,d3,d2,d1; gpio_adc_init(); adc_init(); Lcd_Begin(); Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Print_String("STM8S103F3P3 LCD"); delay_ms(5000); Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Print_String("Circuit Digest"); Lcd_Set_Cursor(2,1); Lcd_Print_String("Test: "); while (1) { test_var
Hi,I have a question about choosing some fairly basic security settings for an STM32H5.We are developing a system that uses both G4 and H5 micros. We have developed a largely common bootloader that receives a signed encrypted application over variously USB, UART, or CAN, and flashes it to internal memory. This is working on the G4 and H5.For the G4, we understand that if we select "Level 1" read protection, the bootloader will still be able to erase and re-flash a new application but a user will not be able to gain access to the code (bootloader, application, or data in CC RAM). Further, the G4 can be reverted to Level 0 if required, but this will erase the proprietary code.Ideally, we would like the same security behaviour on the H5. I have been reading about the bewildering selection of security settings with privileged and secure settings for individual peripherals but I feel this is more complicated than we require. Our bootloader already prevents someone installing malicious code
Hi,I am using the latest version of STM32Cube extension for VS Code (3.8.0). I created a simple project for STM32H735G-DK board using CMake as the toolchain and ST-ARM-CLANG as the compiler. I do not know if it is relevant, but I also enabled FreeRTOS and configured the USE_NEWLIB_REENTRANT option to Enabled.I generated the project and I am compiling it with VSCode. I changed in the starm-clang.make to use the NEWLIB instead of the PICOLIBC:set(STARM_TOOLCHAIN_CONFIG "STARM_NEWLIB")The compilation works, but clangd complains about some errors. In the output of clangd, I can see multiple instances of:D:\ST\stm32cube\bundles\st-arm-clang\21.1.1+st.6\bin\..\lib\clang-runtimes\multilib.yaml:47:3: error: unknown key 'IncludeDirs' IncludeDirs: ^~~~~~~~~~~ D:\ST\stm32cube\bundles\st-arm-clang\21.1.1+st.6\bin\..\lib\clang-runtimes\multilib.yaml:21:1: error: multilib "arm-none-eabi/armv4t_exn_rtti_size" specifies undefined group name "stdlibs" MultilibVersion: '1.0' ^and because of these erro
Hi,We use the USB OTG controller in host mode with its internal FS PHY.Our DT node is the following:&i2c4 { ... pmic: stpmic@33 { compatible = "st,stpmic1"; ... regulators { compatible = "st,stpmic1-regulators"; ... pwr_sw2-supply = <&vin>; ... vbus_sw: pwr_sw2 { regulator-name = "vbus_sw"; regulator-active-discharge = <1>; }; }; };};&usbotg_hs { compatible = "st,stm32mp15-fsotg", "snps,dwc2"; pinctrl-names = "default"; pinctrl-0 = <&usbotg_hs_pins &usbotg_fs_dp_dm_pins>; dr_mode = "host"; vbus-supply = <&vbus_sw>;};&pinctrl { usbotg_hs_pins: usbotg-hs-0 { pins { pinmux = <STM32_PINMUX('A', 10, ANALOG)>; /* OTG_ID */ }; }; usbotg_fs_dp_dm_pins: usbotg-fs-dp-dm-0 { pins { pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* OTG_FS_DM */ <STM32_PINMUX('A', 12, ANALOG)>; /* OTG_FS_DP */ }; };};This configuration was perfecly working with ST linux v5.10-stm32mp-r2.1.We bumped ST linux to v6.6-stm32mp-r1 and issues appeared with
Is it ok to use different build configuations for different pinout version?As you may have experienced, sometimes pcb version how the pinout. Sometimes another UART or TIMER is used in another pin etc,... Is it ok to use different build configuations for different pinout version?
I am trying to run a ADC+DMA program inside application based program. (generated FSBL+Application project)While debugging the application project, it automatically jumps to somewhere else as shown in screenshot and is unable to debug the application one.The prgram is stucking at for loop which is not inside application code.
A few direct questions about the current CubeMX2/HAL2 split. Are older STM32 series expected to stay on HAL1 + CubeMX permanently, or is there an actual plan to migrate them to HAL2 + CubeMX2? What is the long-term support model here?Are these two stacks supposed to coexist for years, or is HAL1/CubeMX effectively going into maintenance mode? Is there any official migration guide planned?Both for HAL1 → HAL2 API migration and CubeMX project → CubeMX2 project migration. How is the VS Code extension supposed to work with both ecosystems in practice?If one project is on CubeMX/HAL1 and another is on CubeMX2/HAL2, what is the intended workflow?Is proper support planned for both, or is the tooling mainly targeting the new stack? Where is the actual HAL1 vs HAL2 side-by-side data?Flash usage, RAM usage, performance, code size, same project, same MCU class, comparable build settings. Right now this looks like a major ecosystem split without a clear migration plan or hard technical
1. Qt6 Multimedia (PySide6) – 1080p Video Playback RequirementOur application requires smooth video playback using Qt Multimedia with PySide6 at resolutions up to 1080p.I understand that Qt6 supports hardware acceleration for 3D graphics through the GPU, but I was unable to find confirmation regarding hardware-accelerated video decoding specifically for QtMultimedia.Could you please confirm whether the STM32MP257 series supports:Hardware-accelerated video decoding at 1080pIntegration of QtMultimedia with the hardware video pipelineSupport through OpenSTLinux / Yocto2. Chromium Browser – GPU-Accelerated Video PlaybackWe also require GPU-accelerated HTML5 video playback (1080p) in the Chromium browser.Please confirm whether the STM32MP257 series provides:A Video Processing Unit (VPU) or dedicated hardware decoderGPU acceleration support within Chromium (ANGLE / EGL / GStreamer backend)Hardware-offloaded 1080p video decoding for browser playback3. Requirement Summary (for confirmation)We
Hi,I found the same issue as in.https://community.st.com/t5/stm32cubemx-mcus/found-a-bug-with-the-latest-rev-of-stm32cubemx-rev-5-3-0/td-p/279154(thank you @MSilv for reporting this btw).Since a STM32CubeMx update and STM32F4 Cube update, the generated main.c is missing two lines in the end of the generated void SystemClock_Config(void) function :LL_Init1msTick(100000000);LL_SYSTICK_SetClkSource(LL_SYSTICK_CLKSOURCE_HCLK);The update was quite a big leap :CubeMx: from 5.2.1 to 6.16.1STM32Cube FW_F4: from 1.24.1 to 1.28.3Without those lines the code is stuck.Adding them back in the user-code following SystemClock_Config(void) mitigates the issue, but it looks like those lines shouldn't have been deleted in the first place.
Typical bootloaders (including some of ST's built-in bootloaders for other processors) typically allow a code image to be loaded into the processor via some kind of serial link (UART, SPI, CAN, etc), without needing an ST-Link or other debug hardware. These make bootloaders ideal for in-field upgrades of products.OEMiROT/OEMuROT has some features of a bootloader, in that a new image can be placed in a special area of flash and (if it passes all the various checks) then be executed.However, there is no way of actually putting that image in flash without an ST-Link or similar, since this is needed to unlock the chip via the DA process. So if you want to do an in-field upgrade of your product's firmware without any debug hardware, OEMiROT in its current form isn't the solution.Our approach is for our application to download the image into a reserved area of RAM and then switch to the bootloader, where our adapted version of OEMiROT copies this image from RAM to the special area of flash.
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.