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 am following the instructions of a video on ST's official Youtube page:https://www.youtube.com/watch?v=I9KDN1o6924picture: https://imgur.com/a/bN5oR3p
i am using gst-play-1.0 for testing different bitrate audio play, found that 44.1 kbps, 22.050 kbps were not working but 48kbps mp3 works neatly without noisePlease let me know if i miss anything, i am using I2S1 to derive the base MCLK and feed to codeclog:gst-play-1.0 /run/media/mmcblk0p1/AudioFiles/test.wav playing 22.05kbps--- (256*22.05k) = 5644800Press 'k' to see a list of keyboard shortcuts.Now playing /run/media/sda1/AudioFiles/BabyElephantWalk60.wav[ 1164.185749] st,stm32-i2s 44004000.audio-controller: Error -16 setting i2sclk parent clock 5644800playing 44.1kbps--- (256*44.1k) = 11289600Now playing /run/media/sda1/AudioFiles/Railroad.mp3[ 1523.259773] st,stm32-i2s 44004000.audio-controller: Error -16 setting i2sclk parent clock 11289600 -309581440 -309581312[ 1523.269268] asoc-audio-graph-card sound@0: ASoC: machine hw_params failed: -16ERROR Could not get/set settings from/on resource. for file:///run/media/sda1/AudioFiles/Railroad.mp3ERROR debug informa
I followed some of the steps to integrate OPTEE with Yocto builds as below.meta-bsp-stm32mp1/conf/machine/stm32mp157f.confMACHINE_FEATURES +="optee" BOOTSCHEME_LABELS += "optee"meta-product-stm32mp157x-dk2/conf/distro/pxred-stm32mp1-dk2.conf - distro changesDISTRO_FEATURES_append = " px-red-kinit-e2fsprogs \ optee \ "The following is the boot message I get on terminalNOTICE: CPU: STM32MP157FAC Rev.ZNOTICE: Model: STMicroelectronics STM32MP157F-DK2 Discovery BoardNOTICE: Board: MB1272 Var4.0 Rev.C-02INFO: Reset reason (0x15):INFO: Power-on Reset (rst_por)INFO: PMIC version = 0x20INFO: Using SDMMCINFO: Instance 1INFO: Boot used partition fsbl1NOTICE: BL2: v2.2-r2.3(debug):v2.2-dirtyNOTICE: BL2: Built : 08:34:06, Apr 17 202
This is my current cursor.json file{ "device": "/dev/dri/card0", "outputs": [ { "name": "HDMI-A-1", "mode": "1024x600", "size": "1024x600" } ], "hwcursor": false }Here are my env Qt variables QT_QPA_EGLFS_ALWAYS_SET_MODE=1 QT_QPA_EGLFS_INTEGRATION=eglfs_viv QT_QPA_EGLFS_KMS_CONFIG=/usr/share/qt5/cursor.json QT_QPA_PLATFORM=eglfs QT_QPA_EGLFS_KMS_ATOMIC=1But when I try to run any Qt application I get this QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' EGLFS: Failed to open /dev/fb0 EGLFS: Can't continue without a display Aborted (core dumped)I have verified that /dev/fb0 does not exist, and /dev/dri/card0 does.Finally, here is my modetest output, and reason why I have cursor.json file as it is.... Connectors: id encoder status name size (mm) modes encoders 33 32 connected HDMI-A-1 470x260 10 32 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) #0 1024x600 59.82 1024 1068 1156 1344 600 603 609 625 50250 flags: phsync, nvsync; type:
Is there any way to disable and enable all interrupts in a assembly way, because i need to manually switch on and OFF particular GPIO before UBOOT SPL start uboot-source/board/st/stm32mp1/board.cvoid board_debug_uart_init(void){// disable interrupts ---- need support here//PWM self logic written// enable interrupts ---- need support here}
Hi,My bellow question is based on info read from:https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview#Configurationandhttps://wiki.st.com/stm32mpu/wiki/STM32MP15_backup_registers#Boot_mode_selection_featureFrom those two links I understand that if ROM CODE sees "0xFF" in the BOOT_MODE register then it will not continue to TF-A and instead enter flashing mode.The bellow is also mentioned:"The Linux kernel can force a reboot mode by writing to the BOOT_MODE register.This writing is done via the "reboot" Linux command,which is configured via the compatible "syscon-reboot-mode" in the device tree."What I want to achieve / understand if possible is to run a Linux userspace command to write 0xFF into BOOT_MODE and reboot the system.I can't find a way to do this...Also, just to make sure, If I am able to achieve the above, will the device boot into DFU mode ?some background:Playing with boot selection pins on the evaluation boards is easy, not so much on our production boards.In addi
Hi,We wish to add CRC16 checksum to our communication payloads,and I see in the stm32mp157 datasheet CRC module section that it should support CRC32,16,8 and 7 bits."""25.4.3 CRC control register (CRC_CR)Bits 4:3 POLYSIZE[1:0]: Polynomial sizeThese bits control the size of the polynomial.00: 32 bit polynomial01: 16 bit polynomial10: 8 bit polynomial11: 7 bit polynomial"""But I do not see this being utilized in the ST CRC driver ("stm32-crc32.c") - Linux 5.10from a quick look at the ST CRC driver, I see only CRC32 support.To be clear, CRC32 works, and I have already tested it with a userspace application using AF_ALG to request kernel support to calculate CRC32.But we would like to use CRC16 instead.1) Am I understanding it correctly that only CRC32 algorithm is supported by the ST drivers ? Or am I wrong ?2) If I understood it correctly, and the ST driver does support only CRC32, does the actual HW support CRC16, or am I misunderstanding the datasheet, and the HW module supports CRC16
Hello !I have some trouble implementing a FDCAN internal loopback on the STM32MP157c-dk2.I have linked the FDCAN1 Instance to the cortex M4 and I don't have any can bus to connect it to yet so I'm trying to implement an internal loopback. I took the exemple code that came with the stm32cube (STM32CubeMP1/Projects/STM32MP157C-DK2/Examples) tool and I replaced the external loopback mode with the internal one.The code blocks after having put the messages in the tx fifo (function HAL_FDCAN_IsTxBufferMessagePending() ).The messages are written in memory but they are never sent.I found that the FDCAN never ended it's init phase (FDCAN_CCCR_INIT stays set even after HAL_FDCAN_Start() function is called)I tried to force using the same protocol used to set it but it causes a timeout.Is anyone knowing why it won't switch to the normal operation mode ?Thanks in advance.Paulps : here is the code, I'm not in engineering mode so the device tree is managed by zephyr, I added the correct FDCAN address
Hi , iam using STM32mp157C micro processor ,On the cortexM4 i have configured SPI 1but iam unable to transmit using HAL_SPI_Transmit(), i have done some debugging in the spi driver , i found it is always returnning the HAL_TIMEOUT from SPI_WaitOnFlagUntilTimeout(); spi configuration: hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 0x0; hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; hspi1.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; hspi1.Init.FifoThreshold = SPI_FIFO_THRES
Hi everyone, I am using stm32mp157f-dk2 with ecosystem 3.1.I am interested to store the board information of my future product using the OTP featureAfter reading the reference manual, ch3 and 4, I have the following doubtDo I need any extra hardware to program the OTP bit/word? If not, how can I actually program those bit/word?Is it possible to read the OTP information in linux file system? Mapping them as some virtual files for example.What extra information do I need to include in the device tree to enable OTP? I assume the default project didn't include that.Any suggestions are welcomeRegards, Leung@Kevin HUBER
stm32mp157daa boot linux is slow. it will take 15S in yotco rootfs. stm32mp could not fast boot ? it too slow.
hi I wanted info if there is a seminar or a course, or an expert person who can direct me to use the stm32 mp1 board really to take the first steps, in the area where I live near Parma Italy, thanks
Since STM32MP157D requires positive analog input, I have added a fully differential amplifier to capture the negative inputs. STM32MP157D devices embed two analog-to-digital converters.I have attached a diagram that explains my problem. I need to capture the 8 bipolar analog inputs simultaneously to get accurate phase information.What is the best and optimal way of achieving this?
Hi, I have compiled the kernel source files and prepared the install artifacts as described in README.HOW_TO.txt, but when I am copying the modules into my STM32MP157C-DK2 board, it gets out of space. Moreover in the board I only have the modules related with this kernel version (5.10.61)The initial configuration was multi_v7_defconfig and I applied all fragments specified (fragment-03-systemd.config, fragment-04-modules.config and fragment-05-signature.config). I do not know if any of these fragments is building a huge amount of modules (that I think I do not really need), or if there is any kind of problem with the partitions (see attached picture), or any other thing.I have seen that there is an step before copying the modules in the board that is used to strip the kernel modules in order to reduce its size, this is:find . -name "*.ko" | xargs $STRIP --strip-debug --remove-section=.comment --remove-section=.note --preserve-dates Nevertheless, when executing the above command, it fai
I have custom board based on STM32MP157AAC3T CPU. I'm building image using yocto and board boots fine. Compared to devkit I'm using other panel .I've added driver + dts changes but I figured out that DSI drm driver is not probed. I checked dts on running system (status = "okay") also driver is compiled to kernel: zcat /proc/config.gz | grep DRM_STMCONFIG_DRM_STM=yCONFIG_DRM_STM_DSI=yI've enabled drm debug and see only other driver loaded:[ 2.010826] [drm:drm_core_init] Initialized[ 3.337453] [drm:stm_drm_platform_probe] stm_drm_platform_probe[ 3.337794] [drm:stm_drm_platform_probe] drv_load[ 3.337931] [drm:ltdc_load] [ 3.773021] [drm:stm_drm_platform_probe] stm_drm_platform_probe[ 3.773259] [drm:stm_drm_platform_probe] drv_load[ 3.773415] [drm:ltdc_load] [ 4.038804] [drm:stm_drm_platform_probe] stm_drm_platform_probe[ 4.039058] [drm:stm_drm_platform_probe] drv_load[ &n
Hi everyone, @Kevin HUBER I am using stm32mp157f-dk2 with ecosystem 3.1, with weston support.I connected the HDMI display to the development kit, reset the device, but nothing displayed.After checking, modetest show that the HDMI are properly connected, and the test commandmodetest -M stm -s 33:320x1480-60.08 -vrun successfully. But still, nothing displayed.Anyone knows how to fix this?Actually, I have report this issue before, inhttps://community.st.com/s/question/0D53W00001L0jviSAB/failed-to-start-loadsave-screen-backlightBut I didn't solve that last time.In addition, does anyone know to how remove the GTK demo from yocto/disable it from application?I tried to remove packagegroup-st-demo from CORE_IMAGE_EXTRA_INSTALL variable in image.bb, but it doesn't work.For now I can only disable it by stopping the entire weston service, which is definitely not what I want.Regards, Leung
Our board is similar to STM32MP157C-DK2 Disco board - All the Developer packages has been installed, the board is not booting whereas required power supply is provided, All the Test Points and passive components on the Board shows their desired Voltages.
Not sure if this is the best forum for this question but I am using the USB OTG port in device mode as ethernet gadget. It works fine if plugged in from boot, or first plug in anytime after. But if unplugged and plugged in again it will not come back without a board reboot:[ 46.766872] dwc2 49000000.usb-otg: new device is high-speed [ 46.771014] dwc2 49000000.usb-otg: dwc2_hsotg_enqueue_setup: failed queue (-11)Error -11 is something like "resource temporarily unavailable". Ever seen this before?
Hi,In this page, 3.5 (at the end) it is recommended that only a couple of layers are needed to get a non-distro version running.PC $> source layers/openembedded-core/oe-init-build-env PC $> bitbake-layers add-layer ../layers/meta-openembedded/meta-oePC $> bitbake-layers add-layer ../layers/meta-openembedded/meta-pythonPC $> bitbake-layers add-layer ../layers/meta-st/meta-st-stm32mpPC $> bitbake core-image-base or bitbake core-image-minimalI would have to clone only the layers mentioned above, create bblayers and make a local.conf based on opnstlinux, although leaving distro to none.I am not able to understand what would I be missing if I do not add the openstlinux layer.What can I achieve with this? Will the resulting image be applicable to the stm32MP157 -DK2?Would I be able to have this as starting point and then build up features for the same board?Thanks
I'm trying to set up communication between the codec and the cm4 using the stm32mp157f-dk2 dev board. Debugging in engineering mode.I've set up the gpio, i2c1 and sai2 ports for the CM4 using cubemx, but the code fails when trying to send the required startup bytes to the codec via i2c.As per the codec's data sheet I pull the Reset pin high, this seems to be working and confirmed by scoping the board. Then I call the hal i2c transmit functionHAL_I2C_Master_Transmit(hi2c1, 0x94, data, 2, 500)using a logic analyser on the i2c pins I can see the address and write flag are succesfully sent, but no data.Stepping through the code it gets to the functionI2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)and returns an error as the TXIS flag never gets set. I'm not sure if this is a problem in how i've configured the I2c ... hi2c1.Instance = I2C1; hi2c1.Init.Timing = 0x10707DBC; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.Dual
Hi supporter, I have two boards, one is my custom board and another is dk2. Those boards are not support high speed of mmc1. The mmc2 is into high speed and has 50Mhz clock.Below is some info about mmc1 and mmc2 on dk2 board.root@stm32mp1:~# cat /sys/kernel/debug/mmc0/ios clock: 25000000 Hz actual clock: 24750000 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 2 (4 bits) timing spec: 0 (legacy) signal voltage: 0 (3.30 V) driver type: 0 (driver type B) root@stm32mp1:~# cat /sys/kernel/debug/mmc1/ios clock: 50000000 Hz actual clock: 49500000 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 2 (4 bits) timing spec: 2 (sd high-speed) signal voltage: 0 (3.30 V) driver type: 0 (driver type B) root@stm32mp1:~# mount -t debugfs debugfs /mnt/ root@stm32mp1:~# cat /mnt/^C root@stm32mp1:~# dmesg| grep mmc [ 0.000000] Kernel command line: root=/dev/mmcblk0p6 rootwait rw console=t
Hi all,I have been working with STM32MP157 chipset.I am currently trying to flash the OpenSTLinux to the SDCard using STM32CubeProgrammer inside VMWare.However, it failed in the middle of flashing.Can anyone tell me what I should do?Thank you
I am describing my approach as below:What we did:1) We are using the STM32MP157F-EV1 board (No other board is connected for this exercise, lines are open!)2) We are using OpenSTLinux(kernel:5.4) and we are using the firmware which was suggested under the "getting started" guide.What we would like to achieve:1) Want to use SPI1 interface on M4 (alongside RTOS support) and want to use PZ0, PZ1, PZ2, PZ3 Pins only (due to design limitations!)Could you please guide me from here to enable the SPI1 on the M4 side?We have already tried with the default SPI example but It seems the clock is not getting generated. We want to use only a production mode not an engineering one.Let me know if you need any other information/clarification.Thank you in advance and hoping a useful response!!BR,Ashvin
Hi,I've encountered some issues in trying to debug OpenAMP_TTY_echo project from STM32MP1 Starter Package.Here is the output log :Working on STM32CubeIDE v1.4.0 on Linux Ubuntu 20.0.4.1 (64 bit) via a virtual machine. Also tried on a Windows 10 session with same version of STM32CubeIDE, and the same error log was output.Dropbear version is 2019.78-r2.Target board is STM32MP157C-DK2. Configuration :BB_VERSION = 1.46.0BUILD_SYS = x86_64-linuxNATIVELSBSTRING = universalTARGET_SYS = arm-ostl-linux-gnueabiMACHINE = stm32mp1DISTRO = openstlinux-westonDISTRO_VERSION = 3.1-openstlinux-5.4-dunfell-mp1-20-06-24TUNE_FEATURES = arm vfp cortexa7 neon vfpv4 thumb callconvention-hardTARGET_FPU = hardMANIFESTVERSION = ostl-20-06-24-rc7-1-gcb1de90DISTRO_CODENAME = dunfellACCEPT_EULA_stm32mp1 = 1GCCVERSION = 9.%PREFERRED_PROVIDER_virtual/kernel = linux-stm32mpPREFERRED_VERSION_linux-stm32mp =Starter package version is 1.2.0 downloaded from Github : https://github.com/STMicroelectronics/STM32CubeMP1/tree
Hello, I've got a board with an STM32 MP CPU and I have to reduce the size of the final image to leave enough space on the NAND memory for a dual rootfs setup. The idea is to remove the alsa layer because I don't need the audio part. I tried to add the following lines inside the local.conf on the build folder of the Yocto project:DISTRO_FEATURES_remove += "alsa"DISTRO_FEATURES_remove += "pulseaudio"PACKAGECONFIG_remove += "alsa-lib \alsa-state \alsa-topology-conf \alsa-ucm-conf \alsa-utils \"but It doesn't work as expected and most of the alsa packages are still there.How can I completely remove the alsa layer from the Yocto project?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.