Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello ST Expert, On our custom board - USB PD, it has 1. HW: TCPP03-M20 with STM32G0B1CBT6 2. SW: X-CUBE-TCPP 4.2.0 ( USBPD Application 4.2.0 - Dual_Role) 3. SW: Board Part tcpp0203 1.2.3 4. Tools: STM32CubeMX (6.15) & STM32CubeIDE 1.19.0 & STM32CubeMonitor-UCPD-1.4 May you guide how to fix below issue? Issue: a) When pluging a usb device (smart phone USB type-c 3.1) in /connect to our custom board, on the "STM32CubeMonitor-UCPD-1.4", we could see CC1/CC2 is detected, and it (SRC) starts charging the smart phone (SNK). However, only SRC, CCI/2 info is shown on the GUI; data role (UFP/DFP) info is not shown, etc. b) When we try to do Power role swtich, or try to get SRC's capacity by sending message to connected port on "STM32CubeMonitor-UCPD-1.4", it always shows the message is rejected. (* We already turned on support options on CubeMX - Stack Port 0 Parameters). All messages are rejected. c) Similiar to B), even we enable support all o
Hello everyone,I am currently working with the BLE_AT_CLIENT example on the B-U585-IOT02A and have previously updated the integrated STM32WB5M according to the instructions in readme.md (Wireless Coprocessor Update). The example's start screen appears correctly (screenshot: BLE.png).However, there is a problem that, according to this article "Using the Bluetooth stack on the B-U585I-IOT02A board" by Javad Rahimipetroudi, should occur immediately at start-up and independently of a BLE connection:The command TX: AT+BLE_SVC=1 does not appear for me. Normally, this command should be sent automatically immediately after TX: AT. However, only TX: AT is displayed on my device (PC) and then nothing else happens.Question for the community:Is anyone familiar with this behaviour or know what could be causing the example to stop at initialisation and prevent AT+BLE_SVC=1 from being sent in the first place?I would be very grateful for any tips on diagnosis or possible pitf
Since Updating to new Version is always a lot of manual work i would kindly ask for a Change Log compared to the Major Version 6.4.0.The new Features / Improvements may justify/not justify the move from 6.4.0 -> 6.4.1.
Hello everyone,I am currently working with the BLE_AT_CLIENT example on the B-U585-IOT02A and have previously updated the integrated STM32WB5M according to the instructions in readme.md. The start screen of the example appears correctly (screenshot: BLE.png).However, a problem occurs which, according to this article https://mind.be/blog/using-the-bluetooth-stack-on-the-b-u585i-iot02a-board/ should occur immediately at start-up and independently of a BLE connection:The command TX: AT+BLE_SVC=1 does not appear for me.Normally, this command should be sent automatically immediately after TX: AT. However, only TX: AT is displayed on my device, and then nothing else happens.Question for the community:Is anyone familiar with this behaviour or know what could be causing the example to stop at initialisation and prevent AT+BLE_SVC=1 from being sent in the first place?I would be very grateful for any tips on diagnosis or possible pitfalls.Many thanks!
Hello, Does ST have a tentative roadmap for supporting the STM32N6 series in the X-Cube-MCSDK?
HiI am implementing the ECDSA-P256 signing for a payload.I have checked the example code https://github.com/STMicroelectronics/STM32CubeU3/tree/main/Projects/NUCLEO-U385RG-Q/Examples/CCB/CCB_Protected_ECDSA_SignatureThe example code shows that the software has an access to the private-key. Would it be possible to generate a private key using RNG which software/processor can not see and which can be used by the CCB to compute a signature. The same key can be used to get public-key. can I use this API HAL_CCB_ECDSA_GenerateWrapPrivateKey(). Would this key be persistence across reboot or do I need to store the wrapped key?
Hi,I'm using a custom STSPINF0 based board and successfully profiled my motor. Using motor pilot, I have obtained a start-up profile which I've also implemented in Motor Control Workbench (6.3.1) as shown below: I've interfaced STSPINF0 with nRF52832 over USART and I'm able to execute commands & receive data successfully.But, motor runs and stalls with Fault_over/ Duration type fault when I execute MC_StartMotor1(). I think using this command my start-up parameters are not executed.I want to know does Motor Workbench stored my start-up parameters in the firmware/ STM Cube IDE? If so, how I can start my motor using that stored start-up parameters?Otherwise, please guide me how can I manually implement & execute my above start-up parameters in forms of following commands before executing MC_StartMotor1() over USART:* - MC_ProgramSpeedRampMotor1()* - MC_ProgramTorqueRampMotor1()* - MC_SetCurrentReferenceMotor1() Thanks
Hi teams,CPU: STM32U0Current RDP level: Level 1OEM1 RDP lock: Enabled.I had set the 128bit OEM1 key to the OEM key registers [FLASH_OEM1KEYWyR ]accordingly, and the written OEM1 key values was verified using their CRC values by reading OEM1KEYCRC register.Now I am trying to make the regression from level 1 to level 0 according to the user manual description [section: 3.5.1 FLASH read protection (RDP)]. But the operation was failed using my source code. Which is attached below#define STM32U0_DBGMCU_BASE 0x40015800 // Accessible to the software via the APB access port AP0#define STM32U0_DBGMCU_DBG_AUTH_HOST (STM32U0_DBGMCU_BASE + 0x100) // Debug authentication mailbox host register Could you please clarify the following doubts,1. The unlock sequence says, debug access port 1 has to be used for programming the 128-bit OEM1 key in the DBGMCU_DBG_AUTH_HOST register,but when I checked the DBGMCU_DBG_AUTH_HOST register base, it sa
__LL_ADC_CALC_VREFANALOG_VOLTAGE macro presumes that VREFINT calibration value is from a 16-bit ADC. However, for STM32H723, the value I see (1522) is from 12-bit ADC conversion. So this macro returns incorrect value. On STM32H747, it works as expected (the value is 24074 which corresponds to 16-bit ADC value). I have not found any information about conversion width in the reference manual nor in the datasheet.#define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\ __ADC_RESOLUTION__) \ (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \ / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \ (__ADC_RESOLUTION__), \ LL_ADC_RESOLUTION_16B) \ )
Hello, Can I say that "IDLE" is equivalent to "RTO with 8-10 bits (depending on framing)"?Or are there some other subtle differences? My goal is to transfer received data with DMA and start interpretation of the data when nothing is received on the line which, in my application's world, is equivalent to an end of frame. ThanksJulien
Hi, I'm using the boatd ihmi08. I would like to control the motor in closed loop as a target rotor angle. Is it possible in 6 steps or is the focus much better?
Hello,let say that STM32H753 mCU has connected VBUS (via resistor divider to be sure that voltage on VBUS detection pin (PA9) would never exceed AMR), D-, D+ and GND lines with PC, before mCU core is supplied. At the moment when mCU core is then connected to power supply, would enumeration starts normally as it should or fact that USB module of mCU was connected to PC before core parts of mCU were supplied could bring problems?Thanks!
I'm starting a bare-metal firmware that will display basic graphics on a LTDC connected LCD screen. For the moment I'm using a STM32H53-EVAL2 board (rev E I think) Right now I write a fix image in the frame buffer. The image is correctly displayed except it's kind of blinking. Since the image never changes I suspect it is due to the setup of the LTDC interface or LCD screen. I based my software on STM32CubeH7 source code example (LTDC_Paint application). Do you know: - the screen model on the eval board ( I couldn't find the model in the STM32H753-EVAL2 reference manual) - what configuration parameter could cause the "blinking" of a fixed image ? Thank you
Hello! I'm now using a STM32F469 to drive a screen with MIPI-DSI Interface. I need to send the initial codes with low power command transmission, and then drive the screen in video mode. I think LPDT it is supported by this MCU, but I'm not sure how to use it. Could anyone give me some advice or instructions?
Hello,I am trying to get the OEMiROT example projects running on STM32H563 from "STM32CubeH5\Projects\NUCLEO-H563ZI\Applications\ROT" and this page : https://wiki.st.com/stm32mcu/wiki/Security:How_to_start_with_OEMiRoT_on_STM32H573_and_563%E2%80%93TrustZone_enabled Provisioning works well, unfortunately, I'm blocked on the firmware update step through the internal bootloader. After the message 'Start download with STM32CubeProgrammer through supported interfaces (USART/SPI/I2C/USB)', when I connect CubeProgrammer with uart connection, the bootloader seems to work correctly as I received:Chip ID:0x484 Bootloader protocol version : 4.0Then, CubeProgrammer freezes for 2 mins and the device is disconnected with this message log: 09:54:32 : Error: RDP is set to level 1 or target is held under reset, try using Read UnProtect (-rdu) command in order to remove the Read Out Protection. 09:54:32 : UPLOADING OPTION BYTES DATA ... 09:54:32 : Bank : 0x00 09:54:32 : Address : 0x4
Hello, when I was using this chip, STM32F427ZGT6, it could print data, but the delay was incorrect. After 5 seconds, it was only a few milliseconds. Due to the inaccurate delay, the timing sequence became disordered
I used MC_SDK_6.3.2 to generate a motor control program, but found that sometimes the motherboard crashes. Debugging found that the following code has problems. May I ask why this is? Is it a hardware bug?//The problematic code is here, and the program will enter a dead loop: while (LL_ADC_IsActiveFlag_EOCS(RCM_handle_array[handle]->regADC) == 0u) { /* Nothing to do */ }The complete code is as follows:uint16_t RCM_ExecRegularConv (RegConv_t *regConv) { uint16_t retVal; uint8_t handle = regConv->convHandle; LL_ADC_REG_SetSequencerRanks(RCM_handle_array[handle]->regADC, LL_ADC_REG_RANK_1, __LL_ADC_DECIMAL_NB_TO_CHANNEL(RCM_handle_array[handle]->channel)); (void)LL_ADC_REG_ReadConversionData12L(RCM_handle_array[handle]->regADC); /* Bit banding access equivalent to LL_ADC_REG_StartConversionSWStart */ BB_REG_BIT_SET(&RCM_handle_array[handle]->regADC->CR2, ADC_CR2_SWSTART_Pos); /* Wait until end of regular conversion */ while (LL_ADC_IsActiveFlag_EOCS(
Apologies for cross post, I couldn't find a way to delete the other post or how to change which board to post it to.I'm trying to set up the Utility Sequencer to run an acquisition task followed by an signal processing task, see code snippets below.When I look at the serial monitor, I see the start acquisition task message but then it hangs waiting for EVENT0So even though I've set EVENT0 in Custom_APP_Init() it looks to me that the event is not in fact set.What am I missing here?I commented out the SetTask line as I realized I hadn't finished setting up before the sequencer sets off but now no tasks get set, so I dont get the start acquisition task message any more. #define EVENT0 1<<30 #define EVENT1 1<<31 void Custom_APP_Init(void) { /* USER CODE BEGIN CUSTOM_APP_Init */ UTIL_SEQ_RegTask(1<<CFG_TASK_SENSOR_UPDATE_ID, UTIL_SEQ_RFU, sensor_update); UTIL_SEQ_RegTask(2<<CFG_TASK_FFT_ID, UTIL_SEQ_RFU, do_fft); U
Hi. How can I build the Demo FW initially running on NUCLEO-H563ZI ?The is a number of projects in Cube under STM32Cube_FW_H5_V1.5.0\Projects\NUCLEO-H563ZI but it is not clear which one is the factory used to initially program the board. Thanks.
You may encounter an issue when developing for the STM32 microcontroller using STM32 development boards where a pin that is configured for reading on a General Purpose Input/Output (GPIO) reports a high state even when it is not physically connected to any circuit. Pins are not expected to output neither high or low when left floating. This can lead to significant difficulties when developing for the target. In my specific use case, this behavior resulted in an LED flashing when the jumper was not bridged, leading to confusion and misinterpretation of the system's status. It took me more than a week to understand what was happening because debugging step by step using the STMCubeIDE always resulted in the expected functionality. I believe such an issue can arise due to floating inputs and/or electrical noise, mainly if the board is sitting on an isolator.To fix this please make sure to implement pull-up or pull-down resistors in your design to ensure that the GPIO pin h
I'm trying to follow this guidehttps://github.com/jagheterfredrik/meb-preheat I've never used STM32CubeProgrammer or a ST-Link V2 so I don't know what it should look like. I've bought the one at this link https://www.aliexpress.com/item/33010611392.html When I open STM32CubeProgrammer and click "connect" nothing happens, apart from the message in the log windowThe serial number is shown as "E" Do I need to do something to make this device work? Or where can I buy one that works out of the box?
Hi, I am using an STM32N6570-DK running in XIP mode with XSPIM configured in multiplex mode.Setup:XSPIM in multiplex modeXSPI1 / XSPI2 → Port 2 → external flashXSPI3 → Port 1 → PSRAMXSPI2 memory-mapped at 0x70000000FSBL configures external flash and jumps to the application at 0x70100400(VTOR = 0x70100400, MSP = 0x34200000, PC = 0x7010BA01)Everything works correctly in direct XSPIM mode, but in multiplex mode the application HardFaults or hangs immediately after the FSBL jump.The faults occur during early HAL initialization (e.g., in HAL_MspInit() or MX_GPIO_Init()), specifically when executing functions such as: HAL_PWREx_EnableVddIO3();__HAL_RCC_GPIOO_CLK_ENABLE();HAL_RCCEx_PeriphCLKConfig(); If I comment out these lines, the application runs, but then I face issues whenever adding new peripherals (like UART).It seems that reinitializing power domains or clocks related to XSPI pins while executing from external flash triggers a crash. I am using STM32Cube FW
Dear Sir, My board is equipped with STM32G431 MCU. I found that the UART DFU mode of my board does not work after the flash of the MCU has been programmed. The UART DFU mode can only work with a blank MCU that have not been programmed before. I have only used the default setting in the CubeProgrammer. I appreciate if you can give me any suggestion.
Hi all,I'm trying to use Livetune to make an mp3 player but it only works once connected to a board. I have a custom Nucleo-U5A9 (originally a Nucleo-U575, I replaced the MCU and added xtal). I'm reading UM3297 Getting started with X-CUBE-AUDIO-KIT and on page 6 (picture below) says:"The connection is successful only if the firmware running on the device includes the Designer communication firmware."I would like to include this "Designer communication firmware" into my custom board/firmware but I can't seem to find any reference to it anywhere. I'm pretty sure is part of the examples firmware but I rather not hunt for it that way unless there is an example for the U5A9 which I don't see. Even so ... this "Designer communication firmware" doesn't seem to be designated as such in the example projects.where is this "Designer communication firmware"? How do I integrate it into my custom U5A9 board?Any help is appreciated... thanks.
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. Hi,I want to jump to system memory boot with SW using UART1.I tested it using code I found by searching forums and the internet, but it doesn't work.For reference, the STM32G071 shares the BOOT0 and SWCLK pins. By pulling the BOOT0 pin high and resetting the device, I can perform a system memory boot. After that, I connected the UART connect in STM32CubeProgrammer and verified the update. However, after jumping to the code below and pressing the UART connect in STM32CubeProgrammer, the following message appears and the device fails. RTS lowDTR lowSerial Port COM15 is successfully opened.Port configuration: parity = even, baudrate = 115200, data-bit=8, stop-bit=1.0, flow-control=0ffTimeout error occurred while waiting for acknowledgment.Error: Activating device: KO. Please verify the boot mo
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.