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'm having a challenge moving changes from our Developer Package to our Distribution package. We've modified device trees using CubeMX for our board and have all the changes for TF-A, optee, u-boot and the kernel working in the Developer Package. Now when I take those changes and port them into the distribution package and build with bitbake it is giving me the following error.Hit any key to stop autoboot: 1 NOTICE: CPU: STM32MP157CAC Rev.Z NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mp1-v23.06.21 INFO: PMIC version = 0x21 INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000INFO: FCONF: Reading firmware configuration information for: stm32mp_ioINFO: Using SDMMCINFO: Instance 1INFO: Boot used partition fsbl1NOTICE: BL2: v2.8-stm32mp1-r1.0(debug):devtool-patched-dirty(27df046a)NOTICE: BL2: Built : 15:15:46, Apr 30 2024INFO: BL2: Doing platform setupINFO: RAM: DDR
The processor in this application is an STM32MP153. I'm using a Cypress FX3 emulating SRAM so I can use a read path of FMC->MDMA->AXI memory-to-memory and vice versa for the write path. Two independent hardware interrupts on the STM32 GPIOs initiate the relevant transfers (MDMA initiation is via software only).My question relates to the variable data size inherent in the FX3 state machine. What is the advisable method to accommodate this in the STM32MP153?a) set up multiple stream definitions for the MDMA and use extra GPIOs to semaphore the buffer sizes between the processors?b) keep block transfers consistent and have the CPU analyse the result and then drop in a circular link list buffer for isochronous data transfers? (I'm not yet clear on whether the A7 CPUs will have the time to set this up before the full bandwidth data consumption is demanded).c) neither of the above - there's an alternative referred/recommended approach.Note that:1) A0 is the only address pin used to sem
Hello,I would like to make the system below using stm32mp157.- System Description -1. 100Mbps Full-Duplex Ethernet2. Cortex-A7 receives and transmits data from Ethernet on the PC. 3. Cortex-A7 calculates Ethernet data and sends the result to Cortex-M4.4. Cortex-M4 controls peripheral(SPI, I2C, UART, GPIO) using DMA and interrupt Can I implement a program like the above??I've usually used F4 series or L4 series, so I don't know about MPU lines.If the program is implementable, please let me know what I need to know.If the program cannot be implemented, please recommend MCU or method that can be implemented.
Hello everyone,I am an avid petalinux user. I know that STM32MP1 has had a big place in the market for many years. But I've never had to use it before. I want to use this in a project right now. And I'm a little confused about where to start. I have a few questions; 1) What exactly is openstLinux? Is it something like petalinux distribution? 2) Let's say I compile an stm32mp1 project with yocto. I couldn't find any information about how to import the resulting image files into cubeide? 3) Which of the dtb files created with cubemx should I use? 4) When I select cubeide and the mp1 family from the project opening and say "setup openstlinux", I get a manifest version error. How can I fix this? Thank you very much in advance. Kind regards
Hi STM32CubeProgrammer Community,I hope you are all fine and doing great. I am new to STM32CubeProgrammer and I am trying to install/download it in Linux. I am facing and issue which I have logged below. Please guide me on how I can fix this issue. I tried with different web browsers(chrome, firefox) to download it. but I am facing the same problem with (windows, and Linux).
Hello We are working on custom board with STM32MP157AAA3 Processor.In Uboot(V2023.10) we are writing 4MB of data using mw command it works fine,but while displaying the data using md command the board resets after displaying 80KB of data.I have tried with various memory locations of DDR3L,But every time i face the same issue. Hope You could suggest me where Iam going wrong. Thanks&RegardsSrikanth.R
Kernel version:5.4.31Unable to get STM32 DDR PMU clockstm32-display 5a001000.display-controller: stm_drm_platform_probestm32-display 5a001000.display-controller: drv_load:-517debugfs: Directory 'cpu0' with parent 'opp' already present!remoteproc remoteproc0: releasing m4Unable to get STM32 DDR PMU clockstm32-mdma 58000000.dma: STM32 MDMA driver registeredstm32-dma 48000000.dma: STM32 DMA driver registeredstm32-dma 48001000.dma: STM32 DMA driver registeredreg11: supplied by vddreg18: supplied by vddusb33: supplied by regulator-dummystm32-display-dsi 5a000000.dsi: platform_set_drvdatapanel-ilitek-ili9881d 5a000000.dsi.0: cannot get reset GPIO: -517stm32-display 5a001000.display-controller: stm_drm_platform_probestm32-display 5a001000.display-controller: drv_load:-517stm_thermal 50028000.thermal: stm_thermal_probe: Driver initialized successfullydebugfs: Directory 'cpu0' with parent 'opp' already present!stm32-crc32 58009000.crc: Initializedstm32-hash 54002000.hash: will run requests pump
Hello,I've implemented the solution proposed in https://github.com/MaJerle/stm32-usart-uart-dma-rx-tx?tab=readme-ov-file by @Tilen MAJERLE for efficiently using the DMA in circular mode with a buffer for the UART in a STM32L4 board.I'm trying to port my driver to the M4 processor of a STM32MP157-DK2. I've successully configured the UART3 in the M4 project with DMA in normal mode and I'm receiving one byte at a time and adding them with the RxComplete callback to my buffer.However, when I changed the DMA mode to circular, my surprise was that there is no HAL_UARTEx_ReceiveToIdle_DMA function in the HAL driver and no HAL_UARTEx_RxEventCallback callback. So I can use the RxComplete and RxHalfComplete callbacks but no idle line callback, which is a big problem when using a long circular buffer size.Can anyone explain what is the problem, why there is no Idle line detection here or how can this feature be implemented for this board? Thanks in advance.
Running the code "MP13_BSP_BasicTemplates" in the DDR of the STM32MP135F-DK succeeds,But running the code "UART_Receive_Transmit_Console_A7" in the DDR of the STM32MP135F-DK fails(“USE_DDR” Macros added,Link text has been modified),Errors are as follows:
Hi,I am using a STM32MP151AAA3 and i need to control an RGB LED via PWM control (something like the WS2812B). I was looking into the PWM driver options for Linux side control and can't find options for PWM control for specific buffer sizes or anything like that (only for fixed PWM outputs).On the bare metal MCU's i can control this via PWM and DMA and send a specified data buffer. does anyone know if there is a similar option for a Linux controller PWM driver?The other option is to control these LED's via the secondary M4 core but I rather not if possible.Kind regards,Richard
hello,my custom board use the same ddr as STM32MP135F-DK board. but when I debug the example DDR_Init_A7.erro occus when verify data in address 0xc0000000 + 0x80。as show in picture.pls help me
Hi!! I have STM31mp157C and I want to use the ADC. I am exploring the available GPIOs and have observed that some are present in both ADC1 and ADC2.For example, according to the datasheet, PA4 can be used with ADC1/ADC2.Is there any difference between measuring from ADC1 or ADC2?Is there any use for a GPIO to be in both ADC1 and ADC2 (such as performance improvement, special modes of operation or similar)? Thanks!A.
Dear community,I need your help.I'm using a ES8388 Codec on a custom board with STM32MP157 MPU. ES8388 codec connected on i2c1 and sai2. In the codec driver, ES8388 is in salve mode and MPU is in master mode. mclk cannot be obtained.device tree:kernel source:boot log:
Hi there, I'm using a custom STM32MP153 board with OpenSTLinux distribution (5.15.24) on it, and I have a problem with the Wake UP. I successfully set PWR gpio to wake up from low power modes. In fact, I can successfully wake from CSleep and CStop mode. But I can't execute a correct wake up from CStandy mode. (setting from M4 firmware is OK I think, I took the example code from FW1.6.0 repo) Is there any common pitfall that I must be awared of? NOTE: I'm using STPMIC1 . Thanks
Hello everyone, I was attempting to migrate my existing raspberry pi application for GPIO control to the STM32MP157 but I encountered a roadblock. I was using gpiod to drive the pins from the userspace app but the following guide:https://wiki.stmicroelectronics.cn/stm32mpu/wiki/How_to_control_a_GPIO_in_userspacedoesn't mention gpiod C API at all in section 3. Is it possible to use gpiod instead of the character device? How do I add the gpiod library to the toolchain for cross compilation? Thanks,
I have a stm32mp135F-DK and I am attempting to do some GPIO control. My question is where can I find the mapping of libgpiod chip/line mapping to physical pin. I am particularly interested in the mapping to the CN8 pins as I will be wanting to read/write signals coming from external sources. I have looked at the toggle_led.sh script and see that LD7 (green LED, PA14) is mapped to gpiochip0 line 14. One note is when I attempt to run this I get a Device/Resource is busy and when I run gpioinfogpiochip0 - 16 lines:line 0: unnamed unused input active-highline 1: unnamed kernel input active-high [used]line 2: unnamed kernel input active-high [used]line 3: unnamed kernel input active-high [used]line 4: unnam
I'm doing a project, that I need a rotary encoder working on cortex-a7 core of stm32mp157.I met problem, my rotary encoder can not work. This is what I have done:1. In kernel menuconfig I have config: use rotary encoder as a build-in module;2. Write dts, and I am sure these gpio not been use anywhere: rotary@3 { compatible = "rotary-encoder"; gpios = <&gpioa 0 GPIO_ACTIVE_LOW>, <&gpiog 3 GPIO_ACTIVE_LOW>; linux,axis = <6>; rotary-encoder,encoding = "gray"; rotary-encoder,relative-axis; status = "okay"; }; In dmesg I can see my roary is startedIn /proc/device-tree, I can see the device nodeIn evtest nothing output, when I turn the knob of encoder. what is the problem, I need your help, thank you!
Hi all!Environment: I use MX to configure the DCMI Peripheral including DMA!MX generates MX_DMA_Init() and MX_DCMI_Init()After DCMI initialization in main with the above mentioned functions I use the functions HAL_DMA_RegisterCallback(&hdma_dcmi, HAL_DMA_XFER_CPLT_CB_ID, &DcmiDmaFullCplt) and HAL_DMA_RegisterCallback(&hdma_dcmi, HAL_DMA_XFER_HALFCPLT_CB_ID, &DcmiDmaHalfCplt) to register Halffull and Full DMA Callbacks.Both callbacks are registered in the hdma_dcmi structure. Everthing ok so far.Problem:But when I execute HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32_t) ae_dma_buffer, AE_DMA_BUFFER_SIZE); to start the peripheral, the function overwrites the dma full function pointer. Therefore the HAL callback is used and not my dma full callback function (half full works fine). Otherwise if I try to register the callbacks after calling HAL_DCMI_Start_DMA(), the registration is refused because the hdma-->state is different to HAL_DMA_STATE_READY.So how
We are pleased to announce you that the official release of STM32CubeMX V6.9.0 is available for download here What is new in STM32CubeMX V6.9.0? Added the support for new microcontrollers in the STM32U5 series Added the support for new microcontrollers in the STM32WBA series Added the support for two new boards related to the STM32U5 series: STM32U5G9J-DK1 and STM32U5G9J-DK2 Added the support for one new board related to the STM32L4+ series: STEVAL-SMARTAG2 Added the support for the memory management tool for the STM32H5 and STM32U5 series Added the support for new boot paths for the STM32H5 series Added makefile generation in dual context for the STM32H7, STM32L5, and STM32U5 series Added hierarchical project support in the Example Selector for the STM32U5 and STM32WL series Added user authentication functionality Added the support for processing before and after code generation Upgraded the JDK11 to Adoptium™ Termurin™ 17.0.6 Main fixed issues 121529 [Example selector] Managem
I am using the SDMMC1 interface without an SD card, utilizing only the data lines. Therefore, the CMD line is not needed, and I have deactivated the CMD pin. However, the HAL_SDMMC library sends CMD data and expects a response from the SD card, causing errors.Even though I have commented out all the sections related to response error handling, it still does not work. Is there a way to use only the data lines and deactivate the CMD line?Thank you for your assistance.
Hello,I am developing on a custom STM32MP151AAC board, the software is openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23. The board successfully booted, and most of the part works fine. The problem is I cannot make USBOTG run. My board use FUSB302 instead STUSB1600.Now, the problem is I cannot make a usable device tree for usbotg_hs and fusb302, the kernel always complains OF: graph: no port node found in /soc/i2c@5c002000/typec-portc@22 I had try my best to find where the problem is but without success. The device tree file and dmesg are attached in the thread. Could anyone give me some suggestions?Thanks.
Hello all,I'm looking for the STMCubeProgrammer for STM32MP257F-EV1.The actually on web site available version 2.16 seems to not support my board.At least it does recognize my board but tells it's not supported13:41:26 : Error: Database cannot be found. DatabasePath = C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/../Data_Base/STM32_Prog_DB_0x505.xml13:41:26 : Error: CUBEPROGRAMMER_ERROR_NOT_SUPPORTEDSomebody can help me?Thanks in advance.Cheers Alex
My question is:Can I use PE12 AND PE13 pins as TAMPER_IN type or not ?
HelloI wrote the following code to activate the display.The code below is written in kernel/stm32mp157a*.dts and u-boot/stm32mp157a*.dts.panel_rgb: panel-rgb { compatible = "panel-dpi"; label = "lcd"; power-supply = <&vdd_panel>; status = "okay"; port{ panel_in_rgb: endpoint@0 { remote-endpoint = <&ltdc_out_rgb>; }; }; panel-timing { clock-frequency = <63700000>; hactive = <1280>; vactive = <720>; hfront-porch = <20>; hback-porch = <20>; hsync-len = <20>; vback-porch = <24>; vfront-porch = <24>; vsync-len = <24>; }; }; &ltdc{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&ltdc_pins_mx>; pinctrl-1 = <&ltdc_sleep_pins_mx>; status = "okay"; /* USER CODE BEGIN ltdc */ port { ltdc_out_rgb: endpoint@0 { reg = <0>; remote-endpoint = <&panel_in_rgb>; }; }; /* USER CODE
Hello all,The startup of the M4 core is easy enough, echoing "start" to the state enables the core.Shutdown is also simple, echoing "stop" to halt the coprocessor. However on shutdown, peripherals such as the PWM sometimes end in a high state. For my application this is unacceptable. Before shutdown I would like to disable these peripherals and drive them low. This page indicated the IPCC mailbox is used to inform the processor, without giving any implementation details. After looking for the IPCC documentation on this, I have not found anything that describes a shutdown channel, or message. Can someone point me towards documentation on this? Going further, are there any examples of a clean shutdown of the M4 core anywhere?TIA.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.