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
Hello,I am developing on the STM32MP131FAE board in a bare-metal environment.This chip does not have internal Flash, so I am planning to load a bin file from external Flash at initial boot.The Flash will store two bootloaders and two main firmware images.I understand that when the boot mode pin is set to Flash boot, the ROM code reads data from the external Flash and copies it to the sysram. I have confirmed that it successfully runs bootloader 1 stored in the external Flash.The reason for splitting the bootloader into two parts is due to the sysram size, which is only 128KB. Since the bootloader is expected to exceed 128KB, I plan to execute bootloader 1 first and then jump to bootloader 2. question:What is the maximum size that the ROM code can read from the external Flash? If I can reduce the bootloader to within 128KB, I plan to combine it into a single file, but I have not been able to find information on the maximum number of bytes that the ROM code can read.
Using the latest CubeMX 6.9.0 on Ubuntu 23.04 The following has happened quite a few times in the past years , also on previous Linux and CubeMX versions. Now would like to raise this issue as it's becoming very annoying now doing more work in CubeMX. There are now more situations where the keyboard just does not respond anymore. The mouse does.1. When creating a new project and entering an partnumber, the dialog box sometimes get stuck. Mostly after entering a partnumber that does not exists. You can continue by selecting from the drop down list and then creating the project, but when trying to save you are out of luck, you cannot enter a filename so you have to start all over again. a lot of wasted time.2. When entering a pin number in the dialog box. sometimes this text box get stuck. Luckily you can save the project, but need to close CubeMX and restart it gain. A lot of time wasted. This happens no matter it is an MCU or MPU pro
I have a small micro that needs to run before the MP157 is active. The voltage coming gin is 5V, but I need 3.3V. Is there an always-on LDO in the STPMIC1 for such purpose? I assume the internal LDO is not te be used?Do I need to program the voltage of the LDO or is it set by default to 3.3VRegards
Is there a way to build only optee, etc. up to the level of u-boot?It would help to ease board bringup, checking the dts effects, do some basic testing. Regards,Roland
Hello, I am trying to implement a Hi-Speed USB Device on STM32 baremetal project for STM32MP131Axx by using STM32Cube_FW_MP13_V1.1.0. I am using the internal DMA of USB OTG to get faster the bulk transfer. I have 2 questions since I would like to know the suitable FIFO size when using the internal DMA. Q1I found the following comment in HAL_PCDEx_SetTxFiFo() function in stm32mp13xx_hal_pcd_ex.c.When DMA is used 3n * FIFO locations should be reserved for internal DMA registers I am using the endpoint 1 as bulkout that the max packet size is 512 bytes. In this case, is the comment mean that I need to pass 384 words to HAL_PCDEx_SetTxFiFo() as below? HAL_PCDEx_SetTxFiFo(&hpcd, 1, // Use DIEPTXF1 for endpoint 1. 0x180); // 384 words = 1536 bytes Q2I refered the following post. Is it same for STM32MP13 line that I should not allocate more than (4096 – 72 (for DMA descs)) bytes in total -> 0x3EE words when using DMA?https://com
Hi all,I'd like to move the USB HID/CDC function, implemented in the Ux_Host_HID_CDC_ACM sample, from TypeC OTG port to USB host port.Does it make sense?I started to create a usb_host.c based on usb_otg.c, changing the OTG into the USB Port1 references.But I don't know how to enable the VUSB voltages on the USB connectors: the enables seems to be under control of the USB hub on the DK board.Do I need to send commands via the i2c5 bus?Which commands? Thanks! -- ADDED --Looking better the schematics I note that the resistors connected with the I2C pins are not inserted, so it is impossible communicate with the USB hub chip.So, why the VBUSs on the USB TypeA sockets are not enabled (and then they not feed any USB devices ..) ?? -- ADDED 2 --Why the GPIO PortB Pin2 is set as original implementation of USBH_DriverVBUS() ?? -- ADDED 3 --Definitively I'm not able to point to USB Host port.My guess is that the USB hub is sleeping/disabled cause a configuration error of the
i am using stm32mp157d-dk1 and i am using virtual box and i want to make a gui using c++which application should i use so that i can access the adc and dac in linux.using arm cotrex a7 can i access/control the adc and dac. for example when I click a button it has to generate sine waves and it has to be written to dac
linux内核源码当中的SAI,两个子模块如何同时进行接收,一般正点的sda用于发送,SDB用于接收Translated to Englishlinux kernel source code among the SAI, how the two submodules at the same time to receive, the general positive point of the sda is used to send, SDB is used to receive
I'm buildning my own computer by using STM32MP151AAC3.I'm going to draw lines for the HDMI connector. I have one question: Can I transfer sound via the HDMI cable? For example if I run OpenSTLinux onto the STM32MP151AAC3 processor, and then I connect the HDMI cable and I can see the screen. Will I be able to hear sound too if I surf into Youtube?
Hi all,I'm writing a USB composite device support (baremetal) for MP135: it must support a custom interface and a CDC profile. Now I'm testing the CDC side connecting the USB cable with a PC: Windows mounts correctly a virtual serial port and I open a Putty serial session.The board handles the USB data as input for a simple terminal.This is what happen inserting a breakpoint on HAL_PCD_IRQHandler function (Drivers/STM32MP13xx_HAL_Driver/src/stm32mp13xx_hal_pcd.c):- initially (after the port setup) nothing breaks- on the first keypress on the Putty terminal the breakpoint breaks twice: the first with USB_OTG_GRXSTSP_PKTSTS = 2 (packet received) so read by USB_ReadPacket() - the second one with PKTSTS = 3 (transfer complete) so do nothing.- the data read fires my callback that handles the received key generating an echo back to the terminal- the interrupt is no more fired- on the second key press the interrupt is fired but it does not contain the RXFLVL bit (USB_OTG_GINTSTS = 0x44888428)
Hello, I am trying to install the SDK to work on the STM32MPU257F-EV1 Development board and I followed the instructions for the x86_64 Architecture, however when I use the command echo $ARCH it says the architecture is arm64? Is that what should be displaying? I feel like it should be x86_64 right? Thanks! Carson
Hi, there I have a stm32mp157f-dk2 board and I am following the instructions on: https://wiki.st.com/stm32mpu/index.php?title=STM32MPU_Developer_Package&sfr=stm32mpu to install the developer package. I've compiled all the components one by one as indicated and I am now trying to use openocd and GDB to cross-debug the board. As I executed "$GDB -x Setup.gdb", with the correct symbol paths modified in Setup.gdb, an error message, as in the Subject line, showed before GDB aborted. Has anybody seen this error message before ? Thanks. Eric
Hi,I am a new starter using STM32MPU257F. I plug a headset into a USB port and use the below command to play an audio-only wav file.gst-play-1.0 audiofile.wavthe output log as below=======================[ 240.645711] usb 1-1.2: new full-speed USB device number 3 using ehci-platform[ 240.864117] input: Synaptics Hi-Res Audio-BY as /devices/platform/soc@0/42080000.rifsc/42080000.rifsc:usb@482e0000/482f0000.usb/us1[ 240.933975] hid-generic 0003:0572:1B08.0001: input: USB HID v1.11 Device [Synaptics Hi-Res Audio-BY] on usb-482f0000.usb-1.2/input3root@stm32mp2:~# gst-play-1.0 file_example_WAV_2MG.wavPress 'k' to see a list of keyboard shortcuts.Now playing /home/root/file_example_WAV_2MG.wavWARNING Failed to connect: Connection refusedWARNING debug information: /usr/src/debug/gstreamer1.0-plugins-good/1.22.6-r0/ext/pulse/pulsesink.c(616): gst_pulseringbuffer_open_deeRedistribute latency...0:00:11.9 / 0:00:11.9Reached end of play list.=======================but I cannot hear any sound
Hi,I am working on STM32MP133FAFx (I2C Master) for I2C communication with STPMIC1 IC (I2C slave) fast mode(400KHz) and HSI clock(64MHz). I2C->TIMINGR = 0x00C0216CFor writing data TXIS flag is getting send and I am writing the register but when trying to read data back from PMIC RXNE flag is not getting set and RXDR register is not showing data.Configuration for reading & writing data is done as per the example code provided by STi.e. used HAL_I2C_Mem_Read() & HAL_I2C_Mem_Write() functions for 1 byte data transfer. Please help me how to resolve this issue and provide me the solution.
I'm in China. I want to get a copy of the stm32mp1 Distribution Package .
Hello We are using STM32MP157A processor in our custom board. Now we are implemented IWDG1 in Cortex A7 processor. The IWDG1 bit is not going to set after reset the processor with Watchdog timeout.we checked in following registers• RCC BOOTROM reset status clear register (RCC_BR_RSTSCLRR),• RCC MCU reset status clear register (RCC_MC_RSTSCLRR),• RCC MPU reset status clear register (RCC_MP_RSTSCLRR) and• RCC MPU reset status set register (RCC_MP_RSTSSETR). Getting same value in these registers while power on reset and IWDG1 reset.May be what was the issue, any one help me in this regards.regardssrikanth
Hi ST Team,We have developed a board based on the STM32MP257F. Currently, I am focusing on the audio section. We use an I2S port to connect to a codec called ES8388 chip. You can find the schematic in the attached picture,the connection between ES8388 and STM32MP25 like the following path,I2S2_MCK --- PI15I2S2_CK --- PB0I2S2_SDO -- PK1I2S2_WS --- PI14I2S2_SDI --- PB6I modified the dts, like the following code show, / { es8388: es8388@11 { compatible = "everest,es8388"; reg = <0x11>; #sound-dai-cells = <0>; clocks = <&i2s2>; /* The codec is a consumer of I2S2 master clock */ clock-names = "MCLK"; /* Feed MCLK codec clock with I2S2 master clock provider */ status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; es8388_in: endpoint { remote-endpoint = <&i2s2_endpoint>; }; }; }; }; }; &i2s2_pins_a { pins1 { pinmux = <STM32_PINM
Dear Readers,I try to flash my board in Debian 6.1 on 64bit version in a VirtualBox.Whatever I doSTM32_Programmer_CLI -l usbalways fails.I have donesudo apt-get install libusb-1.0-0cd xyz /Drivers/rules sudo cp *.* /etc/udev/rules.d/I rebootet, but a usb device index is never shown. Is the reason VirtualBox-usage?Thanks in advanceBubra
Description: I'm working with the MYIR MYD-YA157C board, based on the STM32MP157C, and experiencing an issue with UART data reception. When receiving data via UART, the same 10-byte buffer is repeated multiple times (50-60 times) instead of getting fresh data. I verified the setup using a TTL converter and can confirm that the data stream appears as expected when monitored directly, so the problem seems to be specific to the board.I've attached my program below. Any insights or solutions to receive fresh data on each read would be appreciated.Code Example:#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <termios.h>#include <string.h>volatile unsigned char Data[10];int UART_Receive() {int uart_rxfilestream = -1;struct termios options;uart_rxfilestream = open("/dev/ttySTM4", O_RDWR | O_NOCTTY); // Adjust to your UART deviceif (uart_rxfilestream == -1) {perror("Unable to open UART");}// Configure UARTtcgetattr(uart_rxfi
HI there STM team! I want to build a embedded linux image where I can load my QT application. I'm installing the starter package following: https://wiki.st.com/stm32mpu/wiki/STM32MP15_Discovery_kits_-_Starter_Package#Checking_the_material but I'm having problems when executing this command: STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp157c-dk2-optee.tsv The download starts but then it says "reconnecting the device..." and it fails with: Error: Unable to reconnect the target device: time out expired Error: Start operation failed at partition 0x03 Error: TSV flashing service failed Following other posts it seems there's a problem with the tsv file: https://community.st.com/t5/stm32-mpus-products/fail-the-image-flashing-on-stm32mpu157f-dk2/m-p/217050#M6509 I downloaded the file and rename it to: FlashLayout_sdcard_stm32mp157f-dk2-optee-trial.tsv Now, when I run this command: STM32_Programmer_CLI -c port
Hi,I am working on STM32MP133FAFx (I2C Master) for I2C communication with STPMIC1 IC (I2C slave) fast mode(400KHz) and HSI clock(64MHz). I2C->TIMINGR = 0x00C0216CI am trying polling method in bare-metal environment for communication in I2C.Below is my algorithm for polling1. Configure HSI clock and Initialize clock for I2C.2. Configuring GPIO I2C pins (No pull up, no pull down, I2C AF, Medium speed)3. Disable I2C before configuration with I2C_CR1_PE4. Setting I2C->TIMINGR = 0x00C0216C for 400KHz baud5. Setting 7-bit addressing, enable clock Stretching, clear general call & enable filters6. Enable I2C and shift slave address by 1 as its 7 bit (SlaveAddress << 1)7. Setting I2C in I2C_AUTOEND_MODE mode8. After calling I2C_TransferConfig() function I am getting NACK bit is getting set as in attached picture Please help me how to resolve this issue and provide me the solution.
My current application uses 2 USB ports, both connected to USBPHYC (STM32MP157F). The OTG one is used for programming using CubeProgrammer.My new revision requires 3 USB ports, 2 host and the programming port.According to https://community.st.com/t5/stm32-mpus-software-development/how-to-enable-3-usb-ports-on-stm32mp1/td-p/269938 it is (still) not possible to configure this in CubeMX.Im wondering if this configuration is going to work:USBH_HS1->USBPHYC-> USB_DM/DP1 pins (Host)USBH_HS2->USBPHYC-> USB_DM/DP2 pins (Host)USB_OTG->OTG FS Phy->PA11/PA12 pins (device/programming)AN5031 states that the internal bootROM will use high-speed, which means my suggested setup is not possible?
Dear all,I'm trying to run a TA application on STM32MP157C-DK2 board. Im using the STM32MPU Developer Package to build the TF-A and the OP-TEE.I've built the TF-A using the command below:make -f $PWD/../Makefile.sdk TF_A_DEVICETREE=stm32mp157c-dk2 TF_A_CONFIG=optee-sdcard STM32MP1_OPTEE_IN_SYSRAM=1 ELF_DEBUG_ENABLE='1' allAfter that, I copied the file generated file STM32MP1-Ecosystem-v5.1.0/Developer-Package/stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-v2.8.15-stm32mp-r2-r0/deploy/tf-a-stm32mp157c-dk2-optee-sdcard.stm32 to STM32MP1-Ecosystem-v5.1.0/Starter-Package/stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26/images/stm32mp1/arm-trusted-firmware/Is this right?Then, I built the OP-TEEmake -f $PWD/../Makefile.sdk CFG_EMBED_DTB_SOURCE_FILE=stm32mp157c-dk2 CFG_STM32MP_PROFILE=secure_and_system_services allAnd copied the files from STM32MP1-Ecosystem-v5.1.0/Developer-Package/stm32mp1-openstlinux-6.1-yocto-mickl
Hi,I'm getting an exception stack on bootup:[ 3.882380] ------------[ cut here ]------------[ 3.886351] WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:969 clk_core_disable+0xf0/0x2c4[ 3.894281] pll4_p already disabled[ 3.897839] Modules linked in:[ 3.900798] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 5.15.145 #1[ 3.908314] Hardware name: STM32 (Device Tree Support)[ 3.913395] [<c0110c4c>] (unwind_backtrace) from [<c010c668>] (show_stack+0x10/0x14)[ 3.921128] [<c010c668>] (show_stack) from [<c0c697e8>] (dump_stack_lvl+0x40/0x4c)[ 3.928753] [<c0c697e8>] (dump_stack_lvl) from [<c0125888>] (__warn+0x88/0x128)[ 3.935978] [<c0125888>] (__warn) from [<c0c63c94>] (warn_slowpath_fmt+0x78/0xa8)[ 3.943510] [<c0c63c94>] (warn_slowpath_fmt) from [<c0696480>] (clk_core_disable+0xf0/0x2c4)[ 3.951849] [<c0696480>] (clk_core_disable) from [<c0c6a298>] (clk_core_disable_lock+0x18/0x24)[ 3.960589] [<c0c6a298>] (clk_core_disable_lo
I am trying to connect to audio codecs to give 4 channel of audio on a MP257. Can I connect SAI2.SCKA TO BCK on both , SAI2.FSA to LRCK on both, SAI2.SDA to DIN on the first and SAI2.SDB to DIN on the second.My concern is the clocking, can I common both clocks, or do I also need to use SAI2.FSB (which as I am using the ethernet switch & 3 ports I don't seem to be able to do).
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.