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
I have three UARTs on the board, all passed the loopback test (wire the tx and rx pin together on the same UART)Then I connect UART 1 to UART2 while UART 1 is transmitter and UART2 is receiver.UART 1 is using HAL_UART_Transmit() to send data to UART2.On the UART2 side, after initialization, I did__HAL_UART_ENABLE_IT(uart_interrupt_config.huart, UART_IT_RXNE); // read data register not empty interruptionIRQ_SetPriority(UART2_IRQn, 0);IRQ_Enable(UART2_IRQn);I put a break point inside UART2_IRQhandler but never reaches there.What am I missing here?Thanks in advance
Hello,Upgrading Linux 5.4 causes SPI to fail to initiate (see boot log snippet below). Any ideas what would cause this (same DT)?Again thanks for your great support!Best RegardsChrister[ 2.782226] spi_stm32 4000c000.spi: failed to request tx dma channel[ 2.787222] spi_stm32 4000c000.spi: failed to request rx dma channel[ 2.853534] ------------[ cut here ]------------[ 2.858162] WARNING: CPU: 0 PID: 21 at drivers/spi/spi.c:2475 spi_register_controller+0x4c8/0x75c[ 2.867232] couldn't get idr[ 2.867236] Modules linked in:[ 2.873229] CPU: 0 PID: 21 Comm: kworker/0:1 Not tainted 5.4.192 #1[ 2.879606] Hardware name: STM32 (Device Tree Support)[ 2.884852] Workqueue: events deferred_probe_work_func[ 2.890102] [<c0111e98>] (unwind_backtrace) from [<c010d544>] (show_stack+0x10/0x14)[ 2.897982] [<c
Using yocto project and changed default sysvinit to systemd with below line in local.confINIT_MANAGER = "systemd" DISTRO_FEATURES += "pam vulkan opengl egl wayland" CORE_IMAGE_EXTRA_INSTALL += "wayland weston" IMAGE_INSTALL:append = " chromium-ozone-wayland libva-utils intel-media-driver mesa vulkan-loader gst-player"With above changes system boots up and can see a blank screen with cursor blink, no auto launch of weston can be seen.Please assist.
I've tried to flash STM32MP157C-DK2 SDCard like described in ST wiki with command STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv.and it didn't work! i got following error report. it seems it has trouble to reconnect the device. does anyone have an idea why it didn't work? or does anybody get similar problem? how do i get it working? Thanks a lot! ------------------------------------------------------------------- STM32CubeProgrammer v2.1.0 -------------------------------------------------------------------USB speed : Full Speed (12MBit/s)Manuf. ID : STMicroelectronicsProduct ID : DFU in HS Mode @Device I
I have a STM32MP157C-EV1 board.Can i upgrade STM32MP157C-EV1 board to STM32MP157F-EV1 only removing TM32MP157C processor and reinstaling a new TM32MP157F processor?If not, how can i upgrade MB1263 MPU subsystem daughterboard to the last microprocessor family?
Hi!We are using mdma (dma0chan20) to do "memory to memory" transfers from the FMC to (user) RAM. The FMC is used to access a FIFO buffer that is filled by an FPGA (128kB size).Between individual DMA transactions we measure a delay up to 5ms leading to a buffer overrun in the FIFO.I tried to improve this by scheduling a second DMA transfer directly after the first. I assumed that this "overlapped" transfer will automatically start when the first completes and therefore reduce the time between DMA transfers.This did not work as I assumed:I get the dma_completed callback of the first transaction, but the second (overlapped) transfer does not seem to get started. Info: I put a dev_dbg into stm32_mdma_irq_handler and it is never called by the overlapped transaction. Only by the first one.Funny fact:When I change the used dma_channel to "dma2chan0" and using the "dma" (and not "mdma" engine) it works. The overlapped transfers work and all dma_completed get called.So far so good, but:Th
Hello, teachers.I'm sorry in advance because I think I'll be talking too long.The board I use is STM32MP157D-EV1 (evaluation board).From the previous question and answer, I found that Ubuntu 18.04 and SDK could not be installed on my board, which had a starter package installed through Windows OS.I also knew that Linux, Ubuntu (22.04 or 20.04) OS (64bit) is required to install a developer package or distribution package.So I installed Ubuntu 20.04 LTS on VMWare and even installed the STM32CubeProgrammer program. (Although VMWare-Ubuntu and STM32 evaluation board are not connected yet, I think we can find and connect various information such as environmental variables. But if it doesn't work, I'll have a headache.)Next, here's my situation.I need to install Ubuntu OS and SDK on the board I use for comfortable test construction. From what I heard from the source code developer, the version doesn't matter. Only Ubuntu OS is required. They said that cross-compilation is not neces
Hello, teachers.First, The board I am using is the STM32MP157D evaluation board.I checked the article that the starter package can be installed in Windowsos, but the developer package and the distribution package are only available in the Linux environment.In addition, Ubuntu 18.04 was installed on VMware as Ubuntu 20.04 LTS because it may not be compatible. I installed the virtual environment and the STM32Cubeprogrammer Tool, and I tried to connect with virtual Linux by booting the board in USB mode, but the STM32 tool on Linux cannot find it.By installing another USB device on the PC, we confirmed that the USB driver works normally. The STM32Cubeprogrammer version is seen as API v2.12.0 | Linux-64bits.How can I connect to the STM32MP157D-EV1 board and USB in a VMWare Linux environment (Ubuntu 20.04 LTS)? Please give me a hint.
Hi,I have custom board running 5.15.24 OpenSTLinux on STM32MP157F based board.Problem is, when I try to select CONFIG_GCC_PLUGINS. It depends on depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h)in file scripts\gcc-plugins\KconfigI just can't select it, because evaluation of the conditions is always negative.I have traced the CC binary and when I run -print-file-name manually on it, plugin-version.h exist on the path.Problem seems to be with $(shellcall, which on ST port of Linux always crops output to 256 characters (which results in non existent path, because it points deeply into Yocto build folders)! I have tried it with $(shell,echoand it results in same cropping.When I try the same thing on my i.MX repository from NXP, output is correct and I can select CONFIG_GCC_PLUGINS correctly.Any ideas for what is going on?Thanks in advance,Michal Spanik
There seems to be an issue with CubeProgrammer and parsing hex strings that are longer than 8 characters. For example, an offset of 0x05984400 will parse correctly but 0x105984400 will not. It will incorrectly parse as 0x05984400. I am trying to reference an offset that is past the 4GB mark so CubeProgrammer is truncating my offset value. Is it supposed to do that? What is the best way to reference partitions past the 2^32 bits mark? Are other people able to get it to work or am I just doing something weird? Edit: Also the images in Kirkstone are defaut to a rootfs size of 4GiB.
Hello!I upgraded Linux kernel from 5.4 to 5.15 (ST linux-5.15-stm32mp-r2). Simply added new options to kernel config and kept mostly the same DT. I get the error below in the boot log which renders the whole system unusable.Based on the boot log below what would you think I am missing? If it is impossible to know without a .config and/or DT I will try to add those.[ 3.254882] platform 50000000.rcc: Linked as a consumer to firmware:scmi[ 3.261800] rcc@50000000 Dropping the fwnode link to scmi[ 3.267423] bus: 'platform': __driver_probe_device: matched device 50000000.rcc with driver stm32mp1_rcc[ 3.277231] platform 50000000.rcc: error -EPROBE_DEFER: supplier firmware:scmi not ready[ 3.285613] platform 50000000.rcc: Added to deferred list[ 3.291297] device: '50001000.pwr': device_addThanks in advance!
In trying to provide X11 support to a Weston distribution, I modified the weston distro conf (meta-st-openstlinux/conf/distro/openstlinux-weston.conf) to read:#DISTRO_FEATURES:remove = " x11 " # with X11 PREFERRED_PROVIDER_virtual/xserver = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', 'xserver-xorg', d)}"This appropriately builds the X11 libraries needed, but I get a configuration error for the mesa-gl package:| ../mesa-22.0.0/meson.build:555:6: ERROR: Problem encountered: xlib based GLX requires at least one gallium driverIt looks like the invocation of meson does not pass the right value for gallium-drivers even though the environment does imply it should be set appropriately. The do_configure log file contains "-Dgallium-drivers=":NOTE: Executing meson -Dshared-glapi=enabled -Dglx-read-only-text=true -Dplatforms=x11 -Ddri3=disabled -Degl=disabled -Delf-tls=false -Dgallium-drivers= -Dllvm=disabled -Dgbm=disabled -Dgles1=disabled -Dgles2=disabled -Dlmsensors=dis
I am trying to compile a recipe for STM32MP157c for yocto kirkstone kernel version 5.15 on Soc provided by karo-electronics i.e. QSMP1570 module on qsbase2.I have written a recipe and kernel module for gpio interrupt which is unable to be compile, the log file is attached.There are modpost errors being encountered.
I have a board from karo-electronics, STM32MP157c based QSMP 1570 SOM over qsbase2, I am trying to configure above mentioned board for my specific application, The distribution is build using yocto by karo-electronics, I am unable to edit the dts files as there are a lot many appended layers and I am new to yocto , I was having a little bit hands on in Debian that too on RPi and BBB but yocto is new for me.So, basically i am trying to make a access controller ,using stm32mp1 MPU ,- how can i start with it, -what are the advantages of yocto -add or append dts files, mainly configuring the interrupts for various peripherals and GPIO as well
I even installed the starter package in EMMC boot mode.And I want to install a developer package.I want to install SDK, can I use STM32MP157D-EV1 board using STM32Cube Programmer in Windows OS?Ubuntu 18.04 was installed in virtualbox and STM32Cubeprogrammer was installed. However, the program cannot read the STM32 board on the USB port.I want to install Ubuntu 18.04 on the STM32MP157D-EV1 board. Is there any way?
I am using the STM32MP157D-EV1 board.The starter package is currently installed in EMMC boot mode.the version is "ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23 \n \l" .I need to install Ubuntu 18.04 on this board, but I don't know how. Do I have to delete the installed package now and install Ubuntu 18.04?Ah, I downloaded the ubuntu-18.04.6-desktop-amd64.iso file. I can use Windows 10 and Oracle virtualbox.I want to use Windows 10 if possible, but if it's impossible, I can also use Oracle virtualbox.
Hello community,the errata says (in combination with the missfunciton of the delay block), that only modes up to DDR50 can be used with the STM32MP1xx.Actually we now have the problem, that writing to the SD card works well but the reading through the level shifter does have errors.Now we are afraid, that because of not beeing able to use the delay block, the problems mentioned in the errata are also present with the DDR50 mode.So, we configured in the device tree the clk_in to be used from the level shifter for the SD card.Does anyone have an idea, what we can do else to get the SD card running with DDR50? Writing (sychronous delay clock and data through the level shifter) is working fine. Read is working only with errors.Any ideas what could go wrong? Any idea is welcome to be tested...Best regards,Jan-Otto
Suppose I would implement a sysfs interface that enables me to set the dr_mode of the dwc2 driver. Is it possible without huge changes in the code, to change the dr_mode on the fly via userspace? We might use the usb-role-switch functionality of the dwc2 drd driver, but can it be dynamically set just like that?
Hello,I have the stm32mp157c-dk2 board and have connected two CAN Bus transceivers to it.FDCAN1 is assigned to the A7 CPU and the FDCAN2 is assigned to the M4 CPU.Both transmitters are connected to the same CAN bus. There is also a 3rd device connected to the same can bus.When there is very low traffic on the can bus everything is fine.All messages from all 3 CAN nodes can be received correctly everywhere.When there gets little more traffic on the bus then the FDCAN2 on the M4 CPU starts to transmit wrong frames.Also when the traffic goes low again the problem stays the same until reboot of the M4 CPU.It is also hard to reproduce the issue. It sometimes takes a few hours or days for the issue to happen.Here is the data on the bus when everything is ok:# candump can0can0 10000681 [3] 0A 00 05 <- Data from M4 CPUcan0 10000682 [3] 0A 00 19 <- Data from M4 CPUcan0 1810A080 [8] 80 00 00 18 00 01 00 00 <- Data from 3rd d
Hello,I'm using a ST32MP157C-DK2 board to develop an application running on CM4 that basically handles a CAN Standard communication.I routed the FDCAN1 signals on PA11 and PA12 and I am trying to send out some random data with no result...Here is my code:static void MX_FDCAN1_Init(void) { /* USER CODE BEGIN FDCAN1_Init 0 */ /* USER CODE END FDCAN1_Init 0 */ /* USER CODE BEGIN FDCAN1_Init 1 */ /* USER CODE END FDCAN1_Init 1 */ hfdcan1.Instance = FDCAN1; hfdcan1.Init.FrameFormat = FDCAN_FRAME_CLASSIC; hfdcan1.Init.Mode = FDCAN_MODE_NORMAL; hfdcan1.Init.AutoRetransmission = DISABLE; hfdcan1.Init.TransmitPause = DISABLE; hfdcan1.Init.ProtocolException = DISABLE; hfdcan1.Init.NominalPrescaler = 1; hfdcan1.Init.NominalSyncJumpWidth = 1; hfdcan1.Init.NominalTimeSeg1 = 2; hfdcan1.Init.NominalTimeSeg2 = 2; hfdcan1.Init.DataPrescaler = 1; hfdcan1.Init.DataSyncJumpWidth = 1; hfdcan1.Init.DataTimeSeg1 = 1; hfdcan1.Init.DataTimeSeg2 = 1; hfdcan1.Init.M
Hello, I have received a STM32MP157F-DK2 so I develop a program to send data through the SPI port toward other device (like a STM32 nucleo, maybe).Reading about this first device I saw that example code won't work there but I should use spidev on openstlinux ( wiki st com stm32mpu wiki SPI_overview ). However, in order to spidev get to work is needed to select the port name (i guess)... the case is:/sys/bus/spi/devices and /dev/spi* have "N-O-T-H-I-N-G":pouting_face: although the port is physically installed >:( . Really I don't know what is the meaning of creating a image for this device if this will no recognize all of the present hardware :fearful_face:.Well, in wiki st com stm32mpu wiki SPI_overview says in "3.1 Kernel configurationEnable SPI support (SPI framework and STM32 SPI driver) in the kernel configuration through the Linux Menuconfig tool: Menuconfig or how to configure kernel. "This is done manually in your kernel .config file:CONFIG_SPI=yCONFIG_SPI_MASTER=yCONFIG
Hi!I am using STM32MP157C-DK2 and i want to start the coprocessor from bootloader (I have readed the wiki page). First, I have done it manually and everithing works fine:I have changed kernel m4_rproc:&m4_rproc{ /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/ mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; mbox-names = "vq0", "vq1", "shutdown"; status = "okay"; /* USER CODE BEGIN m4_rproc */ memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; interrupt-parent = <&exti>; interrupts = <68 1>; wakeup-source; st,auto-boot = <1>; /* USER CODE END m4_rproc */ m4_system_resources{ status = "okay"; /* USER CODE BEGIN m4_system_resources */ /* USER CODE END m4_system_resources */ }; };I have loaded the firmware and run bootc
I want to be able to have the Ethernet port on my board be configured as a link local address and be able to receive DHCP. How can I accomplish this?
I'm having trouble getting TF-A to start from USB DFU using the STM32Programmer CLI. Here's what I get:$ ./xpro_uboot_prgm.sh ------------------------------------------------------------------- STM32CubeProgrammer v2.11.0 ------------------------------------------------------------------- Warning: Timeout is forced to 30000 ms USB speed : High Speed (480MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 SN : 003B00403431510930393938 DFU protocol: 1.1 Board : -- Device ID : 0x0500 Device name : STM32MP1 Device type : MPU Revision ID : -- Device CPU : Cortex-A7 Start Embedded Flashing service Memory Programming ... Opening and parsing file: tf-a-stm32mp153a-xpro-mp1-mx-usb.stm32 File : tf-a-stm32mp153a-xpro-mp1-mx-usb.stm32 Size : 220.38 KB Partition ID : 0x01 Download in Progress: [==================================================] 100% File do
Hi all!!Follow the wiki page, I added support to kernel FIT image in my Yocto distro for the board stm32mp157c-dk2 based on openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.Just I added the option: MACHINE_FEATURES += "fit" and I selected BOOTSCHEME_LABELS += "trusted" in stm32mp15-disco.conf and finally I generated the new image.The problem is thar after start kernel I see a ETZPC trace that does not appear in the typical configuration.FIT image traces:## Loading kernel from FIT Image at c2000000 ... Using 'conf-stm32mp157c-dk2.dtb' configuration Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2022-09-08 10:32:54 UTC Type: Kernel Image Compression: uncompressed Data Start: 0xc2000120 Data Size: 7903152 Bytes = 7.5 MiB Architecture: ARM OS: Linux Load Address: 0xc0800000 Entry Point: 0xc0800000 ... Verifying Hash Integrity ... sha256+ OK ## Flattened Device Tree blob at dbb017b0 Booting using the fdt blob at 0xdbb017b0 Loading Kernel Image Loading Ram
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.