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
We are having issues with STM32MP157 UART7 (address 40018000) exiting low power CStop mode and waking up Linux (v4.19 from ST github).We have confirmed that CStop mode is entered, and it can be exited using an external interrupt (55 pmic_irq), however it does not exit CStop mode with UART7 RX.The stm32mp175c.dtsi defines uart7 interrupts as GIC interrupt 82 and EXTI interrupt 32, and defines the uart as a wakeup source uart7: serial@40018000 { ... interrupt-names = "event", "wakeup"; interrupts-extended = <&intc GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, <&exti 32 1>; ... wakeup-sou
I would like to understand why I cannot find and enable STM32 SPI support in the Linux kernel and resolve conflicting information in the Wiki articles I am using.When I use menuconfig, I cannot locate STM32 SPI support in the menu. If I use the search option (/) I can see the reasons are that SPI_STM32 depends on ARCH_STM32 which is set to [N]. In addition, ARCH_STM32 depends on ARM_SINGLE_ARMV7M which is also set to [N].Are there any other parameters I should be adding to the invocation of 'make menuconfig'?Any ideas why these variables are not set correctly and how to resolve the issue?I suspected something about my environment. I am using the Developer Package and running the following to setup the terminal environment:source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabiI have applied the patches and fragments and not had an issue building or running the kernel or adding a device tree change from the Cube code
I was trying to test the ADC of a STM32MP157C-DK2. I downloaded a basic example program to perform the data acquisition in the M4 processor (https://github.com/STMicroelectronics/STM32CubeMP1/tree/master/Projects/STM32MP157C-DK2/Examples/ADC/ADC_SingleConversion_TriggerTimer_DMA)The results that I'm having in the DMA buffer don't correspond with de DAC configuration guided by the USER1 button, getting values such as 0xfff or 0x800 instead of the values I'm expecting ( from 0 to maximum range in 4 steps as stated in the documentation) Should I connect some input to some output? The documentation doesn’t seem clear to me. It states that "If same pin is used no connection is required, it is done internally. Otherwise, user need to connect a wire between PA4 and PA4". I searched PA4 in the DK2 schematics with no luck. What could be the source of this behavior?
I apologize in advance as the question is really a basic and obvious one ... My custom board is using an STM32MP151 SoC.Is it possible to re-write programmed OTP bits (namely, OTP Word 3 for boot modes).My feeling is that, this is not possible (One Time Programming). A complementary question: I try to do a soft selection of the boot source (instead of dealing with hardware pins), so I thought about fusing the OTP word so that it'd start from SPI NAND by default, then force the Serial boot using the TAMP backup register 20 if needed.Does it makes sense ?Thanks,Jacques
Hello,I am using an stm32mp157c-dk2 and browsed the stm32mp1 workshop MOOC : https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/STM32MP1_workshop.htmlI tried launching the pre-configured VM given here : https://drive.google.com/drive/folders/1eHO37VljVpbTt-TBJFZ2-Yack5fZPj-vBut the updated archive files (OpenSTLinux-1.2, 2.0, etc.) are corrupted.This may be due to their extension (.7z.003 instead of .7z).Any way to fix this?Thanks.
Hello everyone,I'm currently working with a STM32MP157c. This microcontroller includes multiple timer peripherals (General-purpose timers / Advanced-control timers) and also ADC peripherals. Therefore it is possible to trigger the ADC conversion by a timer. This is working without any problems using the timer as PWM Generator following the instructions in https://wiki.st.com/stm32mpu/wiki/How_to_use_the_IIO_user_space_interface#How_to_set_up_a_TIM_or_LPTIM_trigger_using_the_sysfs_interface .When the Timer is used in PWM Capture Mode, I haven't managed to trigger an ADC conversion. My approach so far:1) Adjusting Device Tree as follows (according to https://wiki.st.com/stm32mpu/wiki/TIM_device_tree_configurationand https://wiki.st.com/stm32mpu/wiki/ADC_device_tree_configuration) :[...] &adc{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&adc_pins_mx>; pinctrl-1 = <&adc_sleep_pins_mx>; status = "okay"; vdd-supply = <&vdd>; vdda-suppl
I want to know how to use ta to get the startup log information during the bl32 startup phase or if there is another way to store the log information so that I can get it in the bl32 phase
Hello,we are bringing-up our custom STM32MP157AAB3 board and we are facing some errors in linux with the uSD that it's connected to the SDMMC1 interface.Here follows our setup:HWSDMMC1 cabled to a uSD connector, PE9 used as card detectSDMMC2 cabled to a 4GB eMMCSDMMC3 cabled to a custom connector (mainly for WiFi modules)SWOpenSTLinux-2.1.0Custom devicetree created starting from STM32CubeMX tool with USER CODE derived from EVKs dtstf-a and u-boot are read via SDMMC1kernel is loaded via tftpRFS is mounted via NFSWhen we insert the uSD card the kernel periodically prints this error:[ 134.448880] mmci-pl18x 58005000.sdmmc: error -110 requesting statushowever the device is usable.Using several uSD cards (of different manufacturers) we see that some are detected at the insertion and the volumes are automatically mounted, some are detected (the kernel creates the devices) but non other actions are performed (trying to manually mount the volumes stucks the tool), some other are not even detec
Hi!During loading flash_layout image to custom STM32MP1 I've got following error after staring u-boot and truing to load information to partition 0x04 fsbl1:U-Boot 2020.01-stm32mp-r1 (Jan 06 2020 - 20:56:31 +0000)CPU: STM32MP157DAB Rev.ZModel: STMicroelectronics STM32MP157A-DK1 STM32CubeMX boardBoard: stm32mp1 in trusted mode (st,stm32mp157a-stm32mp151-dk1-mx)DRAM: 512 MiBClocks:- MPU : 650 MHz- MCU : 208.878 MHz- AXI : 266.500 MHz- PER : 24 MHz- DDR : 533 MHzFastboot key pressed, STM32Programmer key pressed, entering download mode...WDT: Started with servicing (32s timeout)NAND: 0 MiBMMC: STM32 SD/MMC: 0In: serialOut: serialErr: serialinvalid MAC address in OTP 00:00:00:00:00:00stm32 vrefbuf timed out: -110adc@0: can't enable vdd-supply!board_check_usb_power: single shot failed for adc@0[18]!Net: No ethernet found.Hit any key to stop autoboot: 0Boot over usb0!Error: fsbl1 (0x4): invalid address 0x4400 (mi
Hi!Could you please give me exact details of following eth PHY error:[ 95.822137] stm32-dwmac 5800a000.ethernet eth0: no phy at addr -1[ 95.826911] stm32-dwmac 5800a000.ethernet eth0: stmmac_open: Cannot attach to PHY (error: -19)Why it searches addr -1?I'm using LAN8720 PHY on custom board. Here is kernel device tree: eth1_pins_mx: eth1_mx-0 { pins1 { pinmux = <STM32_PINMUX('A', 1, AF11)>, // ETH1_RX_CLK ** <STM32_PINMUX('A', 7, AF11)>, // ETH1_RX_CTL ** <STM32_PINMUX('C', 4, AF11)>, // ETH1_RXD0 <STM32_PINMUX('C', 5, AF11)>; // ETH1_RXD1 bias-disable; }; pins2 { pinmux = <STM32_PINMUX('A', 2, AF11)>; // ETH1_MDIO bias-disable; drive-push-pull; slew-rate = <0>; }; pins3 { pinmux = <STM32_PINMUX('B', 11, AF11)>, // ETH1_TX_CTL <STM32_PINMUX('C', 1, AF11)>, // ETH1_MDC /// <STM32_PINMUX('C', 2, AF11)>, /
Hello,I'm trying to embed an app in the st-linux distribution. I mean that the goal is to have it compiled with bitbake and integrated in a custom st-image-weston.I tried to use the gtk hello world example of Developper section (that run without problems) but with distribution package. ( https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Create_a_simple_hello-world_application )So I made a bitbake recipe but when I run it I get the error "error: gtk/gtk.h: No such file or directory".But bitbake layers include gtk+3, when I run bitbake gtk+3 it is successful.I tried adding gtk3 to compiling flags, DEPENDS, RDEPENDS, do_configure[depends] but nothing worked. The only thing that worked is sourcing the developper package sdk environnement setup, but it's weird. I'm a little of a beginner with bitbake and I didn't found how to make that developper package app work with the distribution package.Here is my .bb file :# Recipe
HelloI switched to the Distribution package to have access to the layers provided by ST.After I use command repo sync I, a file named layer is created.When I:DISTRO=openstlinux-weston MACHINE=stm32mp1-disco source layers/meta-st/scripts/envsetup.sh I get the following error[source layers/openembedded-core/oe-init-build-env][from nothing]Error: The OE SDK/ADT was detected as already being present in this shell environment. Please use a clean shell when sourcing this environment script.How can I clean the shell environment ?
Hi, I did some power measurements with a Joulescope which measures the full power given to the card (no distinction between VDD, VDDCORE, etc.) - we chose this way for first measurements without card's resistors modification.I mostly followed the same steps as explained in the AN5284 application note.For point 3.1 with CoreMark, I've same iterations per seconds and a much higher power measurement which is normal as I measure the full system. But the difference between 1 or 2 core is the same as in the document.For point 3.3 with data acquisition : Here again, I have higher power measurement but it's still consistent as the ratio of power reduction is the same than in theorie.Then I was interested in point 4.3 (various low power modes) but I did get results I don't understand. Know that I changed the /etc/systemd/sleep.conf as explained here and used the systemctl suspend commend for MPU.When the card is idle (just powered on, but no program running) : 3060 mW When the card do a fo
Hi ,Actally i want to read a PISO shifht register as spi slave.Device Tree: spi2_pins_a: spi2-0 { pins1 { pinmux = <STM32_PINMUX('A', 9, GPIO)>, /* uart8_tx */ <STM32_PINMUX('I', 2, GPIO)>, /* uart8_tx */ <STM32_PINMUX('I', 3, GPIO)>, /* uart8_tx */ <STM32_PINMUX('G', 2, GPIO)>; /* uart8_tx */ bias-disable; drive-push-pull; slew-rate = <0>; }; };&spi2 { compatible = "spi-gpio"; pinctrl-names = "default"; pinctrl-0 = <&spi2_pins_a>; cs-gpios = <&gpiog 2 0>; gpio-sck = <&gpioa 9 0>; gpio-mosi = <&gpioi 3 0>; gpio-miso = <&gpioi 2 0>; spi-delay-us = <1>;
Good afternoon, Olivier. Thanks for the help. But I saw a problem with MPU Serial (COM3). I ran ipconfig in Linux and found the real address of usb0 192.168.7.2 after that, the console worked.But the board does not allow debugging. I must have done something wrong. Sincerely, Alexander.
Hi, I am developing firmware on the STM32MP157C-DK2 in engineering mode and using STM32Cube_FW_MP1_V1.4.0 and STM32CubeIDE. I must say this is my first project with a STM device and the tools. I am unable to direct printf to the UART4 linked to the onboard VCP of the STLink debugger. The cube package example 'UART_Receive_Transmit_Console' seems to directing printf to USART3 port, not the UART4. After reading the application note 'AN4989 Rev 3: STM32 microcontroller debug toolbox', printf redirection to uart port seems quite simple task. But since UART4 cannot be assigned to the CortextM4, it is shared port. I am unable to figure out where the handle of UART4 port is defined, which is essentially needed to redirect printf command. Thanks in advance for any help in making it work. Kind regardsHafeez
..
Hi,Looking at the reference manual, en.DM00327659.pdf, page 3929 it seems the simple way of debugging previous M4 processors using printf() redirect to the ITM and then using the SWO pin/STLINK interface could be used on the MP1 M4 core as well.But there isn't simple mention of the ITM functions in the STM32Cube_FW_MP1_V1.0.0 release, and there is not even a single declaration of the ITM HW in the stm32mp157cxx_cm4.h file(not even the 0xE0000000 base address).Can you provide some code example please, it will be much better starting point than the vague description of the ITM operation in the reference manual. Thank you!Edit: ST-Link utility connected to the STM32MP157C-DK2 dev board seems not able to connect (loaded with latest V2.J34.M25 firmware) to the MP1. It does reset it though, so printf in the SWO viewer is out of the question. Maybe there is a way to redirect ITM to the M4 core ?Second, seems the M4 ITM hw is loosely based on the STM32F469/479 ITM core(at least register addres
Hello, I wanted to know is there a support for autoconf , automake and libtool for STM32MPU? Is there any definitive guide to do so to enable it or install it? Can this be natively installed using sudo apt-get?I have many utilities working on raspberry PI and wanted to port them to stm32MPU but they require autoconf tools for building .Please let me know.Best,D
Hi, i am searching for informations. Sorry first for my english. I am trying to establish a connexion between my stm32 and my phone, i have to know when i send information from my smartphone to my discovery.First i have the starterPackage linux image on my discovery and i have a display example. I can connect my computer with ssh to it and put simple code example on it (hello world), and i can run it. I want the discovery to become a wifi host and send/receive informations between my smartphone and the discovery. But i cant find example on it.For the moment i want to send wifi to discovery and connect to it with my smartphone. Hoping you have some answers for me.
Hi,I'm developping an application where we want the cortex-M doing some power management (with OpenAMP) and the cortex-A taking picture and saving it on SD card.I have the STM32MP157A-EV1.I used the OpenAMP_TTY_echo_wakeup sample that I modified for my need to do the power management. Everything is working fine if I boot in third mode (ie. stm32mp157c-ev1-m4-examples). However, I don't have any camera input as it's saying that /dev/video0 doesn't exist.If I boot in second mode (ie. stm32mp157c-ev1-a7-examples), I've got a camera but I couldn't suspend at first (systemctl suspend), because I would get the following error : PM: Device 40017000.dac:dac@1 failed to suspend: error -16So, I commented every line of code linked to DAC and it worked (ie. I could have the OpenAMP and camera running at the same time). But it's not that great of a workaround. Ideally, I would want to update the device tree. Where could I find the initial device trees used so that I just can quickly modify them ? I
Hi!I use STM32MP151 chip. Use Linux OS. Two master clocks(MCLK) clk_x8(for 48000) and clk_x11(for 44100) connected to I2S_CKIN throw switch. GPIO select it. Can I configure SAI driver and device tree for this situation?
I have an STM32MP157F-DK2 board. I want to be able to build my own image from scratch and I keep hitting knowledge gaps in the how-to guides on the st wiki page. I have tried to follow multiple guides including this one: https://wiki.st.com/stm32mpu/wiki/How_to_manage_OpenSTLinux_project_in_STM32CubeIDEWhat I have done:I have took the default pinout from the STM32MP157F-DK2 from STM32CubeMX and generated the Device tree for that. I have opened the ioc file within STM32CubeIDE.I have setup OpenSTLinux as per the instructions in the how-to guidesWhere I am stuck:I don't have any reference for the run or build configurations.I have not found any information to find the Eclipse or build artifiacts as found in the example I have linked:What I have:What I am looking to do, as per the guide:
Hi,Is there any example application code for STM32MP1 to keep A7 in deep sleep mode while keeping M4 in always run mode?Regards,Ram
Hi,we are currently testing our FDCAN on our STM32MP157F Device. We get some Messages that there ist an access violation. We see that is caused by the M_RAF interrupt. Are there any hints to get rid off these messages and errors? We tried different settings with the message_ram config in the DT but with no successBest regards,Niklas
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.