Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
Hi everyone i download the Distribution package for ##STM32MP1F-DK2 and i made some changes on kernel like in device tree, my colleague is doing work-from-home job, So my colleague wanted to see the changes own there laptop and something want to change according to there requirement on same source code( Distribution package). how we can do that .please help me out this
Hello,I want to operate the device in the following manner, but I don't fully understand the concept of the External Loader:Store DDR Init FW and Main FW in the External NOR Flash.These two FW will be downloaded to the Flash during board production.Upon powering on the board, immediately execute the DDR Init FW stored in the NOR Flash.In this case, to access the NOR Flash, QSPI and other GPIOs need to be activated first. Should this role be handled by custom firmware, or does the External Loader take care of this?If that is not the case, do I simply need to set the boot pins to NOR Flash mode to boot directly from NOR Flash? Below are some example files related to the External Loader. I would like to understand what roles each of these files performs.What does "offset" mean? Should it be set differently depending on the address in NOR Flash where the FW is downloaded?Is there a way to obtain the source code for the corresponding bin files? *The MPU being used is STM32MP131FAE
Hi Every One i am facing the issue to find the pins of PWM in the (STM32mp157f-dk2 ), i configured the PWM channel in device tree and pwm channel is visible in /sys/class/pemchip0/pwm , so i need to collect the input from the pins but which pin is connected to PWM i do not know , could you please help me out this.(this is my my output form the board terminal )root@stm32mp1:/sys/class/pwm/pwmchip0/pwm0# lscapture duty_cycle enable period polarity power ueventroot@stm32mp1:/sys/class/pwm/pwmchip0/pwm0#I Need 1. how to use pin and which pin i need to connect 2. i want to collect the input prom the PWM.3. and the should be show on the terminal. if i am wrong and any thing missing , please correct me
Hi there, I'm trying to start my M4 fw from u-boot ( https://wiki.stmicroelectronics.cn/stm32mpu/index.php?title=How_to_start_the_coprocessor_from_the_bootloader&oldid=76509#Synchronizing_the_remote_firmware_with_Linux ). We finally managed to load the firmware from u-boot and it runs properly (I can see peripherals working at boot time); btw the guide is not correct for the bootcmd section, let's talk about it in a separate thread! Now, I must integrate the RPMSG interface, and, in the guide ( https://wiki.stmicroelectronics.cn/stm32mpu/wiki/How_to_start_the_coprocessor_from_the_bootloader#STM32Cube ), there's a section describing a Synchronization between u-boot and Linux. It cites that, for non-blocking use cases, IPCC interrupts can be used. But I can't find ANY reference to that in any guide or forum. Can please somebody explain to me how to make this synchronization work properly? I understand that I have to implement M4 fw in a way that the 
Hello,we want to implement Non-blocking method like in https://wiki.st.com/stm32mpu/wiki/How_to_start_the_coprocessor_from_the_bootloaderOur efforts searching documentation and reading discussions in the forum hadn´t resolve the situation.We are using a devicetree genertated by the CubeMX tool for stm32mp157f-eval1. When starting the Application in a booted linux system, it works as expected. The trace logs are available, and the /dev/ttyRPMSG0 virtual UART is loaded:cat /sys/class/remoteproc/remoteproc0/state outputs 'running'cat /sys/kernel/debug/remoteproc/remoteproc0/trace0 shows our debug outputs from the M4We can send dummy data to /dev/ttyRPMSG0 and get the echoed responseIn our use case we need the M4 Application to start as early as possible, so we have configured u-boot SSBL to load the ELF file and start the M4 execution. We are then facing the problem that the software is started, but the linux kernel does not load the /dev/ttyRPMSG0 device:cat /sy
Hello,I am wondering what could be the best way to write a device tree that sets the STM32MP1 as SAI SLAVE with a CODEC also running as SAI slave. The HW design I am studying has the following specs:1) STM32MP1 with ALSA and one SAI interface.2) A codec chipset running as SAI slave.3) The Si5351B part running as a MASTER clock providing the SAI bit and frame (L/R) clocks to both the SoC and CODEC.I understand such a setup is a little out of the norm. How can the device tree be modified on the SAI side to avoid the STM32MP1 to become a MASTER. The snippet of a possible device tree is below.How can I force the STM32MP1 to be a SLAVE on SAI?I would imagine writing the device tree as follows: &sai1{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&sai1b_pins_mx>; pinctrl-1 = <&sai1b_sleep_pins_mx>; status = "okay"; /* USER CODE BEGIN sai1 */ /* Specify external clock sources for SAI1 We MUST add the clock-names according to the doc. */ clocks = <&
Hi,I'm looking at the wic file for STM32MP13 and see two metadata partitions for ATF firmware update. I'm wondering how are these partitions secured from access / modifications from non-trusted world? Since write (and optionally read) operation should only be performed from secure world what is the mechanism that prevents doing this from non secure world? Is there any? If so, how is this configured? I'm also curious whether the same mechanism applies to STM32MP2
I'm trying to debug a problem in my system where on rare occasions, a message gets dropped in the M4->A7 direction of RPMsg channels (M4 sends it without error and A7 never sees a message arrive). The project was started a long time ago using an older version of CubeMX and CubeIDE (versions 5.4.0 and 1.7.0 respectively), so as a first step I wanted to update the M4's SDK and tools to the latest versions to make sure it's not a driver issue that's already been fixed (versions 6.8.0 and 1.12.0). After updating the tools and regenerating the code (and resolving a couple of FreeRTOS conflicts since a couple files moved), everything seems to be running except that the RPMsg TTY devices aren't showing up in /dev/. Since getting those devices to show up is basically just init code at the start of main in the M4 and this code works in the older version of the SDK, I was hoping someone could do a quick sanity check of my startup code and make sure it's correct for the latest versions of the
I tried to replace the uImage and .dtb file inside the starter package.First I copied over the kernel and .dtb file.sudo mount -o loop st-image-bootfs-openstlinux-weston-stm32mp1.ext4 /mnt/bootfs sudo cp ../linux-6.1.82/build/arch/arm/boot/uImage /mnt/bootfs/ sudo cp ../linux-6.1.82/build/arch/arm/boot/dts/stm32mp151a-stm32-computer-firmware-mx.dtb /mnt/bootfs sudo umount /mnt/bootfs Then I booted the Linux kernel. See the log file log.txt. It stopped at the USB Hub decleration. So I guess that linux kernel was booted, but not initrd.I tried to boot the system manually via U-boot and this happen.STM32MP> part list mmc 0 Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00000400 0x000007ff "metadata1" attrs: 0x0000000000000000 type: 8a7a84a0-8387-40f6-ab41-a8b9a5a60d23 (8a7a84a0-8387-40f6-ab41-a8b9a5a60d23) guid: 92f0b426-e174-4bac-9287-019e4f858971 2 0x00000800 0x00000bff "metadata2" attrs: 0x
Background:I'm trying to bring up a custom board with an STM32MP157D and DDR3. When I tried flashing the BSP, I got an error: "ERROR: DDR addr bus test: can't access memory @ 0xc0000004". I decided to try using STM32DDRFW-UTIL to test the DDR before proceeding. I downloaded the code and compiled and debugged the project for an STM32MP157C-DK2. The image sucessfully loaded via the ST-Link in engineering mode and I saw the UART with the expected DDR tool interface. My custom board does not have an ST-Link connection, so I was going to try to flash the image into sysram using USB. I'm still working with the DK2 as a proof of concept.Issue:When I try to flash the image using STM32_Programmer_CLI, the utility does not start. I am using the binary in the Binaries folder of STM32DDRFW-UTIL and trying to flash it with "STM32_Programmer_CLI -c port=usb1 -d STM32MP157C-DK2_DDR_UTILITIES_A7.stm32 0x01 -s 0x01". I get the following output and nothing on the UART:--------------------
I'm getting the following log when trying to boot to a custom DTS. I've already attempted the suggestion mentioned in this st forum post (https://community.st.com/t5/stm32-mpus-products/op-tee-error-tzc-permission-failure-on-new-v5-0-0-sdk/td-p/584339) with no luck.I/TC: Primary CPU switching to normal world bootD/TC:0 tee_entry_exchange_capabilities:101 Asynchronous notifications are disabledD/TC:0 tee_entry_exchange_capabilities:110 Dynamic shared memory is enabledD/TC:0 0 core_mmu_xlat_table_alloc:526 xlat tables used 4 / 10F/TC:? 0 entry_open_session:362 entry_open_sessionF/TC:? 0 entry_open_session:373 uuid: 1880204936 56798 16467F/TC:? 0 tee_ta_open_session:675 uuid: 1880204936 56798 16467D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 7011a688-ddde-4053-a5a9-7b3c4ddf13b8D/TC:? 0 tee_ta_init_pseudo_ta_session:309 Open device.ptaD/TC:? 0 tee_ta_init_pseudo_ta_session:326 device.pta : 7011a688-ddde-4053-a5a9-7b3c4ddf13b8F/TC:? 0 plat_prng_add_jitter_entropy:73 0x24BDD/T
i am facing the issue like i could not able to access the PWM pinsi want like this only (/sys/class/pwm/pwmchipX/).but i get output like this only. {root@stm32mp1:~# cd /sys/class/pwm/root@stm32mp1:/sys/class/pwm# lsroot@stm32mp1:/sys/class/pwm# ls}Note: i am using qt quick i want to read Pins as a PWM and get back to display.
Spoiler (Highlight to read) Hello,I am trying to configure an ADC channel using IIO library to work in triggered buffer with high frequency (preferably more than 100kHz). I configured ADC and timers as described here (including trigger configuration in kernel device tree) and tested the its performance:https://wiki.st.com/stm32mpu/wiki/How_to_use_the_IIO_user_space_interface Testing MethodI tested the configuration by measuring 100Hz sinusoidal signal made with a function generator at different sampling frequencies. The sampling frequency value was set to 10000Hz in iio user space as displayed in iio_info (important later):attr 0: sampling_frequency value: 10000The signal was measured with the iio_readdev | hexdump command and ploted on a graph Blue is 100Hz, 1Vpp amplitude, 1V DC offset sine (ignore orange).The sine looks good and it takes 10kHz/100Hz=100 samples to display a full sine period, so everything works correctly. The ProblemThe sampling rate was then se
STM32MP157D-DK1https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-6.1-yocto-mickledore-mp1-v23.11.15DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.shbitbake st-image-westoni2c and USB touchHow do I find a compatible LCD touch screen for STM32MP157D-DK1?Also, I need a guide to set up the driver.I am not sure which of the USB type and I2C type is better in terms of price, reliability, and driver settings.Please, help me.
As the title says, when I add the (with or without "regulator-always-on") vdd: vdd { compatible = "regulator-fixed"; regulator-name = "vdd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; or vdd_ddr: vdd_ddr { compatible = "regulator-fixed"; regulator-name = "vdd_ddr"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; }; the boot stops NOTICE: CPU: STM32MP135D Rev.Y NOTICE: Model: MYIR STM32MP135F Board ERROR: nvmem node board_id not found without any further messages. Why? JHi
Hello,I am currently using the STM32MP157D to develop some tests. It seems that a specific U-BOOT has been developed by ST and flashed in the default factory eMMC.On this specific U-BOOT, some self-test commands are interesting.Could it be possible to share the software of these commands in order to re-implement on my u-boot version the "Self-Test-NAND" ?The version is :U-Boot 2019.10-stm32mp-20-01-15-00229-gdffcf0a (Feb 20 2020 - 16:55:29 +0100)Regards,MJ
Hi, I have a board that I designed that's not booting and I am struggling to workout why.I don't see any output on UART4 when booting and I also noticed that openocd reports the program counter as the following which I believe means that its still in the BootROM.pc: 0x0000f738 .I have built the image by using Yocto (St-Image-Core) and flashed it onto an SD Card.I have attached the log file from the ROM Trace analyzer.I do have a design issue where I failed to add a pull down onto OSC_OUT and I am using the HSE in Bypass mode, could this be the reason I am failing to boot into the FSBL when booting from an SD card?
I have used the cube programmer to load fsbl1, fsbl2 and fip.bin onto DDR3 from forced uart boot mode. I am trying to execute the loaded files from RAM itself and get access to the u-boot console.The files i have used were taken from the build directory of core-image-minimal build that was created using yocto.Ive attached the .tsv file i used for the cube programmer.Does anyone know how to make u-boot rub from the RAM?? I've been stuck for days
Hello, I am following the wiki article: https://wiki.st.com/stm32mpu/wiki/STM32MP25_Evaluation_boards_-_Starter_Package, in order to bring up the STM32MP257F-EV1 Development board and I am unable to run the STM32_Programmer_CLI when trying to boot the board. I am able to run it when in my home directory but that's it. The instructions in section 2.1 in the wiki article don't seem to work and I am unsure if I am doing it wrong. Here are the paths to the CLI and the Starter-Package respectively:STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI /STM32MPU-Ecosystem-v5.1.0/Starter-Package/stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26/images/stm32mp2Any help would be greatly appreciated. Thanks!
Hi, I’m new to the stm32mp15 series and I’ve been trying to convert code over from a previous microcontroller (stm32f429i-disc1) onto my new MPU. I try to read an input voltage value by running the HAL_ADC_GetValue driver but when I run live expressions to read the variable for my adc value, it is just maxed out at whatever I set the resolution to be (i.e., ADC1 resolution is 12 bits so the value is stuck at 4095). I use STM32CubeMX right now, I enabled continuous conversions but I get stuck at this 4095 value every time I debug and run. Any help or suggestions?
Hi, I am having trouble building my ISPU project. When I attempt to build i get 3 errors:1- fatal error: neuton_generated/neuton_user_types.h: No such file or directory ispu line 13, external location: C:\Human_Movements_Recognition_8_float_off_scale_unique\neuton\include\neuton\nn\neuton_nn.h C/C++ Problem2- Description Resource Path Location Typemake: *** [makefile:48: all] Error 2 ispu C/C++ Problem3- Description Resource Path Location Typemake[1]: *** [src/subdir.mk:20: src/main.o] Error 1 ispu C/C++ ProblemI have included neuton_generated already but it doesn't seem to want to find itAny Ideas?
I compiled the linux kernel uImage and corresponding .dtb file with CubeIDE.Then I mounted the st-image-bootfs-openstlinux-weston-stm32mp1.ext4 and changed the extlinux.conf inside the folder /bootfs/mmc0_extlinux to # Generic Distro Configuration file generated by OpenEmbedded MENU BACKGROUND /splash_landscape.bmp TIMEOUT 20 LABEL OpenSTLinux KERNEL /uImage FDTDIR /stm32mp151a-stm32-computer-firmware-mx.dtb INITRD /st-image-resize-initrd APPEND root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=${console},${baudrate} Then I successfully flashed my emmc0 and U-boot started the linux kernel. I have some thoughts about the UART output log.Does my processor communicate with my PMIC?Why could it not find the /stm32mp151a-stm32-computer-firmware-mx.dtb file at the beginning of the log?Is my Ethernet working? I cannot se any LED-lamp blinking when I plug in the cable, only the orange LED is active, but not blinking.Why doe
MP135 是否具有带双网络端口的裸机程序?客户使用 ThreadX+NetDuoX。
Hi Team, We are currently working on a UAV detection project and are in the process of implementing Fast Fourier Transform (FFT) for signal processing. Our setup includes an ADC with a data rate of 1 MSPS (Mega Samples Per Second). We are looking for a suitable Digital Signal Processor (DSP) that can efficiently handle this data rate and perform real-time FFT processing.Could you please recommend a DSP that would be best suited for our application? Additionally, if there are any available FFT driver files or libraries compatible with the suggested DSP, I would greatly appreciate it if you could provide those references or links.Thank you in advance for your assistance.Best regards,Aravind
Hello, I am using Hyper-V as my VM, since I am on windows, and trying to bring up the STM32MP257F-EV1 development board. I have verified the programmer is installed correctly and have verified that Hyper-V's enhanced mode is running but every time I run the command STM32_Programmer_CLI -l usb it says "No STM32 device in DFU mode connected" I have been following the guide: STM32MP25 Evaluation boards - Starter Package - stm32mpuIs there anything additional I should be doing that I am missing? Any help would be greatly appreciated.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.