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'm trying to make continuous TX CW signal on 868.1 MHz or 432.4 MHz with the nucleo stm32 WL55jc2 without success. I spend a lot of times but sometimes goes wrong.I'm looking for somebody who as experienced with SUBGHZ and ping-pong as my app is derivated from to help me to make it works.I can share the project if somebody could help.Thanks by advance Franck from France
Hello ST team,We are using the STM32WL5MOC6HTR module, which does not include the STSAFE-A110 secure element.However, in the STM32WL5MOC6HS variant, the PB8 pin is used to power the STSAFE chip (VDD_STSAFE).In our setup (with the HTR module), when we set PB8 high during testing, the flashing process (using ST-Link / STM32CubeProgrammer) fails or hangs.When PB8 is left floating or configured as input, flashing works normally.I want to understand:Why does driving PB8 high prevent flashing on the STM32WL5MOC6HTR module?Is PB8 internally connected or reserved for STSAFE even on the non-S variant?Should PB8 be kept floating or pulled low when STSAFE is not populated?Any hardware or reference design explanation would be very helpful.Thank you!Module: STM32WL5MOC6HTRObserved Behavior: Flashing fails when PB8 is driven high.
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. Please read this post: How to insert source code. Hello there, I have a simple one, I have run the exmaple project on camera dcmipp continous mode and snapshot mode for the stm32n6570 development kit, how, the image feed on the screen is blurred on the first run with out any edits, I have tried to play with the downsizing that is configured in the project in vain, hoping to get a clearer image.these are the default settings that I that come with the example DonwsizeConf.HRatio = 25656; DonwsizeConf.VRatio = 33161; DonwsizeConf.HSize = 800; DonwsizeConf.VSize = 480; DonwsizeConf.HDivFactor = 316; DonwsizeConf.VDivFactor = 253; if(HAL_DCMIPP_PIPE_SetDownsizeConfig(&hdcmipp, DCMIPP_PIPE1, &DonwsizeConf) != HAL_OK) { Error_Handler(); } if(HAL_DCMIPP_PIPE_EnableDownsize(&hdcmipp, DCMIPP_PIPE1) != HA
I’m working with an STM32G0 running ThreadX (Azure RTOS).The system UART is configured in circular DMA mode with an IDLE event interrupt for data reception.SymptomsIntermittently, after hundreds of successful receptions, the system enters HardFault_Handler.The fault always occurs at the same point in the code (on a C division instruction, inside a function unrelated to DMA).The register values at the HardFault are shown in Image 1.When it runs without triggering a hard fault, the registers are:xPSR = 0x01000000 and CONTROL = 2.When the hard fault occurs, these registers are:xPSR = 0x00000000 and CONTROL = 0.The failure does not depend on the received data.The thread stack (PSP) has sufficient space.I believe the intermittent HardFault is not related to the operation itself:If I modify the code—adding new instructions or removing code—sometimes it reproduces, and other times it still reproduces but in different parts of the code.QuestionWhat can I do to determine the root cause of this
Hello. I am using LVGL to open a USB camera and capture NV12 640*512 video at 30fps.I want to compress NV12 video to H264 using /dev/video1 hantro-vpu stm32mp-venc-enc and save the video to /mnt/sdcard/video.h264.I'm trying to configure /dev/video1 by looking at the kernel driver's stm32mp25_vpu_hw.c, but I can't seem to get it to set up.Below is the source section that has been set.typedef struct { int fd; FILE *outfile; void *out_buf[2]; void *in_buf_y[2]; void *in_buf_uv[2]; size_t in_len_y[2]; size_t in_len_uv[2]; size_t out_len[2]; int width; int height;} hantro_enc_t;void enc_close(hantro_enc_t *enc){ if (!enc) return; for (int i = 0; i < 2; i++){ if (enc->out_buf[i]) munmap(enc->out_buf[i], enc->out_len[i]); &nb
Hey everyone,I’ve been using the STM32F429IGT6 for an audio project, and I'm running into an issue with the ADC readings. When the system is idle, everything seems fine, but once the load increases, the readings start to fluctuate unexpectedly—particularly when using I2C.I’ve already tried adding decoupling capacitors and adjusting the wiring, but the issue still persists. Wondering if anyone has dealt with similar issues, especially related to power noise or grounding, and how they managed to stabilize the ADC?Any advice would be great!Thanks!
Hi,I would like to recreate the DCMIPP_ContinuousMode example but using the cubeMX to configure the MCU, I haven't found anything online to follow as example.Thanks.
Hey together, I have a question regarding changing the clock while running in XiP mode. Upfront everything works so far very well. On our STM32H750 we have a very simple bootloader. This bootloader configures the QSPI and the STM32H7 to run the appliction code in XIP. Therefore we configure the QSPI clock to use the HCLK3 in the bootloader. We use an external crystal 8MHz and the PLL as SYSCLK to generate the 240MHz for the HCLK3. Then we jump to the application code. The applicaiton code resets the System Clock Mux in the startup code calling "SystemInit ()" inside the system_stm32h7xx.c to use the HSI (64MHz) for SYSCLK. This results at first in a drop of external crystal signal as well as a clock drop of the QSPI Clock from 240MHz to 64MHz. Then we reconfigure in the application code, while running in XiP, the System Clock Mux to use the external crystal and the PLL. Going back to the 240MHz for the QSPI. So far this seems to work perfectly fine, as there is
Hello everyone,I’m using an STM32MP157F-DK2 board and trying to use one of the Cortex-M4 debugging features — ITM (Instrumentation Trace Macrocell).However, I’m receiving garbage values on the SWV console, and I’m not sure why.Here’s what I’ve done so far:Edited the int _write() function in syscalls.c to redirect output to ITM Enabled Serial Wire Viewer (SWV) in the debug configuration.Set the core clock frequency in the debugger to match the MCU clock (as configured in the .ioc file).These are the typical steps I follow to enable ITM output.Is there anything else required to get correct SWV output?Am I missing any configuration or initialization step specific to the STM32MP1 series?Thanks in advance for any help or insights!
As the title says.I am using STM32H523RCT6 with no RTOS (no ThreadX) and USBX in Standalone mode.The code is basically:MX_USB_PCD_Init();MX_USBX_Device_Init();HAL_PCD_Start(&hpcd_USB_DRD_FS); Which executes, but as soon as the USB_DRD_FS_IRQHandler is called, I run into a hard fault. The trace is:USB_DRD_FS_IRQHandler()HAL_PCD_IRQHandlerHAL_PCD_ResetCallback_ux_dcd_stm32_initialize_completeat/* Create the default control endpoint attached to the device.Once this endpoint is enabled, the host can then send a setup packetThe device controller will receive it and will call the setup functionmodule. */dcd -> ux_slave_dcd_function(dcd, UX_DCD_CREATE_ENDPOINT,(VOID *) &device -> ux_slave_device_control_endpoint);the USB_FNR register shows LSOF 0x3 as well as the LCK and RXDP bit set and the USB_ISTR has the bits ESOF, SOF, RST_DCON and SUSP set.Please help, I've already lost way too much time on this.
Hi everyone, I’m working with a custom made STM32F446ZET6 board that otherwise functions perfectly (all peripherals, flash programming, etc. work fine). The only thing that doesn’t is the ROM bootloader. I can’t get USB DFU or UART boot to respond no matter what I do. What I’ve verified BOOT0 = 1 (3.3 V) at reset NRST pulled high, no reset loops VDDUSB = 3.3 V, decoupled with 100 nF HSE = Abracon ABLS-8 MHz-12 pF, started with 18 pF load caps and lowered to 10 pF as I saw in a post here this might be the cause PA9 connected directly to VBUS (5 V) PA11/PA12 wired to USB-FS D−/D+ (verified routing and continuity) Board runs normal firmware from Flash with no issues What I’ve tried BOOT0=1, reset → USB never enumerates Tried UART boot (PA10 RX, PA9 TX, 115200 8E1) → no ACK, completely silent. Verified with ST-Link under reset: RDP = 0xAA (no protection) MEMRMP = 0x0, VTOR = 0x0 → seems like it’s still mapping main Flash, not System Memory. Jum
Hi,I'm exploring using UART idle interrupt on RX to signal to my application that data has arrived.I currently push data into a tx queue then start transmission. I rely on uart tx ISRs to check if there is any more data to send, then load up a DMA transfer.UART TE is enabled once when the UART is enabled. I then rely on DMA to do everything. This currently works very well.Can anyone suggest how I could squeeze and idle frame in? Ideally an idle frame will be inserted after each call to uart_dma_send, eg once per item in the transmit queue. My aim would be to keep my current transmit setup, where I can keep shoveling data into the transmit queue. Im using STM32F745. Probably I've missed something in the datasheet..TX currently looks like:void interface_uart_send_stuff(if_uart_t* p, uint8_t* stuff, uint16_t length) { tx_q_push(p, length, stuff); if (tx_state_is_busy()) { // TX already happening, just queue up more to send return; } // Start tx tx_q_dta_t tx = tx_q_popI(&p->
Hi follow can make offset calibration?Place the object 14cm away .Must be in a dark environment? follow can make Crosstalk calibration? Place the object 60cm away. my coverglass like follow,The measured distance seems very short. How can I solve this problem? follow is my read out data
I am trying to use one STM32M4 as TX, and another STM32M4 as RX,but RX can't receive the correct i2s data that TX transmits.TX transmits 16bits data by HAL_I2S_Transmit_IT(&hi2s2, i2s_dummy_buffer, 16);RX receives 16bits data by HAL_I2S_Receive_DMA(&hi2s2, i2s_received_buffer, 16); The results:1) If TX transmit 0,1,2,...,15:RX receives:[0] = 0xC000 [1] = 0x0000 [2] = 0x4000 [3] = 0x8000[4] = 0xC001 [5] = 0x0001 [6] = 0x4001 [7] = 0x8001[8] = 0xC002 [9] = 0x0002 [10]= 0x4002 [11]= 0x8002[12]= 0xC003 [13]= 0x0003 [14]= 0x4003 [15]= 0x80032) If TX transmits 16bits of 0xAAAARX receives 16bits of 0xAAAA3) If TX transmits a sin waveRX receives 16bits of unknown number The following is TX and RX's config:TX:RX: Let me know if you need more information,thanks!!!
Hello,In AN5967, it says:When VBAT is connected (VBAT = 3.0V)? will the oscillator (RTC) stop running if VDDA18AON is not present?There are several conflicts between the various documents... Can someone at STM update the docs?AN5967, RM6486, UM3300, and the STM32N657x0-dk development board schematics seem to contradict each other.... which one is correct regarding the SMPS configuration?
I am unable to control GPIO output pins with the H5 GPDMA. I am able to control GPIO with the F103 using this project...https://github.com/mnemocron/STM32_PatternDriver...where the DMA is much simpler. Section 3.7 of AN5593 (How to use the GPDMA for STM32 MCUs) doesn't provide much information on GPIO control, but does mention using memory-to-memory transfers. I have tried both memory-to-memory and memory-to-peripheral circular DMA transfers without success. Like the F103 example, I am using the TIM2 output compare CH1 as the request event for a DMA transfer. My scope indicates that TIM2 CH1 is toggling properly every millisecond, but no signal comes from the GPIO pins. I've tried myriad permutations of modes and requests/triggers with no success.Can someone please provide help or a link to a GPDMA project that controls GPIO? HAL_TIM_Base_Start(&htim2); for (int i=0; i < sizeof(pixelclock); i++) pixelclock[i] = 0; // the pixelclock
Our customer has requested a material declaration report for M93C86-WMN6P. We purchased 1,000 pcs from Avnet back in 2016. However, it appears that this part is now inactive, as I couldn’t find the part number listed under M93C86-W. Could you kindly provide the material declaration report for M93C86-WMN6P? Additionally, could you advise if there are any alternate parts available? Would M93C86-WMN6TP be a suitable replacement? M93C86-W | Product - STMicroelectronics Thank you for your assistance.
So new problem while trying to bypass non functioning SWD...Using a working NUCLEO_H723 I can use the STM32CubeProgrammer to access it via STLINK (internal and external) as well as via USB DFU after reset with BOOT0 high.From my reading of AN2606, once the bootloader has initialized, it cycles through the various options in sequence till it gets a connection (CAN first, then USARTx, I2Cx, SPIx, USB). The diagram indicates USB cable detection so I'm assuming as long as it isn't connected that the other peripherals will be checked.I'm unclear on it checks all the possibilities for each USARTx (and I2C, SPI) or just one of them ? The only readily accessible USART is UART3 on CN10 of the Nucleo so I've started with that. Tried using RTS/DTR for BOOT0 and reset control but can't get the timing/polarity correct so just holding BOOT0 high and tried both manual reset and a pulse from DTR. I can see a single 0x7F being sent but no reply, then one more 0x7F after 2 seconds before it times out an
Hi,every time I download the code from CubeIDE into the micro, a seemingly random file (every time a different one) opens up in the editor. More specifically it opens in the split editor area that is active when I press Run (i.e. left window or right window in the editor screenshot below).Furthermore it opens only system/library source and header files like stm32l4xx_ll_adc.h, stm32l4xx_hal_tim_ex.c and stm32l4xx_hal_gpio.c and not the source files I created.Any idea why and how to prevent it from doing that?Thank you
Is there any working project maybe on github 1024 x 600 RGB TFT ? Those screens are very popular all over the place. There is STM32F746G-DISCO with 480x272 TFT RGB. I have no problem to get it working. For bigger sizes since there is no working example from STM. I have a few custom boards and I cannot get them working. I followed the example for STM32F746G-DISCO with 480x272 to connect 1024x600 on a few chips which support LTDC (24 bit).I wonder what I might be missing.
Here is the code: void DMA_Init_SPI2(void *rxBuffer, void *txBuffer, uint16_t rxSIZE, uint16_t txSIZE) { RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN | RCC_AHB1ENR_DMAMUX1EN; // DMA1 Channel 1 для SPI2_RX (Peripheral-to-Memory) DMA1_Channel1->CCR = DMA_CCR_MINC | // RAM++ DMA_CCR_TCIE | // IRQ_EN DMA_CCR_PSIZE_0 | // 16-bit DMA_CCR_MSIZE_0 | // 16-bit DMA_CCR_CIRC ; DMA1_Channel1->CNDTR = rxSIZE; DMA1_Channel1->CPAR = (uint32_t)&(SPI2->DR); DMA1_Channel1->CMAR = (uint32_t)rxBuffer; DMAMUX1_Channel0->CCR = 12 ; // SPI2_RX (Table 91 rm440) // DMA1 Channel 2 для SPI2_RX (Memory to Peripheral) DMA1_Channel2->CCR = DMA_CCR_MINC | // RAM++ DMA_CCR_DIR | // RAM -> SPI DMA_CCR_PSIZE_0 | // 16-bit DMA_CCR_MSIZE_0 // 16-bit ; DMA1_Channel2->CNDTR = txSIZE; DMA1_Channel2->CPAR = (uint32_t)&(SPI2->DR); DMA1_Channel2->CMAR = (uint32_t)txBuffer; DMAMUX1_Channel1->CCR = 13; // SPI2_TX (Table 91) NVIC_EnableIRQ(
Subject: STM32H563RIT6 I2S1 Not Receiving Data from PCM1804 in Slave Mode (Polled) Description: I'm using an STM32H563RIT6 MCU with an 8 MHz external crystal. The I2S1 peripheral is configured in slave mode (receive only) and connected to a PCM1804 ADC chip, which is set as the I2S master (transmit only). The PCM1804 outputs audio in the following format: 32 kHz sampling rate, stereo, 24-bit data packed in a 32-bit frame. Using a logic analyzer, I confirmed that the I2S signals from the PCM1804 (I2S_WS, I2S_BCK, I2S_SDO) are correct and properly aligned. The connections are as follows: I2S_WS → PA4 I2S_BCK → PA5 I2S_SDO → PA6 I'm testing I2S data reception with the simplest polling-based code, but the STM32H563RIT6 fails to receive data correctly. During debugging in the Start_I2S1_Polling function, the temp_buffer array (used in HAL_I2S_Receive) contains all zeros, which does not match the data captured by the logic analyzer. Below is my code. Could you help identify what I'm
Hello, Is there a way to set up the Sink PDO to take in a variable voltage? I would like to set up PDO2 5-20V 3AmpsPDO3 5-20V 5Amps My plan is to use the Power Ok GPIOs to determine how much current I have and do some down stream current limiting. Thanks
Hello Community, I have tried to configure TIM8 in CubeMX (Version 6.15.0) with device STM32N645B0 (VFGBA198). But TIM8 is not available in the Timers Group. All other timers are displayed, only TIM8 is missing. Also trying to activate TIM8 over the pin directly does not work. Any ideas? Best regards Thomas
I am looking for a .ioc file to jumpstart a project using GFX02Z with a nucleo-f767zi board.Can anyone help?Thanks in advance!sesh
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.