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 Community team,About the Typo, on the Table 1 of the RM0473, we have a reserved region between SRAM1 and SRAM2a (from 0x2000 3000 and 0x2002 FFFF) the size of this region is 180 Kbytes and not 36 KBytes as mentioned on the Doc.please have a look at this.
I am configuring a dual-CPU project for the STM32WL55JC in CubeMX. This microcontroller has two CPUs: a Cortex M4 and a Cortex M0+. CubeMX lets users select the CPU that each peripheral is bound to. As illustrated in the image at the bottom of this post, the SUBGHZ peripheral is forced into being used by the Cortex M0+. In case the text in grey box in the image is unclear, it says "Peripheral SUBGHZ could not be removed from context "Cortex-M0+ (M0P)" as it's forced for this Peripheral."However, the datasheet says "An RF low-layer stack is needed and is to be run on CPU1 or CPU2, whereas the host application code is preferably run on CPU1." (Page 15). Here, CPU1 refers to the Cortex M4 and CPU2 refers to the Cortex M0+. This implies to me that the SUBGHZ peripheral should be bindable to either CPU. Can the SUBGHZ peripheral be operated by the Cortex M4, or is the Cortex M0+ only capable of using it?
HelloI'm considering running an LSTM(RNN-based model) model file, on the STN32N657 NPU.However, I understand that the NPU is CNN-based and therefore cannot run on it.Is there a way to run an LSTM model file on the NPU?I understand that theoretically, it's possible to convert an LSTM to a 1D CNN or TCN.Has anyone converted an LSTM model to a 1D CNN or TCN and tested it on the NPU?Is there an example file available?Thank you.
Hello, I am working on implementing an object detection application for the STM32N6570-DK, starting from the reference projects:STMicroelectronics/x-cube-n6-ai-people-detection-trackingSTMicroelectronics/STM32N6-GettingStarted-ObjectDetection I'm encountering a blocking issue when implementing the inference pipeline: During debugging, I found that the inference execution blocks indefinitely at LL_ATON_OSAL_WFE() on line 105 of Appli\App\Src\app_nn.c. The code is stuck in the following loop:static void NN_RunInference(void) { LL_ATON_RT_RetValues_t ret; do { ret = LL_ATON_RT_RunEpochBlock(&NN_Instance_od_yolo_x_person); if (ret == LL_ATON_RT_WFE) { LL_ATON_OSAL_WFE(); // <-- Blocks here } } while (ret != LL_ATON_RT_DONE); LL_ATON_RT_
Hi,I am working on STM32N6570-DK Edge AI development on Windows and I am facing a board programming error when using stm32ai-modelzoo-services. I would like some guidance on the possible root cause and recommended troubleshooting steps.EnvironmentHost OS: Windows 11 Board: STM32N6570-DKTools and versions:STM32CubeProgrammer: v2.20.0 STEdgeAI: 2.2cubeIDE:1.19.0Python: 3.9 Model and datasetModel: st_yolo_xDataset: MS COCO Completed steps:Followed the official instructions to install and configure stm32ai-modelzoo-services on WindowsSuccessfully ran chain_tqeb (training / quantization / evaluation / benchmark) to completionThe quantization output folder contains:Quantized model artifacts (e.g. .tflite / .onnx as produced by the pipeline)A user_config file adapted from the official examplesProblem descriptionWhen running chain_qd or the deployment step for the STM32N6570-DK, the proces
Hello, We have developed an image capturing application successfully based on STM32H7xxxx and OV7725 camera. We are now targeting to port the application to target STM32U5xxxx with the same camera. But it looks the DMA doesn't works as expected. The DCMI DMA complete callback is firing with no image data in the target buffer. Please guide us how to port the application from H7 to U5.Best regards-Shubhendu Bikash BanerjeeAttaching here snaps of the configurations we made so far.DCMI GPIODCMI NVICDCMI parametersGPDMA1 channelsGPDMA1 CH0GPDMA1 securityCode snippet:#define IMAGE_FRAME_WIDTH 320 #define IMAGE_FRAME_HEIGHT 240 #define IMAGE_BYTES_PER_PIXEL 2 #define IMAGE_BYTES_COUNT (IMAGE_FRAME_HEIGHT * IMAGE_FRAME_WIDTH * IMAGE_BYTES_PER_PIXEL) static uint32_t gDCMIBuff[IMAGE_BYTES_COUNT / sizeof(uint32_t)] = { 0 }; static volatile bool gWaitForFrame = false; CaptureFrame{ gWaitForFrame = true; halReturn = HAL_DCMI_Start_DMA(&hdcmi, (uint32_t) DCMI_M
Hi,Recently, I have been evaluating the DAC accuracy of STM32H743. The data sheet mentions the SNR and ENOB , but I have no idea how to test it. Could you please provide a testing method or a testing plan? Looking forward to your reply.
Hello @Imen.D , A side question: RM0440 for G4 says oversampling mode does not support offset. Any change to this position as like the H7 change? Solved: 'H7 ADC offset correction in oversampling mode - STMicroelectronics Community Thank you. SK
Hello,I am encountering difficulties installing the ST Edge AI v3.0.0 application. During installation, the client cannot connect to MyST, even though my credentials work correctly on the ST website.I have also configured the HTTP proxy in the installer exactly as I have for other ST products, which functioned without issue. Nevertheless, the installer repeatedly displays the following error:“Issue while connecting to MyST. Please verify username, password, or internet access.”Could you please advise on how to resolve this problem?Thank you for your assistance.Best regards,JeM
Hi everyone,I’m bringing up USART2 on an STM32 using bare-metal Rust (#![no_std]), direct register access (no HAL, no CubeMX).The CODE looks correctlyHowever, the data itself is wrong.Instead of transmitting 'A' (0x41), the terminal consistently receives values like:0xCE0x05(always stable, but never 0x41).#![no_std]#![no_main]use core::ptr::{read_volatile, write_volatile};use core::panic::PanicInfo;use cortex_m_rt::entry;#[panic_handler]fn panic(_: &PanicInfo) -> ! {loop {}}#[inline(always)]fn r(addr: u32) -> u32 {unsafe { read_volatile(addr as *const u32) }}#[inline(always)]fn w(addr: u32, val: u32) {unsafe { write_volatile(addr as *mut u32, val) }}/* ================= BASE ================= */const RCC: u32 = 0x4402_0C00;const GPIOA: u32 = 0x4202_0000;const USART2: u32 = 0x4000_4400;/* ================= RCC ================= */const RCC_AHB2ENR: u32 = RCC + 0x08C;const RCC_APB1LENR: u32 = RCC + 0x09C;const RCC_CCIPR2: u32 = RCC + 0x0DC;/* ================= GPIO =======
Hi everyone,I’m currently working on a project using the ST B-G431B-ESC1 discovery kit to drive a 24V 250W BLDC hub motor. I'm using the SimpleFOC library for control and have added a small heatsink to the board to manage temperatures.The issue is that after running for a short period, I keep losing MOSFETs; they just randomly burn out. The motor wasn't even under heavy load when it happened, but I was trying to tune the PID, so there was some jerking.What could be causing this? Is it likely an overvoltage spike, an overcurrent issue, or something else entirely? How can I find the root cause, and is this board truly capable of driving a 250W–350W motor continuously, even with enough cooling?
In STM32CubeIDE, it is possible to view two different source files side by side by dragging editor tabs with the mouse. However, there is no keyboard shortcut or command to move the active editor to the left/right split.This slows down workflow when frequently comparing files (e.g., main.c and app.c). A command such as “Move editor to right/left split” with assignable key binding would greatly improve productivity.Best regards.
Hi, I have a functioning project that fully compiles with only three warnings, but when I debug it and examine C structures in the live expressions viewer the the data (GovTrimControl_P structure ) appears to be offset by 4 bytes, yet the memory browser shows the correct values and when the mouse hovers over a value that value is correct: The Build Analyser also reports the address of GovTrimControl_P correctly Compile Problem Output: The values for the GovTrimControl_P structure are set at bootup to: /* Parameters (default storage) */ struct P_GovTrimControl_T_ { real32_T FreqSP; /* Variable: FreqSP */ real32_T kD; /* Variable: kD */ real32_T kI; /* Variable: kI */ real32_T kN; /* Variable: kN */ real32_T kP; /* Variable: kP */ }; typedef struct P_GovTrimControl_T_ P_GovTrimControl_T; /* Block parameters (default storage) */ P_GovTrimControl_T GovTrimControl_P = { /* Variable: FreqSP */ 50.0F, /* Variable: kD *
We are using 2 KNX IC on our project. One of them for communication and some LEDs other one (STKNX) just for driving LEDs not for communication. But of course is directly connected to KNX_BUS line. When we applied Surge test , TVS couldn't protect the device.I found some solutions but of course is effects other part of design.TVS is 36V bidrectional.If I choose 100R for 68R connected to pin3 R68 which is transmitter pin, everthing is fine. Passing the test. KNX timing is also good. However, Voltage on VDDHV is lower as excepted, and LEDs are flickering (blinking).1- How can i juice more power from STKNX? 2- Is this a big problem when i choose 100R instead of 68R, because we are not using STKNX as communication IC.Thanks. Cvgate 10uF, Cvddhv - 330uF
Im using STM32SD library on my stm32f407vet6 board. I want to make a logging system for my application. My initial logic is: on setup we count number of files in our root directory and create a new file named dataLog{fileNumber}. Then we write data into that file and check if its not empty. In given code example im always getting only last write into file (fouth write). As ive got this library only works in FILE_WRITE or FILE_READ modes. I trtied to use FA_OPEN_APPEND modifier but when im using this im getting errors while file creating.And another thing is that im always getting a lot of initialization errors and file open errors overall while using this library, maybe it depends on me using stm32f407vet6, any advices would be great. Now i will try to use an advice from github issue of "unstable work with sdcard on stm32f4" - i'll try to redefine the value of the SD_CLK_DIV to bigger value. #include <STM32SD.h> int fileNumb
Hi,we use the STM32MP157C with almost the same RAM layout as the STM32MP157F-EV1, except that the SDRAM chips are from Micron (MT41K256M16). The PMIC is also the same as the one on the evaluation board, and the settings therefore are identical. TF-A, optee, u-boot and kernel are active.On almost all boards, we see sporadic page faults from the kernel (one in 400 warm starts), distributed across the RAM (all entries from different starts):[ 0.000000] BUG: Bad page state in process swapper pfn:d0cfc [ 0.000000] page:(ptrval) refcount:1 mapcount:0 mapping:00000000 index:0x0 pfn:0xd0cfc -- [ 8.840693] BUG: Bad page state in process tar pfn:f77ae [ 8.840730] page:769addeb refcount:1 mapcount:0 mapping:00000000 index:0x4 pfn:0xf77ae -- [ 9.664655] BUG: Bad page state in process rc pfn:f70c8 [ 9.664691] page:c59745a8 refcount:1 mapcount:0 mapping:00000000 index:0x4 pfn:0xf70c8 -- [ 0.000000] BUG: Bad page state in process swapper pfn:eace6 [ 0.000000] page:(ptrval) refcount:1 mapcount:0 mappi
Hi all,I have a board designed using the STWLC38 as the Qi Rx. An ESP32 is the host controller using I2C to configure the STWLC38. The communication works OK and I can set and read various registers.I have two questions on this configuration:The STWLC38 datasheet lists the functions of all the various registers but doesn't list the addresses for many of them. Are these available elsewhere?The STWLC38 is powered from the Qi coil so that I can only read/write when I have a successful pairing. How can I save my custom parameters to RRAM using I2C?Thanks in advance.
Hello,I am trying to get Ethernet-over-USB working on a STM32U585. I want to be able to use both RNDIS and CDC-ECM, but I decided to start with RNDIS first. After a lot of trial and error and research, I am running out of ideas as to why my PC does not show any devices in USB Viewer on the port where I connected the circuit board. I am developing on a B-U585I-IOT02A.I based my work on the following example: https://github.com/STMicroelectronics/stm32-usbx-examples/tree/main/Projects/STM32H735G-DK/Applications/USBX/Ux_Device_RNDISI provide my code here (if not mentioned it is generated by CubeMX). I did not touch files if code is not shown here:main.c: int main(void) { /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the System Power */ SystemPower_Config(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ICACHE_Init(); // HINT: this function
LSM6DSVTR is marked V3,Does it change the DC format from YWW to Y or another format? What does "4" mean?Thank you.
我使用的芯片是G071RB,当我使用STM32UCPD发status,直接从FF01(PD协议的DP模式)变成0x00000,并且在抓包发现再发送的时候没有发VDO000000001,返回的数据中HPD为0,有没有大佬知道怎么解决 Translation: I'm using the STM32G071RB MCU. When I send a status update using STM32UCPD, it jumps directly from FF01 (DP mode of the PD protocol) to 0x00000. Packet capture shows that VDO000000001 is not sent during retransmission, and HPD is 0 in the returned data. Does anyone know how to solve this?
Hi everyone,I’m using an STM32L562 MCU and outputting LSE (32.768 kHz) to MCO for measurement.In LSE crystal mode, I see a large frequency deviation on the oscilloscope (much larger than expected ppm-level error).To rule out the crystal itself, I checked the 32.768 kHz crystal and it seems OK.Then I tried LSE bypass mode (feeding an external 32.768 kHz clock into the LSE pins). In this case, the MCO output frequency error becomes very small, and the waveform/frequency looks correct.So I suspect there might be an issue with the LSE oscillator circuit (load caps, PCB layout, drive strength, leakage, etc.) when running in crystal mode.Questions:Has anyone experienced large LSE frequency error in crystal mode on STM32L562 / STM32L5 series?Any common root causes (wrong load capacitors, stray capacitance, drive level, board leakage, etc.)?Any recommended debugging steps or configuration tips (e.g., LSE drive settings, oscillator startup behavior, measurement method, etc.)?Thanks in advance!&
Hey, I am using the STM32G0B0VET (16MHz HSE) with a virtual com port over USB. The virtual com port is working fine but as a backup I would love to be able to let the user reflash the device. I was thinking of using the DFU for this since then the user would only need a standard USB cable (consumer electronics hopefully high volume). I exposed a button that can pull BOOT O high (small reprogram button you have to push). (Normally in the field updates are not needed but I would like to have this as a backup). Now I have the following problem when I boot the device (that is flashed) when pressing the button (keeping BOOT 0 high) my PC sees the virtual COM port and not the DFU device. It is thus running the usual code and not entering the bootloader. If I erase the STM32 with the ST link I can access the DFU just fine with the boot button. Does anybody have a fix for this? Best regard and thanks already for the help.
Hello There I have question regarding calibration of offset and cross talk for VL53L4CD / VL53L4ED.For my application i need to config Signal Threshold, Sigma Threshold, Timing Budget etc to other than sensor's default value, So, my question is should i do xtalk & offset calibration with sensor's default config? or i need to do calibration with my custom config? Regards
Hello, I am driving a motor using the STEVAL-SPIN3201. The code is generated via the mc workbench.When I test the programm, the motor behaves like that:The motor starts up slowly according to the start up procedure I chose in the workbench.Then suddenly the motor moves with fullspeed for some seconds.After this the motor slowes down to the desired speed. Now I am able to change this speed via the motor pilot. When I change the Kp and Ki value, I can reduce the duration of the "full speed periode". However, it is still there. Can you explain what is happening and why the motor moves to full speed for a short time? Thanks a lot for your help!Florian
I have one question regarding the HAL_FLASH_Program function. I use the HAL_FLASH_Program many times during the runtime of the firmware. I use it to store log, warnings and errors in the several flash pages. When the page is full and I must write into it I erase the page, obviously. However, at the very begining I also want to store the "reset cause" (an entry in the flash pages) of the last power cycle (switch on off). Was it a BOR, WWDOG, IWOG, PINRST, etc, etc,..? Unfortunately, I am unable to successfully use HAL_FLASH_Program with a HAL_OK. It seems as if HAL_FLASH_Program does not work at the very beginning of the firmware application... does it sound crazy? Could it be that this function needs some time to work. /** * @brief The function's role is to save the log data into the log page/s. */ mid_error_t flash_program_loop_2(const uint8_t * data_in) { HAL_FLASH_Unlock(); /** * first we check if the next position to writ
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.