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'm spec'ing a system where we would need to interface 4x eight-channel ADCs with an MCU for audio capture. Simultaneous capture on all channels is an important requirement.Currently we are considering the STM32H750VB MCU which has 4x SAI interfaces, and the Analog Devices AD7768. All ADCs would be running at the same time, synchronized, and the data from them would be DMAed into ring buffers.I'm not familiar with the ST SAI interface. It seems like they can support 8 channels in TDM mode (which that ADC supports), but I'm not sure?Can this be done with the STM32H750VB?
Hello, I have a query about how HAL_UART_Receive_DMA and HAL_UARTEx_ReceiveToIdle_DMA work?For my application there is a varying payload size, so I am wondering how would I trigger the HAL_UART_Receive_DMA(&huart3, rx_buffer, 4096, 0xFFFF); interupt? As from my understanding it would be waiting for all 4096 bytes of data which won't arrive unless a different frame was sent.Whereas HAL_UARTEx_ReceiveToIdle_DMA(&huart3, rx_buffer, 4096); triggers once the serial port stops communicating, however it stores the received data in 512 byte chunks, which has proven difficult to access when generating a LUT from the rx_buffer.If anyone can shed some insight over how these interrupts work? And how to make them applicable for a variable payload would be great.
I have implemented a USB Audio 2.0 device that receives audio from the PC host (speaker endpoint) and loops it back (microphone endpoint). The PC correctly recognizes the device, and audio playback works, but I'm experiencing unexpected low-frequency noise.Specific symptom: When playing a pure 350Hz sine wave from the PC, the device receives not only the sine wave but also significant noise content from 0Hz to 350Hz. This noise is audible in the loopback audio sent back to the host.The audio data flows through a simple memory copy without any DSP processing:ux_utility_memory_copy(write_buffer, read_buffer, copy_len); ux_device_class_audio_write_frame_commit(g_mic_stream, copy_len);I also perform FFT analysis for visualization (TouchGFX), and the spectrum confirms the low-frequency noise is present in the received audio data itself, not introduced by my processing.I have tried to disable the microphone endpoint and keep just the speaker endpoint but the issue persists.Any guidance on di
I am building an STM32H7 project (STM32H753) using CMake + STM32CubeMX and GCC.The firmware builds and runs correctly, but STMStudio fails to load debug symbols with the following error:DWARF error. Wrong version in compilation unit header (is 5, should be 2,3 or 4) Even when -g is used, the error persists. I set the following flags on CMakeLists:set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gdwarf-4") set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -gdwarf-4") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gdwarf-4") So, I appreciate any advice.
Hi,I'm trying to set an interupt in case of a spike, or in case of magnitue of my ISM330IS>some const - but cannot find anywhere the interupt configuration.I'm trying to get ISPU code.thanks!
We are developing an automotive application that displays vehicle acceleration and deceleration through an LED array. We initially only utilized the accelerometer function of the ASM330LHHTR inertia module but were getting inconsistent results on inclines and declines. We fused the 3D gyro to help compensate for this inconsistent results but have been unsuccessful. Is there an FAE we can speak with to help resolve our issues?
I am using NUCLEO-U083RC with X-NUCLEO-IKS4A1. I read the data from LIS2DUXS12 which is on X-NUCLEO-IKS4A1. The accelerometer data is in 8 registers. OUT_X_L, OUT_X_H, OUT_Y_L, OUT_Y_H, OUT_Z_L, OUT_Z_H.I am trying to understand the instructions in the document AN5909 page 23. The example shows:Get the raw data from the sensor:OUT_X_L: 61hOUT_X_H: FDhOUT_Y_L: 73hOUT_Y_H: 00hOUT_Z_L: F0hOUT_Z_H: 42hDo the register concatenation (useful data on 14 bits, last 2 bits must be ignored):(OUT_X_H << 8) + (OUT_X_L & 11111100b) = FD60h [-672 in two’s complement](OUT_Y_H << 8) + (OUT_Y_L & 11111100b) = 0070h [+112 in two’s complement](OUT_Z_H << 8) + (OUT_Z_L & 11111100b) = 42F0h [+17136 in two’s complement]Apply the sensitivity and obtain the value in mg (0.061 mg/LSB at full scale ±2 g):X: -672 * 0.061 = -41 mgY: +112 * 0.061 = +7 mgZ: +17136 * 0.061 = +1045 mgI have the following question: why is the two's compliment for FD60h ca
Dear all,I have extracted the XSPI_PSRAM_MemoryMapped for STM32N6570-DK from CubeMX without modification and created cmake code to integrate it into VSCode.Compiling it works, but the linker fails:simon@europa:~/STM32Cube/Example/XSPI_PSRAM_MemoryMapped/FSBL/build$ cube ninja [1/1] Linking C executable XSPI_PSRAM_MemoryMapped_FSBL.elf FAILED: [code=1] XSPI_PSRAM_MemoryMapped_FSBL.elf : && /home/simon/.local/share/stm32cube/bundles/gnu-tools-for-stm32/14.3.1+st.2/bin/arm-none-eabi-gcc -mcpu=cortex-m55 -mfpu=fpv5-d16 -mfloat-abi=hard -mcmse -Wall -fdata-sections -ffunction-sections -O0 -g3 -mcpu=cortex-m55 -mfpu=fpv5-d16 -mfloat-abi=hard -mcmse -T "/home/simon/STM32Cube/Example/XSPI_PSRAM_MemoryMapped/FSBL/STM32N657XX_AXISRAM2_fsbl.ld" --specs=nano.specs -Wl,-Map=XSPI_PSRAM_MemoryMapped_FSBL.map -Wl,--gc-sections -Wl,--print-memory-usage CMakeFiles/STM32_Drivers.dir/home/simon/STM32Cube/Example/XSPI_PSRAM_MemoryMapped/Drivers/BSP/STM32N6570-DK/stm32n6570_discovery.c.obj CMa
what am i doing wrong?
Hi Team,We I have shortlisted the STM32U535RET6QTR microcontroller for our microwave oven control panel. The MCU includes an integrated Touch Sensing Controller (TSC), and our design requires 8 capacitive touch keys.Before finalizing the component selection, we require clarification on the following points to ensure compliance with home‑appliance safety and EMC standards:1.Is the STM32U535RET6QTR suitable for microwave‑oven capacitive‑touch applications?2.Does ST provide any dedicated capacitive‑touch sensing IC, apart from the built‑in TSC in STM32 MCUs?3.What are the advantages of using STM32U535RET6QTR (with integrated TSC) compared to a dedicated touch‑sensing chip?4.If we use the integrated TSC in STM32U535RET6QTR, what hardware challenges may occur?5.What software‑related challenges can arise with the integrated TSC?6.Can STM32U535RET6QTR meet home‑appliance certification requirements such asIEC 60335‑1 / IEC 60730‑1 Class‑B?7.For an 8‑key capacitive touch panel, what does ST rec
Hello ST Community,I’m working on bringing up audio capture using the X-NUCLEO-CCA02M2 microphone expansion board with the NUCLEO-N657X0-Q (STM32N6), and I’m struggling to obtain any audio data.According to the CCA02M2 documentation, the board is compatible with STM32 Nucleo boards via the ST-Morpho connector and supports acquisition through I²S, SPI, DFSDM, or similar digital audio peripherals. However, I have not been able to find any example, tutorial, or application note specifically targeting STM32N6 devices.My goal is to run an Edge Impulse audio model on the STM32N6.I was able to successfully run inference using manually provided raw features from the example in this repository:https://github.com/edgeimpulse/example-standalone-st-stm32n6So the ML pipeline itself is working correctly.My difficulty is specifically with capturing audio from the X-NUCLEO-CCA02M2, due to lack of clear documentation or examples for STM32N6 boards.My setup:• Boards connected pin-to-pin through ST-Morph
Hi.I want to use NUCLEO-WL55JC with 32MHz crystal, not TCXO. So i do following steps according to UM2592(User manual of STM32WL Nucleo-64 board)No C30 and no C38 as those capacitors are integrated into the STM32WL MCU.SB20 OFF in order not to supply the TCXOC31 OFF in order not to have a 32 MHz signal coming from the TCXOR39 and R40 ON to connect the X3 crystal to the STM32WL MCU I use LoraWAN_end_node project in STM32Cube_FW_WL_V1.4.0.So i do following steps in configuration in CubeMX (also attach clock configuration)Select HSE as Crsytal/Ceramic Resonator instead of TCXOIn stm32wlxx_nucleo_radio.c, BSP_RADIO_IsTCXO function returns RADIO_CONF_TCXO_NOT_SUPPORTED instead of RADIO_CONF_TCXO_SUPPORTED. But after that, NUCLEO board give me message MAC txTimeOut instead of success tx process. While i use TCXO, there is no problem to send tx and also connect to LoraWAN. What can i do to use standard crsytal instead of TCXO? Be
Hello ST Community,I am facing this issue developing firmware on the NUCLEO-N657X0-Q (STM32N657).My architecture involves a standard FSBL that jumps to a main Application.Application:Interfacing with a Adafruit BNO085 IMU via UART (3 Mbps) using the CEVA SH2 driver, adapting the official CEVA SH2 example code of this repository to my Nucleo. The driver uses USART2 with GPDMA1 Channel 0* (Circular Buffer for RX).Setup Details:MCU: STM32N657X0Peripheral: USART2 (3 Mbps) + GPDMA1 Channel 0 (RX Circular Buffer).Timer: TIM2 (used for microsecond timestamping in the driver).Cache: Disabled (to rule out coherency issues).Symptoms:1. FSBL: If I initialize and run the sensor logic inside the FSBL, it works perfectly.2. Application: If I move the exact same logic to the Application (after the jump), the code hangs inside the driver's code.3. Breakpoint fixes the problem: In the Application, if I place a breakpoint at the beginning of the shtp_service() function (called period
Are there any plans to make a Linux version of the Motor Control Workbench? @cedric H mentioned 4 years ago that it is almost ready.
Hi everyone,I’m reaching out because I’m having trouble setting up a USB HS CDC (Communication Device Class) using the internal PHY, without VBUS sensing.I use STM32H7S3I8T6.My program gets stuck in the following loop before timing out: /* Core Soft Reset */ USBx->GRSTCTL |= USB_OTG_GRSTCTL_CSRST; do { count++; if (count > HAL_USB_TIMEOUT) { return HAL_TIMEOUT; } } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_CSRST) == USB_OTG_GRSTCTL_CSRST); return HAL_OK; }Despite searching through various forum topics, I can't seem to get it to work.Here is my STM32 configuration:Clock : USB Clock : Power Regulator :USB HS Configuration :USB_DEVICE Configuration :Here is my configuration.I would be very grateful for any help you can provide.Thanks in advance,Paul
Hello,I am testing a demo of my TSD TSS012004A-AD board.It has 36KB internal RAm and 256KB internal FLASH.My configuration on touchGFX like below:And my linker result is like below:As you can see there is still %55 empty on my internal FLASH and very little SPI_FLASH is used, I would like to use only internal memory. Why this 13388B is not used on FLASH, even I force to use internal flash section on touchGFX settings. Thank you,
Hey, I am using the RK043FN66HS-CTG LCD touchscreen (480 x 272 resolution) and have used the GT911 drivers found at:GitHub - DiveInEmbedded/GT911-Touch-driver: Simple and ready to use touch driver for Goodix GT911I have a custom STM32H743IIT6 PCB.It is currently recording coordinates incorrectly in the y- axis. Bottom right hand corner should be 480,272 (X,Y) roughly in landscape configuration. I am getting ~440,180.I have gone through the GT911 Register Datasheet but cannot seem to figure out why the readings are still off.Any suggestions why I am getting these issues. I understand the config version register has to be increment by one with each set of GT911 settings. My GT911 Config is here: static uint8_t GT911_Config[] = { 0x89, // Config version 0xE0, 0x01, // X = 480 0x10, 0x01, // Y = 272 0x05, // 5 touch points 0x40, // ModuleSwitch1 (landscape, no flip) 0x20, 0x01, 0x08, 0x28, 0x05, 0x50, 0x3C, 0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Title edited to flag that a Blue Pill is being used.Info : [STN32F103c8Tx.cpu] Examination succeedInfo : starting gdb server for STN32F103C8Tx.cpu on 3333Info : Listening on port 3333 for gdb connectionsError:[STM32F103C8Tx.cpul clearing lockup after double fault Polling target STM32F103C8Tx.cpu failed, trying to reexamine Infò : (STM32F103C8Tx.cpu] cortex-M3 rlp1 processor detectedInfo : [STN32F103c8Tx.cpuj target has 6 breakpoints, 4 watchpointsInfo :[STM32F103C8Tx.cpuj Examination succeed Info : accepting 'gdb' connection on tcp/3333Info : device id = 0x20036410Info :flash size = 64 KiBInfo : accepting 'gdb' connection on tcp/3333[STM32F103C8Tx.cpu] halted due to debug-request, current mode: Handler HardFaultXPSR: 0x21000003 pc: 0xfffffffe msp: 0x200008be[STN32F103C8Tx.cpu] halted due to undefined, current mode: Thread XPSR: 0x61000000 pc: 0x2000003a msp: 0x200008b0.Error: Fail reading CTRL/STAT register. Force reconnectInfo : dropped 'gdb' connectionError: Fail reading CTRL/STAT re
Unable to run the program in the MCU. When I try to execute the program in my Nucleof401re board, The IDE says it is not able to detect the board. I'm literally struck here just to blink an led. I kindly appreciate any possible solutions. But do explain it in simple terms as I'm new to this kind of stuffs.
Hello,I'm working on a comprehensive project where I need to implement low-power modes without using a sequencer. However, nothing works after MX_APPE_Init. How can I deinit it?I am using MAC 802.15.4 /* Init code for STM32_WPAN */ MX_APPE_Init(NULL); HAL_Delay(5000); EnterRTCStandbyMode(10000); /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ MX_APPE_Process(); /* USER CODE BEGIN 3 */ tagReadResponseSend(); } To summarize, I want to know how to deinit MX_APPE_Init. Yes, there's a sequencer, and it works perfectly, but I want to disable MX_APPE_Init and use EnterRTCStandbyMode for sleep modes.
Hi Everyone,I'm using the P-NUCLEO-WB55 board and seeing an an issue when attempting an OTA firmware using the STBLESensorClassic mobile app running on iOS device. Execution is blocked waiting for the "FLASH_FLAG_CFGBSY" to clear in FLASH_WaitForLastOperation() in stm32wbxx_hal_flash.c. Please see screenshot below of call stack and location. SetupCubeIDE v1.14.1STM32Cube_FW_WB_V1.21.0ST BLE Sensor Classic 4.20.1 BackgroundIf I use the out of the box OTA example "BLE_Ota" on the P-NUCLEO-WB55 board the OTA update works fine. However, this example uses the sequencer which is not representative of our end application. We are using FreeRTOS in our end application. In an effort to create an application that is somewhat representative of our end application I've combined/merged the "BLE_Ota" & "BLE_HeartRateFreeRTOS" examples into a single project. With this merged project running on the P-NUCLEO-WB55 board the issue is reproducible. I've attached th
G'day Brains Trust,Does anyone know where ST record the export classification for their products?Specifically looking for the ECCN for STM32G474RET3.RegardsGTC-BH
I have flash update operations working fine on an STM32U535 with 512kB flash, but am getting an error on a 256kB device. Driving into the debugger, I find it coming out of the FLASH_WaitForLastOperation HAL routine, specifically after: reg_sr = IS_FLASH_SECURE_OPERATION() ? &(FLASH->SECSR) : &(FLASH_NS->NSSR) which returns 0b10001000, which winds up being the FLASH_NSSR_PROGERR, and FLASH_NSSR_PGSERR. I am not sure why. Code segment enclosed here: const uint32_t NVRAM = 0x0803E000; FLASH_EraseInitTypeDef EraseInitStruct = {0}; HAL_StatusTypeDef hfError; uint32_t PAGEError = 0; // To hold any page error code uint32_t pageNumber = (NVRAM - 0x08000000) / 0x2000; uint32_t progAddress = NVRAM; uint64_t *pSource = (uint64_t)&memory[0x1800]; // 1800 uint32_t quadWordCount = 0xFF / 16; if (HAL_FLASH_Unlock() != HAL_OK) { printf("Cannot erase FLASH memory.\n\r"); // Handle error, e.g., print error message return; } // Clear
I am using stm32cubeprg-win64-v2-21, and I am experiencing an error.After launching the program and clicking Open File, the Open File window appears briefly, and then the program closes unexpectedly.I uninstalled it and tried using a previous version of STM32CubeProgrammer, but the same issue occurs. Rebooting the laptop does not resolve the problem either. I have captured a video of the issue and attached it.
CAN Bus Error and Reception Not Working – STM8AF5268Hi,I am working with STM8AF5268 and implementing CAN communication using the STM8S/A Standard Peripheral Library.Hardware SetupMCU: STM8AF5268CAN Transceiver: SN65HVD1050CAN Analyzer: Waveshare USB-CAN-FDBaud rate: 100 kbpsTermination120Ω across CANH and CANL at STM8 sideUSB-CAN-FD termination enabledMeasured ≈ 60Ω across CANH–CANLSN65HVD1050 VCC = 5V (verified).Common ground connected between STM8 board and analyzer.Clock Configuration CLK_DeInit(); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); CLK_PeripheralClockConfig(CLK_PERIPHERAL_CAN, ENABLE); CAN Initialization CAN_Init( CAN_MasterCtrl_AllDisabled, CAN_Mode_Normal, CAN_SynJumpWidth_1TimeQuantum, CAN_BitSeg1_11TimeQuantum, CAN_BitSeg2_4TimeQuantum, 10 // Prescaler ); CAN Transmit Code uint8_t test_data[8] = {0x22,0x33,0x44,0x55,0x56,0x66,0x77,0x66}; CAN_Transmit( 0x321, CAN_Id_Standard, CAN_RTR_Data, 8, test_data );
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.