Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors, including hardware, power, DRAM, flashing, interfacing, device tree, and peripherals.
Most recent activity
Hi everyone, Hi everyone,I’m currently designing a custom board based on the STM32MP157FAC1 evaluation board, and as part of the process, I’m working to estimate the power budget for the design.However, I’m finding it difficult to locate clear information on load current requirements in the STM32MP1 datasheet, likely due to the MPU’s complex architecture.Does ST provide any power estimation tools or official guidelines to help calculate power consumption when transitioning from the evaluation board to a custom design?Any advice or references would be greatly appreciated. Thanks in advance!
Hello~ I am using the Mickledore version of Yocto. I want to directly apply the following:meta-st-x-linux-rt-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26 to DISTRO = openstlinux-weston. DISTRO=openstlinux-weston MACHINE=mymachine source layers/meta-st/scripts/envsetup.shInstead of using the new DISTRO = openstlinux-rt,I directly run bitbake, but the RTpatch did not take effect. I only succeeded after changing SRC_URI:append:stm32mprtcommon to SRC_URI:append:stm32mp2common. May I ask if there are any other issues with this approach?Or is there any better way to handle this problem?
Hello,I am trying to use the DDR test suite from Cube IDE with a custom board based on the STM32MP257FAI3 with 32Gb of LPDDR4 (MT53E1G32D2FW-046 WT:B). The board doesn't have engineering boot available, but it does have USB/UART boot, so I have been attempting to use SYSRAM Loading in the DDR Test Suite. However I have been getting "This Port Com Is Not Responding" errors when trying to connect. The steps I have taken are as follows: 1. Clone DDRFW-UTIL and edit `DDR_Tool/STM32MP257F-EV1/Inc/stm32mp_util_conf.h` to change the UART and PMIC settings:/* UART related configuration */ #define UTIL_UART_INSTANCE UTIL_UART9 #define UTIL_UART_TX_PIN UTIL_PIN13 #define UTIL_UART_TX_GPIO_PORT UTIL_GPIOD #define UTIL_UART_TX_AF GPIO_AF6_UART9 #define UTIL_UART_RX_PIN UTIL_PIN14 #define UTIL_UART_RX_GPIO_PORT UTIL_GPIOB #define UTIL_UART_RX_AF GPIO_AF6_UART9 #define UTIL_UART_BAUDRATE 115200 #define UTIL_UART_WORDLENGTH UART_WORDLENGTH_8B #define UTIL_UART_STOPBITS UART_STOPBITS_1 #def
I am using the STM32MP257F-DK with a WiFi-BT module. WiFi is connected via SDIO pins and Bluetooth is connected using UART6 pins through the 40-pin header.I am testing the HFP profile on the BT module. When I run the dial-number script from the ofono test script, the call is placed successfully, but there is no audio during the call.PipeWire, WirePlumber, and oFono are all running successfully, but when dialing a number, I get the following log: root@stm32mp2-e3-d2-9e:/usr/lib/ofono/test# ./dial-number xxxxxxxxxxofonod[1675]: src/modem.c:get_modem_property() modem 0xd3664a0 property SystemPathUsing modem /hfp/org/bluez/hci1/dev_5C_ED_F4_5A_72_AEofonod[1675]: src/voicecall.c:synthesize_outgoing_call() Registering new call: 1/hfp/org/bluez/hci1/dev_5C_ED_F4_5A_72_AE/voicecall01ofonod[1675]: src/voicecall.c:ofono_voicecall_notify() Got a voicecall event, status: dialing (2), id: 1, number: 9651273221 called_number: , called_nameofonod[1675]: src/voicecall.c:ofono_voicecall_notify() F
Hello,I notice that on stm32mp257f-ev1 board the USB_DRD port (CN15) is active only if USBPD_DRPSI_CM33_NonSecure_stripped.elf firmware is running. I need to run a different firmware on M33 while using the USB_DRD port. Searching in board's DT I found the following part:&mlahb { intc_rpmsg: interrupt-controller@1 { compatible = "rpmsg,intc"; reg = <1 0>; #interrupt-cells = <1>; interrupt-controller; status = "okay"; }; i2c_rpmsg: i2c@2 { compatible = "rpmsg,i2c-controller"; reg = <2 0>; rpmsg,dev-id = "rpmsg_i2c"; #address-cells = <1>; #size-cells = <0>; status = "okay"; typec@35 { compatible = "st,stm32mp25-typec"; reg = <0x35>; interrupts-extended = <&intc_rpmsg 0>; status = "okay"; connector { compatible = "usb-c-connector"; label = "USB-C"; port { typec_ep: endpoint { remote-endpoint = <&dwc3_ep>; }; }; }; }; }; };So I'm thinking the point is that the typec@35 node is activated only when i2c_rpmesg is create
I am trying to measure voltages using the STM32MP157C's built-in ADC on channel 18 in differential mode, but keep getting wrong values. Linux kernel is 6.1.28.Here are the relevant bits from the Linux device tree:&pinctrl { adc_pins_mx: adc_mx-0 { pins { pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* ADC1_INP18 */ <STM32_PINMUX('A', 5, ANALOG)>; /* ADC1_INN18 */ }; };};&adc1 { status = "okay"; assigned-resolution-bits = <16>; channel@18 { reg = <18>; diff-channels = <18 18>;
Hello,we have an issue with a STM32MP1 and EMMC. The only boot source is SDMMC2 from eMMC-Flash.So far it works fine, but when we try to initiate a "reboot" in linux the system hangs and won't start again. If we do a reset in u-boot, there is no problem at all.Also, we have two boards. One board has an eMMC THGBMNG5D1LBAIL from Toshiba (is recommeded in errata sheet) and the other board is the eMMC SDINBDG4-8G from Sandisk. At both board the Software is the same and MPU is STM32MP151CAB3T REV Z. With the Toshiba eMMC the "reboot" works everytime and with the Sandisk eMMC we have the trouble.BR
Working with STM32MP257F-DK + IMX335 camera + Quectel EG916Q-GL modem. Successfully recording to eMMC but facing image quality issues:Yellowish tint, Overexposure, White lines in recorded videoVideobalance settings (brightness=0.2, contrast=1.2, saturation=0.9) improve live preview but not the recorded output.Has anyone experienced similar issues or can recommend optimal IMX335 calibration settings for this hardware combination? Looking for solutions specific to recorded video quality.Thanks!
Hello, I would like to ask a question about the U-Boot USB enumeration of STM32MP157:Using a custom board with the STM32MP157 (FUSB302MPX), openSTlinux6.6,:Problem description:Through "STM32_Programmer_CLI -c port=usb1 -d ../../FIP_artifacts/arm-trusted-firmware/tf-a-stm32mp157d-develop_mp157-mx-optee-programmer-usb.stm32 0x1 -s 0x1 -d ../../FIP_artifacts/fip/fip-stm32mp157d-develop_mp157-mx-optee-programmer-usb.bin 0x3 -s 0x3"Write to the board memory, PC side"Error: Unable to reconnect the target device: time out expired, Error: Start operation failed" On the board: Repeat log "dwc2_ep0_setup: bRequestType = 0x80(IN), bRequest = 0x6 wLength = 0xff, wValue = 0x302, wIndex= 0x409"Attached is the device tree and uart log.
Hello,I have tried following the https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer_OTP_management to achieve this.I have tried configuring CFG_BSEC_PTA=y CFG_STM32_BSEC_WRITE=y CFG_WITH_USER_TA=yinto the meta-st-stm32mp bsp and verified that it was being added to the make. I then did a minimal flashlayout to get to uboot. I have tried multiple setting/configs but I always get the same error when i run the command; STM32_Programmer_CLI -c port=usb1 -otp disploptee optee: TA_NVMEM invoke failed TEE err: ffff0006, err:0Error: OTP read issue -5dfu_read: Failed to fill bufferWhat is the one thing that I am missing here? My goal is to be able to flash word 3, 5, & 6. Any help would be appreciated, thank you.
HelloI'm considering the requirements and learning process for designing a board with the STM32MP2.I've never done DDR4 routing before—what's the best starting point?Also, is it feasible to design such a board using a tool like KiCad, or is a tool like Altium essential?Thanks!
HelloWe are currently attempting to boot both Cortex-A35 cores of the STM32MP257 processor using an SD card. While we have successfully verified that both cores function independently under bare-metal conditions, we are facing challenges in waking both cores during the SD card boot process.Specifically, we are attempting to release Core 1 from reset by setting the C1P1RST bit in the RCC_C1P1RSTCSETR register. However, we observe that the reset does not get released as expected—the value of the register does not reflect the release of the reset.We are following the sequence outlined in Section 3.4 "Cortex-A35 boot mode" of the STM32MP257 Reference Manual. In this context, we would appreciate further clarification on the following steps mentioned in the boot procedure:2. The core requests a warm reset through its internal reset management register in secure mode.3. Both cores enter in WFI state.We request a detailed explanation of the above two steps, particularly with regard to:The
I applied real-time patches to the Linux kernel, but when I measured the RT performance using rt-tests, I found that these two services were affecting it: "stm32mp-calibration.service" "stm32mp-calibration.timer." What is the reason for this?Is it appropriate to disable them?thanks~~
Hello everyone,I'm working on porting the PCMD3140IRTER codec to the Kirkstone BSP on an STM32MP13 platform. At the moment, I have connected only two microphones (presumably the left and right ones) to the PDMDIN1_GPI1 line.The microphones are Adafruit PDM MEMS, based on the MP34DTx chip. I verified their behavior using an oscilloscope, and the signals look correct according to the datasheet. So far, everything seems fine.The issue arises when I try to record audio using the following command:arecord -D hw:0,0 -f S16_LE -r 48000 -c 2 test.wavWhen I listen to the recorded file, I can hear only the left channel, as if the right microphone is not being captured. If I change the ti,pdm-edge-select property from:<0 1 0 1>to<1 0 1 0>I still hear only the left channel, but it now seems to come from the other microphone. So, it looks like only one microphone at a time is being used, and it's always recorded as the left channel, regardless of the pdm-edge-select setting.Additi
Hi,I am trying to test STM32MP257 hash hardware accelerator according to the following article: https://wiki.st.com/stm32mpu/wiki/Crypto_API_overview.I was able to utilize the crypto accelerator using openssl (as described in the article), but once I have tried running some tests with SHA-256 hash I have noticed that only software implementation was used. After checking the device tree, I have found that hash accelerator was not enabled. After enabling it and making sure that the kernel driver as also enabled (as module), I am seeing the following error during the boot:stm32-rifsc 42080000.bus: hash@42010000: Device driver will not be probedand again, the hash accelerator is not working.I am running all the tests above on the STM32MP257-DK. Am I doing something wrong?Thanks!Alexey.
Hi all,I'm currently running the Azure IoT Defender Micro Agent on a Yocto-based image (STM32MP1), and although the logs suggest the agent is working and sending data, no Defender metrics are visible in the Azure IoT Hub portal under Defender Metrics.Setup Details:Platform: STM32MP1 with Yocto LinuxTransport: AMQPIoT Hub connection: SuccessfulCloud messages: send_confirm_callback success and device twin updates with result 200Collectors enabled: SBoM, NetworkActivity, Heartbeat, LogCollector, Process, FileSystem, Peripheral, Baseline, etc.Observations:Logs show telemetry batching with message sizes up to 101KB.Agent attempts to read common paths like /etc/crontab fail with errno=[2] (file not found), which is expected given it's an embedded system.Repeated logs like Failed to stat() on=/proc/[pid]/cmdline, not sure if it's a blocker.Main Issue:Even though the agent appears to be collecting data and successfully sending messages, the Defender Metrics tab in the IoT Hub Portal remains em
I figured out how to build and integrate the Android kernel with my updated drivers. Unfortunately, my eval kit hangs at the ST splash screen before restarting after flashing my device. I run the "flash-device" command mentioned in the wiki: How to populate boards for Android - stm32mpu without any errors. I attached a serial UART log from boot. The system hangs and reboots after the following lines: Starting kernel ... I/TC: Secondary CPU 1 initializing I/TC: Secondary CPU 1 switching to normal world boot Any advice? Thanks
Hi,for evaluation I'm running STLinux on a STM32MP257F-DK board currently.I found the Linux console is available on one of the USB-ports with the default configuration of that operating system.Quick question: is that Linux console also available on some plain UART-port for that development kit (or for the STM32MP25 in general)? If yes: which port is used?Thanks!
Is it possible to operate USB-C (CN15) and Mini-PCIE (CN13) on the STM32MP257F-EV1 board with end devices at the same time? For example: A USB-C 4 port hub is connected to the USB-C port and a WLAN card is connected to the PCIE port.The documentation says that this is not possible at the SAME time. I understand that because it is a combophy.In the figure MSv67526V2 on the page https://wiki.stmicroelectronics.cn/stm32mpu/wiki/COMBOPHY_internal_peripheral there is the Mode_sel pin which is probably for activating the two modes. So it should be possible to activate the corresponding mod with the software.If so, this is also supported in the Linux kernel.Thanks for an answer.
Following the instructions here: https://wiki.st.com/stm32mpu/index.php/How_to_create_your_own_machineAnd then making a trivial devicetree modification (enabling I2C5 output) fails to build on a fresh yocto install (via the "distribution package"). I'm beginning to port code from a DK2 to a custom board, and creating a transitional package.The build slams right into the `flavorlist` mess in the optee make confs (specifically workspace/sources/optee-os-stm32mp/core/arch/arm/plat-stm32mp1/conf.mk) , ignoring the `CUBEMX_BOARD_DDR_SIZE = "512"` variables or anything else..Very frustrating to see all these hardcoded filenames when yocto is very aware of the actual device tree in use at buildtime... looks like maybe the intended `CFG_EXT_DTS` escape hatch is broken?Lots of previous posts have hit this problem, but on custom hardware, and with more significant DT changes. I didn't touch the RAM or anything else other than have a default DK2 template MX project and then enable/"ok
I am using the STM32MP257F-DK board. By default, this board automatically boots when power is applied. If the wakeup button is held for about 15 seconds, the system powers off. A short press and release of the wakeup button generates an interrupt signal that can be used by the kernel.I would like to change this behavior with the following custom setup:When power or battery is applied, the board should not boot automatically.The system should only boot if the wakeup button is pressed and held for a defined time (around 3 seconds).After the system has booted, pressing and holding the wakeup button again for the same defined time (around 3 seconds) should trigger a power-off.A short press and release of the button should continue to generate an interrupt signal usable by the kernel.Based on the following documentation:https://wiki.st.com/stm32mpu/wiki/Power_overviewhttps://wiki.st.com/stm32mpu/wiki/STM32MP2_PWR_internal_peripheral#stm32mp21_PWR_a35_runtime_rifhttps://wiki.st.com/stm32mpu/
Hi, ST Community!We are developing a device based on the STM32MP257DAK3 processor.The firmware is built using Yocto (Scarthgap release) with Linux kernel 6.6 from ST and the meta layers meta-st-openstlinux and meta-st-stm32mp.The device includes a USBPD controller (MAX77958) that is managed by an external microcontroller. This setup is intended to allow USB charging independently of the main processor.Goal:We want to enable USB3DR in USB 2.0 peripheral mode (to use USB gadget / Ethernet over USB under Linux).In U-Boot and DFU mode, USB works fine→ The PC sees the device→ Data transfers are successful→ USB traffic is visible on the oscilloscope After Linux boots:→ The PC doesn’t detect the USB device→ USB lines are completely idle (both lines at 0V)→ usb1 interface appears in ifconfig→ No errors in dmesgDevice Tree config (from ST documentation):&usb3dr { status = "okay"; dwc3: usb@48300000 { maximum-speed = "high-speed"; role-switch-default-mode = "peripheral"; usb-ro
Hi,I'm looking for information on the MP131F pin assignments for USB type-C signals CC1 and CC2. I'm working on a custom board that uses a USB type-C for power only as is done on the MP157D-DK1 board. thanks and best regards
I generated the M33 code from CubeMX, and linked libmetal, OpenAmp and building fine.But when initializing the OpenAmp using MX_OPENAMP_Init(), it get stuck at rproc_virtio_wait_remote_ready(vdev);The resource table and its parameters are exactly same that of in Linux.Where I am getting wrong?RegardsPartha
I generated the code using STM32CubeIDE for CM33 with FreeRTOS.I have tested the delay using osDelay(), the intervals are not accurate.I tried 1 sec delay using osDelay(pdMS_TO_TICKS(1000)), but its less than 1 sec. But HAL_Delay() comes to be quit accurate.There is no error in clock configuration.Attached is the ioc file.Please let me know where I am getting wrong.RegardsPartha
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.