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
Does the STM32N6570-DK board support XSPI/OSPI interfaces for communication with external peripherals, or are these interfaces limited only to internal or external memory devices?For example, if there is a Device that supports OSPI/XSPI for communication, is it possible to connect the STM32N6570-DK board to such a device to enable data exchange?Could you please provide a clear explanation of the capabilities and practical use cases of the OSPI/XSPI interface on the STM32N6570-DK board?
I have enrolled the gateway and the end node of my PNUCLEO lrwan 3 on Loriot server, but when I view the boot log on my Terra Term terminal, I observe that the end node does not join the server, returning JOINED FAILED.I made sure the end node and the gateway are configured to the same frequency - EU433I also made sure I used the correct details like the dev EUI, APP EUI amd AppKey from the end node to connect to the server, what could be the cause of this JOIN FAILED.
I am trying to get the CAN Loopback up and running on my STM32L431KCU (CAN1), I have tried to follow the: Guide to CAN (bxCAN/CAN2.0) configuration in Loop back mode on STM32 MCUs. But I am getting stuck in the "HAL_CAN_Start()" function where its waiting for the acknowledgement: /* Wait the acknowledge */ while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U) { /* Check for the Timeout */ if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) { /* Update error code */ hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; /* Change CAN state */ hcan->State = HAL_CAN_STATE_ERROR; return HAL_ERROR; } } I then created a new project following the CAN loopback project listed here to get a working project and around my issue: Solved: CAN bus doesn't work in loopback mode - STMicroelectronics Community Using the same MX CAN config, APB1 of 80MHz, example program, and I still run into being stuck in the "HAL_CAN_Start()". I am using STM32CubeIDE 2.0
Hello,here the exit of my (extended)initialization prodecure for ADC of STM32U535 running at 3.3v and 160 Mhz. Before setting ADC_CR_ADSTART, without the small delay or with the delay in line 14 and the limit for i smaller "6" like here "5" in the code, ADC_CR_ADSTART stays high and the programm keeps in the while (ADC1->CR & ADC_CR_ADSTART) loop line16/17. __DMB() is not replacement for the delay.Is the needed delay some artefact of my setup or some requirement that I do not find/oversee in RM0456? ADC1->CR |= ADC_CR_ADCAL; /*8*/ while (ADC1->CR & ADC_CR_ADCAL) { __NOP(); } __DMB(); ADC1->CR &= ~ADC_CR_ADCALLIN; __DMB(); const uint8_t channel = 19U; AdcSetRegularSequence(ADC1, 1U, &channel); ADC1->CR |= ADC_CR_ADEN; while (!(ADC1->ISR & ADC_ISR_ADRDY)) { __NOP(); } for (volatile int i = 0; i < 5; i++) {} ADC1->CR |= ADC_CR_ADSTART; while (ADC1->CR & ADC_CR_ADSTART) { __NOP();
Hi all, our product, used in industrial traction, uses an STM32F407 MCU. In certain conditions, very hard to replicate, the MCU stucks and the watchdog does not reset the MCU. It seems completely blocked. We're suspecting there are some EMC issue on certain brushed motors used the truck but it is not under our control. After we remove the power supply of the board and give back the supply, the board starts to work again. Someone suggest me some latchup phenomena and I think it could be a possible explanation. Now: how can I find what is the pin (or what are the pins) susceptible to the EMI? There could be some traces the phenomena leaves on the MCU? Thanks!
Hello all,We are testing LPUART wake-up from Stop 2 mode using the STM32CubeU0 LL example:STM32Cube_FW_U0_V1.2.0/Projects/NUCLEOU083RC/Examples_LL/LPUART/LPUART_WakeUpFromStop2_InitWe made a minimal modification to the example:Replaced LPUART1 with LPUART2 Used the corresponding GPIO pins for LPUART2 (PB10,PB11)Configuration otherwise unchanged (same clock source, wake-up on RX, interrupt-based RX)Observed behavior on NUCLEO-U083RCAfter programming the board using STM32CubeProgrammer in hardware reset mode, the example works correctly:MCU enters Stop 2RX activity on LPUART2 wakes the system as expectedHowever, after disconnecting and reconnecting the power supply LPUART2 no longer wakes the MCU from Stop 2RX data arrives on the pin, but no wake-up occursIf we again connect and disconnect the programmer (in hardware reset mode) the system starts working normally again, wake-up from Stop 2 via LPUART2 is restoredAdditional observationsUsing LPUART1 instead of LPUART2,
Hello ST team,I am studying the flash security mechanisms (RDP, WRP, PCROP) on STM32L476RG and I understand how to configure Option Bytes using STM32CubeProgrammer or firmware.What I am trying to understand is the hardware-level enforcement flow of Option Bytes:• During reset / power-up, which hardware blocks read the Option Bytes?• How are these values propagated to the Flash controller and debug access logic?• At what point relative to CPU reset release are these protections enforced?I understand that enforcement happens before user firmware execution, but the reference manual does not describe the internal sequence in detail.Could you please clarify (at a high level) how Option Bytes are latched and enforced by hardware during the boot/reset sequence on STM32L4 devices?Thank you.
I just installed CubeIDE 2.0.0 on Ubuntu 24.04 (finally!). However I cannot launch it (I do get the initial workspace selection popup, but after selecting "Launch" I get this error):$ /opt/st/stm32cubeide_2.0.0/stm32cubeide_wayland Could not create GBM EGL display: EGL_NOT_INITIALIZED. Aborting...A little bit of poking around on Google suggests that installing libnvidia-egl-wayland1 should fix this issue, however on my system libnvidia-egl-wayland1 is already installed:$ dpkg -l | grep libnvidia-egl-wayland1ii libnvidia-egl-wayland1:amd64 1:1.1.13-1ubuntu0.1 amd64 Wayland EGL External Platform library -- shared libraryii libnvidia-egl-wayland1:i386 1:1.1.13-1ubuntu0.1 i386 Wayland EGL External Platform library -- shared library I have tried rebooting a couple of times but I keep getting the same error. Does anyone know how to fix this?
Hi,I'm designing a custom PCB and I'll be using a VNQ9080AJ to drive 4 inductive loads (hydraulic valve spools).Is the protection diode in the datasheet sufficient for that application?The device will drive up to 28 VDC ~3.5 to 5 amps inductive loads.I need to know if I need to add external flyback diodes.Thanks!
SOMETIMES (not always), when i try to debug (and only when i try to debug, run does its job well) with STM32CubeIDE my Riverdi board, i encounter the "Could not verify ST device! Please verify that the last version of the GDB-server is used for the connection" error. It happens right afterLoading RTOS driver... ThreadXConnecting to GDB server 127.0.0.1 on port 61234 ... ConnectedListen for GDB connection on port: 60000 ... Connected.if this helps.Downloading code with run is always fine, and sometimes the debug option works, but not always. It is really annoying to rely on luck to make the *** thing work. I tried unplug-replug. The board is definitly not counterfeited, same goes for the ST-Link.
I made a support pack for better support of CAN connections.But there is no possibility to create a "Platform Setting" for CAN connections I tried to edit the "Modes.xml" manually. Than the PackCreator shows the correct IP, but STM32CubeMX doesn't accept it. Additional: if I create a not usable platform setting there will be "unsovlable" warning.
HelloI am currently developing a quadruped robot using a NUCLEO-H753ZI. My setup involves a mix of Dynamixel AX-12+ (UART3, 1Mbps, Protocol 1.0) and MX-series motors (UART6, 2Mbps, Protocol 2.0) using an SN74LS241N transceiver.The Problem:UART3 (AX-12): Works perfectly at 1Mbps. This confirms my basic transceiver logic and wiring are functional.UART6 (MX-Series): No response at all. I’ve tried downgrading the MX motors to 1Mbps and using Protocol 1.0 to match the AX-12, but still nothing.Technical Context & MPU Setup: To provide more context, I have implemented an MPU configuration primarily to handle IMU sensor data via DMA. I wanted to ensure cache coherency for the IMU data buffers.However, I am now concerned that this MPU/Cache setup might be interfering with my UART6 communication. Since the MX motors on UART6 require much higher timing precision (especially at 2Mbps), I suspect the D-Cache or MPU regions might be causing issues with the UART TX buffers, even though I'm curren
Hi I have been testing secure function calls from non-secure world in STM32U575 - TrustZone Enabled environment.I have a LED_Port which is in secure world (secure peripheral). I have implemented a toggle function in secure project - secure_nsc.c/hCMSE_NS_ENTRY void SECURE_BlinkBlueLED(void) {...}I can be able to compile without any issues:Here are some linker details:.....................................I verified the map files as below.......................Now I am calling this function from non-secure project: It went to Hard Fault as it calls original function which is in the secure world.How to call veneer instead of direct function?Any help?
I am trying to build the basic LED Blink on the STM32-N6570-DK , since i have build the code and try to run with the default settings it ends up with the following problem , whats the reason and how to solve this ?
Hello Everyone,I am currently using LPUART2 for communication between an MCU (STM32U031) and an MPU (Application Processor).Configuration parameters:Baud rate: 9600Stop bits: 1Parity: NoneData bits: 8Description:Data exchange between MCU and MPU works perfectly when both devices are operating in normal power mode (i.e., not in sleep or stop modes). However, I am facing an issue when both MCU and MPU wake up from sleep/stop mode. After wake-up ,The MCU is unable to receive data from the MPU, even though the MPU continues transmitting data. No IRQ handler is triggered on the MCU side.Additional Details:I deinitialize the LPUART before entering sleep/stop mode.I reinitialize it immediately after wake-up.Scenarios Tested:Only MPU enters sleep (MCU remains active): After MPU wake-up, communication works perfectly.Both MPU and MCU enter sleep: After wake-up, communication fails (MCU doesn’t receive data).Observation:It seems that the issue is related to LPUART behavior du
For the microcontroller STM32H562IIT6, does it support code execution from External flash(Xip)? Also does it support Quadspi interfacing in given Octospi lines?
Is the flash dual-BANK feature of H563 enabled by default? How to switch banks
I select a new project and select the STM32L100C6U6A. STM32CubeMX says it has 4 kBytes of RAM.I generate the project for EWARM.But when I generate the project for EWARM it puts stm32l100xba_flash.icf file in the project and that files says RAM is 16384 bytes.And the datasheet for STM32L100C6U6A says 4 kByte.Is this a bug in STM32CubeMX?My application still seems to run without errors. IAR reports 9511 bytes of readwrite data memory used.Why does it still work? Is the datasheet wrong and this device is actually delivered with 16 kBytes RAM?
I have been trying to add freeRTOS to simple LED - TrustZone enabled project (default LED project). I just followed the instructions as given here: How to use STM32U5 with FreeRTOS™ in tickless mode - STMicroelectronics Community This instruction shows enabling X_CUBE-FREERTOS for NS but this gave me the following errors: So, I enabled for both, secure and non-secure versions in Cube MX This solved my previous errors but code hang in HAL_GTZC_MPCBB_ConfigMem() [Note: before enabling RTOS I did not see any issues in calling this function] Any suggestions?
Hello,I was trying to implement extended calibration for ADC1 on my STM32U575 according to RM0456 Rev 5. I have a revision ID 0x3001 chip which should support extended calibration. The chip would hang very badly (can no longer connect with debug probe!) after step 6 ("Set the LATCH_COEF bit"). I took a look at the HAL code in stm32u5xx_hal_adc_ex.c and it is doing a few things differently:Using DMB instructions between setting CALINDEX and CALFACT and between setting CALFACT and setting LATCH_COEF.Preserving the low-order 8 bits of CALFACT when writing 0x03021100 to the register.When I changed my code to do those two things the ADC now completes calibration properly and doesn't hang my debug connection.It would be helpful if the RM could be updated accordingly!Thanks,TG
hiim trying to design ADC module with STM32L452.in datasheet table 77, t_s must be 0.03125us - 8.00625us when f_ADC is 80MHzbut in table 78 the range of sampling time is 32.25ns - 8006.75ns.isnt it must be 8006.25ns?
Can the STM32G031Y8Y6TR be subjected to ultrasonic cleaning after being mounted on the board? Are there any internal structures that do not allow ultrasonic cleaning?1. **Cleaning agents**: ST-240KKA or pure water2. **Temperature**: 55°C or below3.**Duration**:Within 6 minutes4.**When using ultrasonic cleaning**:*Frequency: less than 45 kHz
Dear ST Support Team,I am working with the STEVAL-ESC001V1 evaluation board and a drone motor listed at the following link:https://www.dys.hk/product/D2826.html RPS for power supply given directly to ESC power pins of 12V and 2A current.My objective is to run this motor using ST MC Workbench software version 6.4.1. I would like to confirm whether any additional hardware, such as an STM32 development board, is required in order to operate the motor with this setup.During system configuration in MC Workbench, I created a new project and selected STEVAL-ESC001V1 for the inverter section and Bull Running BR2804-1700KV for the motor section. However, when I later attempted to edit the project, the motor selection options displayed only two types of PMSM motors. Could you please clarify whether MC Workbench supports only PMSM motors? The motor I am using is a BLDC motor, as specified above.Additionally, I would like to inquire whether an example project for STEVAL-ESC001V1 is available
Zephyr RTOS 4.3.I am trying to get this sample working on my STM32 Nucleo F767ZI board:zephyr/samples/drivers/uart/async_api/I created an overlay file.nucleo_f767zi.overlay dut: &usart3 { dmas = <&dma1 2 STM32_DMA_PERIPH_TX>, <&dma1 3 STM32_DMA_PERIPH_RX>; dma-names = "tx", "rx"; }; &dma1 { status = "okay"; }; Building and running the sample I get the following output: *** Booting Zephyr OS build v4.3.0-929-g1d6e0d533a81 *** [00:00:05.000,000] <inf> sample: Loop 0: Sending 3 packets [00:00:05.000,000] <err> uart_stm32: Tx buffer should be placed in a nocache memory region [00:00:05.000,000] <err> sample: Unknown error (-14) [00:00:05.000,000] <err> uart_stm32: Tx buffer should be placed in a nocache memory region [00:00:05.000,000] <err> sample: Unknown error (-14) [00:00:05.000,000] <err> uart_stm32: Tx buffer should be placed in a nocache memory region [00:00:05.000,000] <err> sample: Unknown error
The STM32N6 reference manual shows that IC18 drives the CSI2Host and CSIPHY IP blocks at a maximum frequency of 200 MHz. CubeMX generates this clock configuration code but does not show the clock path in the clock configuration window. Additionally, it does not provide any error checking and will allow IC18 to be configured above 200 MHz.Clock tree diagram:Maximum clock rate spec:CubeMX generated code in HAL_DCMIPP_MspInit:PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_DCMIPP|RCC_PERIPHCLK_CSI; PeriphClkInitStruct.DcmippClockSelection = RCC_DCMIPPCLKSOURCE_IC17; PeriphClkInitStruct.ICSelection[RCC_IC17].ClockSelection = RCC_ICCLKSOURCE_PLL4; PeriphClkInitStruct.ICSelection[RCC_IC17].ClockDivider = 1; PeriphClkInitStruct.ICSelection[RCC_IC18].ClockSelection = RCC_ICCLKSOURCE_PLL4; PeriphClkInitStruct.ICSelection[RCC_IC18].ClockDivider = 2;
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.