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
i have download prebuild image en.flash-stm32mp1-openstlinux-6-1-yocto-mickledore-mp1-v23-06-21.tar.gzit working fine on my stm32mp135f-dk EVK. i want to add docker in it so need the build process of yocto image.Kindly guide me how to do it.
Hello,I want to persist data in flash memory from the Cortex M4 program.I created a section in the linker file:.mySection 0x000000001002f000 : { KEEP(*(.mySection)) } >RAM1_dataSo i know where my data is in the RAM memory but i don't know how to write this data in flash memory so it can be persisted.I saw a lot of examples for other STM products that use function similar to this:void Write_Flash(uint8_t data) { HAL_FLASH_Unlock(); __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGSERR ); FLASH_Erase_Sector(FLASH_SECTOR_6, VOLTAGE_RANGE_3); HAL_FLASH_Program(TYPEPROGRAM_WORD, FlashAddress, data); HAL_FLASH_Lock(); }But i can't find the HAL library containing HAL_FLASH_XXXX function for the STM32mp1 series... Does this library exists?How can i save the data in the flash memory or somewhere that is persisted after a hardware reboot?Do i need to transfert data from M4 Core to A7 Core or does another solution exist
I have an stm32mp153aab board with two sd card connections, they are identical except obviously one is connected to sdmmc1 pins and one to sdmmc2 pins. I have checked schematics and pinmux and everything looks good. sdmmc1 comes up in both uboot and linux. sdmmc2 doesn't come up at all. The card detect works but thats it. The device tree is identical for the two sdmmcs other than the card detect gpios and I have tried different cards. I'd appreciate any help on things to try. Do you have to have it in the uboot device tree for it to work in linux? And I have the mmc driven by hclk6 at the moment if that makes any difference.
I am trying to set up 3 ADC. I set PA4 to ADC1_INP18, PA5 to ADC2_INP19 and PF11 to ADC1_INP2. Will this be something that works? I am monitoring 3 lines (none NEED to be fast).I'm not clear on how to set this up. I am multiplexing several inputs onto these, all single ended. I'm not sure how we will read the data yet, timed, interrupt driven or polled. I am replacing a LPC3250 and re-implementing the functionality.
Freezes here at rcc setupLooking for rcc@50000000Looking for rcc@50000000- result for rcc@50000000: rcc@50000000 (ret=0)- result for rcc@50000000: rcc@50000000 (ret=0)stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 151 haslog attached.Any suggestion where to look, what to change, what to try ?if needed, advise what files needed ? using 2 different ECO system folders with SDK and source files. One using CubeMX generated DT's and then adjusted with additional entries and one using DT's based on the eCO provided 157a-DK1 DT files with some changes. Exactly the same result. Discrete power, and discrete Crystal OSCs. Board runs ECO 1 fine.Adding the log of the tree using the CubeMX generated DTS.https://wiki.st.com/stm32mpu/wiki/Clock_overviewhttps://github.com/STMicroelectronics/linux/blob/v6.1-stm32mp/include/dt-bindings/clock/stm32mp1-clks.hshows#define UART4_K 151This is the UART debug output and 151 is the clock it crashes on. So perhaps the boot is continuin
Hi,I consider the boot option for our device. Normally we boot from qSPI EEPROM. STM32MP157 has an option to boot from SLC NAND. Does SLC NAND at STM32P157 have advantages in terms of read/write speed over qSPI? Thank you in advance!
This is a thread for your input how ST could improve providing known issues for example1. Update the WIKI2. Separate WIKI page,like this used on ST's Chinese website ?https://wiki.stmicroelectronics.cn/stm32mpu/wiki/Visual_troubleshooting_gridhttps://wiki.stmicroelectronics.cn/stm32mpu/wiki/Category:Troubleshooting_grids3 Github repo4. Discord..5. For cusomers, a function on website to submit known issues in specific format. ST can post in known issue WIKI ?etc...
We plan to design a stm32mp13x board equipped with 8MB psram using FMC interface as system RAM. It's going to be very slow but that's fine for our application, and standby power consumption is the topmost priority in this project. How should we deal with all DDR related pins, including both power and signal? Can all VDDQ_DDR and DDR_VREF pins be left floating? Or these power supplies is mandatory, at least a LDO with a few milliamperes output capability required? And how about all addr/data signal? I assume it is safe to left those pins floating but expect an official confirmation for assurance.
Please show me a working example of setting up the MMU for STM32MP157D-EV1. and where to place the Translation table correctly (for cortex A7)It is assumed that all data and program will be located in DDR memory, without using the OS
Hello, I'm trying to boot my EVAL board with the images from STM32MP1 Starter package version 5.0.0.I created a "raw" image from flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp157c-ev1-optee.tsv and flashed it to microSD card using "dd".When I'm trying to boot from microSD, the following message is displayed: PANIC at PC : 0x2ffeff2d Exception mode=0x00000016 at: 0x2ffeff2d I tried different SD cards, and FlashLayout_sdcard_stm32mp157a-ev1-optee.tsv, with no avail.What I'm doing wrong?I have older images from FLASH-stm32mp1-boards-revb-openstlinux-4.14-rocko-mp1-18-11-26.tar.xz, they boot just fine. Detailed specs of my STM32MP157x-EV1 board below:Motherboard: label "MB1262C-01 ES", serial number 2181500042Processor Module: label "MB1263B-01 ES", serial number 21815000027, ES2MP157CAAE chip. Any help will be appreciated. Regards,Sergei
Hi,I have created a device tree for Marvell 88E6185 (10 port switch).Port9 of the 88E6185 is in PHY mode (MII) connected to STM32MP135F Ethernet2. MDIO lines of the Switch directl connected to Ethernet2 MDIO lines.Port0 is connected to Marvell 88E1112 PHY connected to RJ45.SMI of 88E1112 is connected directly to 88E6185 SMI_PHY Port7 and Port8 connected to Fiber Connector.None of the ports are turning on automatically. When I checked the MDC and MDIO lines between CPU and Switch I cannot see any attempt to communicate or connect with the switch. I have installed mdio-tools and I can see the phy and I can control them. I can force them to link up and change speed for every port. After I force them I can ping the google using RJ45 and also Fiber Port.If I remove the fixed-link from the device tree, it gives me error saying cannot connect to phy (error -19)I would like to be able to active the links during startup, is it possible? and also Fiber Connectors have Enable pins
Hello, Can you tell me the differences between two files linker script STM32... FLASH.id and STM32...RAM.id Regards,
This is a request for clarification of the TUR (Time Unit Ratio) calculation in the TTCAN implementation of the FD-CAN peripheral that is part of STM32MP1xxx systems. Specifically: the TUR is composed of a numerator and a denominator, designated FDCAN_TURNA.NAV and FDCAN_TURCF.DC, respectively, in the documentation. For example, see RM0436 pages 2994-2995. The calculation of the NTU (Network Time Unit) is NTU = clock_period * (TUR.numerator / TUR.denominator) My question: is the division a rounding division or a truncating division? The documentation does not specify this. As a concrete example, I am analyzing a TTCAN system using the STM32MP157 FD-CAN1 peripheral with: - numerator = 0x1ffff (= 131071, the maximum allowed) - denominator = 8192 With rounding division, TUR = 16, with truncating division, TUR = 15. Truncating divisions are more common in hardware, so what is the FD-CAN1 peripheral using for its TUR calculation? Any clarification would be appreciated. Thanks in a
Hello, Recently, a STM32CubeMP13 Package has beed added by ST ( here on the wiki, here on github). I tried to use external loader with STM32MP135F-DK board, the same board used in the wiki. First, I used SD external loader, with UART and USB connection, following instruction described here. For USB connection, CubeProgrammer gave me these errors : With UART connection, flashin service work, but when I change boot mode for microSD card and reset, I get nothing on serial port and red led LD4 is blinking. The expected operation, as indicated in the wiki, is to have the blue LED flashing and a message via the serial link. I also tried to flash the program in SNOR memory. With UART connection, I have the same result except for red led, who is not blinking but turned on. With USB connection, I have the same error as with the sd card.I use STM32CubeProgrammer 2.15 and I was careful to choose the right boot modeSince I'm using the same development board
We are working on a custom board (based on STM32MP135F-DK) which uses STM32MP131AAE and STPMIC1DPQR PMIC.We are using STM32CubeProgrammer TSV Flashing service to flash the image into eMMC, in this process we are getting a PMIC Panic NOTICE: CPU: STM32MP131A Rev.Y NOTICE: Model: STMicroelectronics STM32MP135F-DK Discovery Board INFO: PMIC version = 0x21 INFO: Reset reason (0x35): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe0000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using USB INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.8-stm32mp1-r1.0(debug):2021.05-10168-g4a52d0539d(4a52d053) NOTICE: BL2: Built : 11:23:27, Dec 6 2023 INFO: BL2: Doing platform setup INFO: RAM: DDR3-1066 bin F 1x4Gb 533MHz v1.53 INFO: Memory size = 0x20000000 (512 MB) INFO: DFU USB START... INFO: handle USB : Suspend int INFO: USB Suspend mode INFO: handle USB : Reset INFO: handle USB : Reset INFO: phase
Hello,We have designed our FMC interface using NOR Mode B multiplexed AD-Bus.Checking the actual Revision 6https://www.st.com/resource/en/reference_manual/DM00366355.pdfreference manual this is not allowed, see Ch. 25.8.4 (Pg1365):If the extended mode is enabled (EXTMOD bit is set in the FMC_BCRx register), up to four extended modes (A, B, C and D) are available. It is possible to mix A, B, C and D modes for read and write operations. For example, read operation can be performed in mode A and write in mode B. The extended mode is not compatible with the muxed mode (EXTMOD bit must be kept cleared in muxed mode). This has changed from the time we have developed our interface. At that time the document had Revision 4. And this chapter does not contain the restriction in the last sentence as outlined above. Can somebody explain the reason for the change?What can happen if we keep this settings for the fmc2 the way we have designed it? Thanks
Getting panic error during optee binary update. We are stuck on this. Kindly provide any guidance. We are using emmc for boot and Two file updating till now. But after fip-stm32mp135f-dk-optee.bin update we are getting this error. Here is the log- NOTICE: CPU: STM32MP135F Rev.Y NOTICE: Model: STMicroelectronics STM32MP135F-DK Discovery Board INFO: PMIC version = 0x21 INFO: Reset reason (0x35): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe0000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using USB INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.8-stm32mp1-r1.0(debug):() NOTICE: BL2: Built : 17:16:39, Jan 4 2024 INFO: BL2: Doing platform setup INFO: RAM: DDR3-1066 bin F 1x4Gb 533MHz v1.53 INFO: Memory size = 0x20000000 (512 MB) INFO: DFU USB START... INFO: handle USB : Suspend int INFO: USB Suspend mode INFO: handle USB : Reset INFO: phase ID :3, Manifestation 0 at c717367e INFO: S
Hi team,I have an STM32MP157 board with the following git branch.a. buildroot: remotes/origin/st/2023.02.6b. buildroot-external-st: remotes/origin/st/2023.02.2I got the error message "no service found for - "org.qt-project.qt.camera"" when I ran the QT5 example camera code.The following are plugins:# ls /usr/lib/qt/plugins/audio imageformats qmltoolingbearer mediaservice scenegraphegldeviceintegrations platforms videogeneric playlistformats Execute camera program:export QT_DEBUG_PLUGINS=0export QT_PLUGIN_PATH=/usr/lib/qt/plugins/root@buildroot:/usr/lib/qt/examples/multimediawidgets/camera# ./cameradefaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera" It looks like the library is loaded.# ldd ./cameralinux-vdso.so.1 (0xbed92000)libatomic.so.1 => /lib/libatomic.so.1 (0xb6f20000)libQt5MultimediaWidgets.so.5 => /usr/lib/libQt5MultimediaWidgets.so.5 (0xb6ee0000)libQt5Multimedia.so.5 => /usr/lib/libQt5Multimedia.so.5 (0xb6e10000)libQt5
We have designed 2 seperate boards, main board has STM32MP135FAE on board connected to Microchip LAN8742 via ethernet1 mac and it is working. second board is a network board and has Marvell 88E6185 switch on board. Ethernet2 mac on STM32MP135F is connected to Port9 at the Switch using MII. However, STM32MP135F is not enabling internal clock. And eth2 is not activated.I have tried setting ETH clock at 25MHz, no luck.I have attached my configuration files and clock settings and dmesg log.Any idea what might be wrong on my configurations?
Hello Team, Now I am working on stm32mp133f MCU. I need to implement break error interrupt in USART. My requirement is when we got 'NULL' data on RX FIFO . it should generate break interrupt. shall I get this interrupt with frame error.
Online run successful (FSBLA_Sdmmc1_A7, MP13-BSP_BasicTemplates, DDRInit-A7).Successfully burned SD card, but it did not run。Using chip STM32MP135DAE7。Modified #define USE_STPMIC1x 1U to #define USE_STPMIC1x 0U, Other unchanged. The starting position of SD card 128LGA has the same data。What checks do I need to perform? The chip used is different from the official board(use STM32MP135DAE7)。
..
Processor stm32mp157it runs Opencv in baremetal modesingle-tasking environment.when calling a methodvoid UMat::addref(){if( u )CV_XADD(&(u->urefcount), 1);}we get DAbt.The disassembler shows a set of instructions 388 CV_XADD(&(u->urefcount), 1);c013c5cc: ldr r3, [r11, #-8]c013c5d0: ldr r3, [r3, #24]c013c5d4: add r3, r3, #8c013c5d8: dmb ishc013c5dc: ldrex r1, [r3]c013c5e0: add r1, r1, #1c013c5e4: strex r2, r1, [r3]c013c5e8: cmp r2, #0c013c5ec: bne 0xc013c5dc <_ZN2cv4UMat6addrefEv+48>The memory addresses being accessed are correct and located in the DDR RAMWhen executing instruction c013c5e4: strex r2, r1, [r3], a DAbt interrupt occurs.'GNU Tools for STM32 11.3.rel1.20230912-1600'What is the reason for this behavior?
Hi team,I have an STM32MP157 board with a Cortex-M4 processor. I have a simple task, which is to toggle the GPIO at maximum speed with accuracy, ensuring that the clock width does not vary.The maximum toggle speed we require is approximately 15ns between the rising and falling edges. Using the Keil IDE, it is possible to achieve this speed with the Nucleo F746ZG board, which has the same speed as the STM32MP157 for the Cortex-M4 processor.I have generated code in Cube IDE, but the speed we achieved for the STM32MP157 Cortex-M4 is slow, around 60ns. The code used to toggle the GPIO in a while loop is as follows:GPIOF->BSRR = LED_Pin << 16;GPIOF->BSRR = LED_Pin;I appreciate any assistance in improving the toggle speed for the STM32MP157 Cortex-M4.Thank you.Kundan Jha
I have an STMP157F-EV1 and I have followed the instructions here to download and program the starter package. Everything works as best I can tell except the remote console hangs just after the initial login messagestm32mp1 login: root (automatic login)It prints a line feed as if it is logging in, but no shell prompt. Keyboard input also appears ignored, not even return keys to scroll. Attached is the complete startup log on the remote terminal. There are a couple of messages indicating file system resizing. That seems strange given it was just programmed, but I'm not sure what is expected. I can start a terminal on the attached display and if I type 'systemctl reboot' (without the -i). I get the following message:User root is logged in on ttySTM0Please retry operation after closing inhibitors and logging out other users.Alternatively, ignore inhibitors and users with 'systemctl reboot -i'So that also looks like root is logged in. I have verified
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.