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
Hi STM-Community,I'm having problems getting to work the GPIOS of the banks F and G of the STM32MP151DADX with the TFBGA257 Package.Firstly, I see the following error at boot time: [ 1.527623] stm32mp157-pinctrl soc:pin-controller-z@54004000: at least one GPIO bank is required [ 1.527793] stm32mp157-pinctrl: probe of soc:pin-controller-z@54004000 failed with error -22Which seems plausible as the uP I'm using doesn't have a Z-Port. I tried to remove the error by deleting the pinctrl_z of the DTS as follows:soc { /delete-node/ pin-controller-z@54004000; };But then UBoot's dts compiltion fails as pinctrl_z and gpioz are hardcoded in UBoot's sources. My first question is: How can I avoid the pin-controller-z being loaded unnecessarily? I just want to fix this to discard it has an impact on my actual problem.Regarding to the GPIOF and GPIOG:The gpioinfo command shows the pins being unused:gpiochip5 - 6 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-h
Hello, Please tell me how to write DeviceTree to use GPIOF6 ~ 11 and GPIOG10 ~ 15.When I checked the status after u-boot and kernel boot, it became as follows.The ports that can be used when creating and compiling DeviceTree are GPIOF0-5 and GPIOG0-9, and it seems that there is no definition after G10.I don't know the cause.
I'm not sure if this is a bug, but STM32CubeMX assumes GPIO is input while using LL library? And is not configuring it to be Input ?I found that I had to force to configure the pin as Input so it will work with external interrupts.
I'm following a tutorial for setting up the STM32MP157C-DK2. I'm on the step for running the OpenAMP_TTY sample program. However, when I try to build the program, I get a whole bunch or errors as follows:make -j8 all arm-none-eabi-gcc -o "OpenAMP_TTY_echo_CM4.elf" @"objects.list" -mcpu=cortex-m4 -T"/home/ben/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/STM32Cube_FW_MP1_V1.5.0/Projects/STM32MP157C-DK2/Applications/OpenAMP/OpenAMP_TTY_echo/STM32CubeIDE/CM4/STM32MP157CAAX_RAM.ld" --specs=nosys.specs -Wl,-Map="OpenAMP_TTY_echo_CM4.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: ./Application/Startup/startup_stm32mp157caax.o: in function `LoopFillZerobss': /home/ben/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/STM32Cube_FW_MP1_V1.5.0/Projects/STM32MP157C-DK2/Applications/OpenAMP/OpenAMP_TTY_echo/STM32Cub
Hi, I am looking all through the wiki, but I do not see any clue on using the tampers as a wakeup source.How can I configure the tampers to wake up the stm32mp1 from low power modes?Is it posible to wake up from VBAT? Or is VBAT only a energy mode to maintain the data in the memories? Can I run a piece of code in VBAT mode? If so, how could I do it? What restrictions do apply?When I say a piece of code, I mean it can be baremetal or linux or whatever it can run.Best regards,Andrés
Is it possible to use OTP WORD 24 to 31 without enable security boot with STM32MP1 part numbers which didn't has security boot option like STM32MP157A/D?Same as above but with STM32MP1 part numbers which has security boot option like STM32MP157C/F?
Hello,I am working stm32mp157c. It has two processor (A7 and M4). They can communicate with each other over virt uart(rpmsg). When I want to send a message to a7 over m4, if the message is filled with constant data, everything is ok. If the message is filled with sequential data, the data cannot be fully transmitted. For example,while(1){OPENAMP_check_for_message();uint8_t buffer[496] = { 0 };for(uint16_t i = 0; i < sizeof(buffer); i++) buffer[i] = 48;VIRT_UART_Transmit(&huart0, buffer, sizeof(buffer));HAL_Delay(1000);}In the above case everything is ok. But the following situationwhile(1){OPENAMP_check_for_message();uint8_t buffer[496] = { 0 };for(uint16_t i = 0; i < sizeof(buffer); i++) buffer[i] = i;VIRT_UART_Transmit(&huart0, buffer, sizeof(buffer));HAL_Delay(1000);}It can only receive 251 of 496 bytes of data. IPCC clock speed is 210MHz.What could be the problem?
Hi All,What is the best way to switch an SPI from Slave to Master during run time and later to bring it back to Slave mode (an example will be well come :-))Thanks,Yoav
So basically I'm trying to implement WebRTC and seems like aiortc is its python implementation right now:.Unable to manually install them using pip3 as it requires some dev-packages.I tried to install it as a layer using pipoe auto-generated recipe, but no luck as it goes on with errors. A working recipe and additions that has to be done to local.conf or CORE_IMAGE_EXTRA_INSTALL variable would be appreciated :smiling_face_with_smiling_eyes:.
Hi: I have a MIPI LCD ,the driver IC is S6D7AA0X04,the LCD brief shows that the data lane is 4,and the pixels is (1280x800) less than 1366*768,if LCD data lane is configurable,Can I drive it with the STM32MP157C?thanks�?
We are doing a custom board bring-up and currently trying to display video on our display device. We use CubeMx to generate the device trees for our project, we have configured the DSI PLL dividers to match our display device requirement. Snapshot of the configuration is shown below.In the device tree's rcc node, we do see the CLK_DSI_DSIPLL, however we are not seeing these divider information.The clock configurations for rest of the peripherals are reflected in the device tree, also the clock dividers to generate DSI pixel clock are present in the rcc node and in the target's clock summary dsi_px clock shows the configured clock frequency. The clock configurations for DSI lane clock is not seen in the device tree and also in the target it shows 200MHz instead of a 174MHz when measured. Are we missing anything here? Where is the DSI PHY configurations in the device tree?
I have a complex project which i try to use CubeMX to generate the device trees for A-TF, OP-TEE and Linux, as well as code pieces for the M4.The crash is not visible in the STM32CubeMX.log file, but is printed in stderr:2022-04-14 14:55:51,876 [INFO] BlockDiagram:2740 - set Specific Code input for plugin: TAMP 2022-04-14 14:55:51,876 [INFO] BlockDiagram:2740 - set Specific Code input for plugin: ETH 2022-04-14 14:55:51,877 [INFO] CodeGenerator:663 - code generatio: config db path: /home/dirks/STMicroelectronics/STM32CubeMX_Pre//db/ java.lang.NumberFormatException: For input string: "LSI_VALUE" at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054) at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122) at java.base/java.lang.Float.parseFloat(Float.java:455) at com.st.microxplorer.codegenerator.McuDataModel.getIpRCCSourceInfo(McuDataModel.java:939) at com.st.microxplorer.codegenerator.McuDataModel.initMcuData(McuD
Hi all, I am trying to flash a custom board based on stm32mp157c based MPU. I have my own flashlayout which is also attached here. I am constantly running into the following error. an error occured while setting virtual partition 0xF1 alternate setting Full error log and device tree attached. Any leads are highly appreciated.
Hi,I am puzzled which DMA channel to use to read from an FPGA connected to the FMC.Using the dmatest module I found out which are free and can be used for DMA_MEMCPYtransfers:modprobe dmatest timeout=2000 iterations=1 run=1 wait=1 [ 991.821537] dmatest: No channels configured, continue with any [ 991.826830] dmatest: Added 1 threads using dma0chan19 [ 991.831372] dmatest: Added 1 threads using dma0chan20 [ 991.836463] dmatest: Added 1 threads using dma0chan21 [ 991.841513] dmatest: Added 1 threads using dma0chan22 [ 991.846879] dmatest: Added 1 threads using dma0chan23 [ 991.851588] dmatest: Added 1 threads using dma0chan24 [ 991.856713] dmatest: Added 1 threads using dma0chan25 [ 991.861707] dmatest: Added 1 threads using dma0chan26 [ 991.867050] dmatest: Added 1 threads using dma0chan27 [ 991.871733] dmatest: Added 1 threads using dma0chan28 [ 991.876972] dmatest: Added 1 threads using dma0chan29 [ 991.881975] dmatest: Added 1 threads using dma0chan30 [ 991.887247] dmatest: Added 1 t
Hi all,I am trying perform build for yocto for the DK2. But running into the following error. I am pretty sure this was working until a month back but now link appears to be broken. ERROR: openocd-stm32mp-native-0.11.0-rc2.AUTOINC+a5e526d857-r0 do_fetch: Fetcher failure for URL: 'git://repo.or.cz/git2cl.git;destsuffix=git/tools/git2cl;name=git2cl'. Unable to fetch URL from any source. ERROR: Logfile of failure stored in: /home/ubuntu/STM32/yocto-test/openstlinux-5.10-dunfell-mp1-21-03-31/build-openstlinuxweston-stm32mp157a-730isom-dsi-emmc-mx/tmp-glibc/work/x86_64-linux/openocd-stm32mp-native/0.11.0-rc2.AUTOINC+a5e526d857-r0/temp/log.do_fetch.1136774 ERROR: Task (virtual:native:/home/ubuntu/STM32/yocto-test/openstlinux-5.10-dunfell-mp1-21-03-31/layers/meta-st/meta-st-stm32mp/recipes-devtools/openocd/openocd-stm32mp_0.11.0.bb:do_fetch) failed with exit code '1'Any idea how to fix this?
This feels like a dumb question but I can't find the answer through Google and I've spent some time looking.I'm giving a high level presentation tomorrow and in the first slide I'm describing the difference between ST MPUs and MCUs. For the life of me I can't find what the "U" stands for, however...Can anyone help me?
I'm using the 2.1.0 ecosystem with an STM32MP157A-EV1 and am having some problems with running a customized FreeRTOS build on the M4 core while running Linux on the A7s.I have modifed the linker script so that the code is in SRAM1&SRAM2, resource table & OPENAMP rings & buffers in SRAM3 and data in the rest of SRAM3 and the bss in the RETRAM above the vector table. I'm using FreeRTOS v10.3.1 rather than v10.2.1 that is provided by STM32CubeIDE 1.5.1 & the 1.3.0 FW pack but the port.c code looks the same on both.My code works fine running in engineering mode with FreeRTOS running my tasks fine. However when I try to use either the built-in STLink on the EV1 or an external Segger J-Trace Pro Cortex-M the system faults when it tries to execute the 'svc 0' call during scheduler start.If I build a simple dummy FreeRTOS CubeIDE-generated project I can now - after some wrestling with the debuggers - get that to start FreeRTOS okay via Linux.Any ideas on what else to check woul
Hello,I been working on stm32mp1 soc. In m4, totally, i have configured 3 timers(Timer2(input capture), time13,timer16). when i start the m4 from A7 after Linux login, all timers work fine. But when I use a startup script to start the M4 during Linux bootup, input capture(TIM2) does not work but other timers are working fine. I want m4 timers to work when m4 starts during Linux bootup. I am looking for some suggestions to understand and solve this issue. Thank you in advanceJS
Hi!The repository git://repo.or.cz seems to be permanently offline.Alternatives are:https://sourceforge.net/p/openocd/code/https://github.com/openocd-org/openocd/Broken recipes are:layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bblayers/meta-st/meta-st-stm32mp/recipes-devtools/openocd/openocd-stm32mp_0.11.0.bbI may be able to provide a patch if wanted. But its not completed.Best regardsGunther
I am trying to run an FTPM in a trusted environment generated by OPTEE. I can see OpenSTLinux has support for OPTEE, TPM but there is no support for ftpm. Can someone give me pointers as how I can include ftpm in distro(openstlinux-weston). ftpm souce code is made available by Microsoft but I want to know how I can make it work on STM board.
I'm trying to download Starter Package to microSD card on STM32MP157F-DK2 via USB.I clicked "Open file", selected "FlashLayout_sdcard_stm32mp157f-dk2-trusted.csv", pressed RESET button, clicked "connect" and tried to download.However, STM32CubeProgrammer showed the message "MMC erase failed", or "an error occured while uploading data from the virtual partition 0xF1".Please tell me someone about what shall I do to remove these errors.Note:・Both DIPSW (BOOT0 and BOOT2) are set to OFF. ・I'm using Kingston 16GB microSDHC for downloading.・I want to use the Programmer for WIndows10 not for Linux if possible.
Hello,Since we have an outgoing shortage of components, I am trying to figure out what I can use to do complex math calculations to offload from FPGA.STM32MP1 looks like a good device and could replace STM32H747, but I need a connection to the FPGA register system at very high speed. It does have FMC, but only 16 bits. What I would like to use is a 32b bus, since all of my data is that size.Is it possible to use a DDR interface for that ? I just need to have 32b of data, address pins, as well as some latch signals like read and write, and maybe clock.
..
hi,we are using usart1 to communicate w/ a device using custom baud rates. we have it working but sometimes we don't get all of the data that is sent by the device. it one or two bytes are dropped at the beginning of the message or there are several bytes dropped at the end of the message. we use usart3 to communicate w/ a device that is similar to the one connected to usart1. however, there are no dropped bytes. also, usart3 is configured to use the dma.we would like to configure usart1 to use the dma. we configured it in the kernel device tree as follows:&usart1{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&usart1_pins_z_mx>; pinctrl-1 = <&usart1_sleep_pins_z_mx>; status = "okay"; /* USER CODE BEGIN usart1 */ power-domains = <&pd_core>; dmas = <&dmamux1 71 0x400 0x15>, <&dmamux1 72 0x400 0x11>; dma-names = "rx", "tx"; /* USER CODE END usart1 */ }this caused usart1 to no longer function correctly. that is, w
Hi,We are using stm32mp157a in our custom board.We are configured SAI for Cortex M in cubemx.But we are unable to get dma interrupt and data through DMA. you can see my code flow below.In main.we are calling below functions.int main(){ MX_DMA_Init(); MX_SAI2_Init(); HAL_SAI_Receive_DMA(&hsai_BlockB2,(uint8_t *)AUDIORecvBuf,BUF_SIZE);while(1){}}1.SAI intializationstatic void MX_SAI2_Init(void){ /* USER CODE BEGIN SAI2_Init 0 */ /* USER CODE END SAI2_Init 0 */ /* USER CODE BEGIN SAI2_Init 1 */ /* USER CODE END SAI2_Init 1 */ hsai_BlockA2.Instance = SAI2_Block_A; hsai_BlockA2.Init.Protocol = SAI_FREE_PROTOCOL; hsai_BlockA2.Init.AudioMode = SAI_MODESLAVE_RX; hsai_BlockA2.Init.DataSize = SAI_DATASIZE_16; hsai_BlockA2.Init.FirstBit = SAI_FIRSTBIT_MSB; hsai_BlockA2.Init.ClockStrobing = SAI_CLOCKSTROBING_FALLINGEDGE; hsai_BlockA2.Init.Synchro = SAI_ASYNCHRONOUS; hsai_BlockA2.Init.OutputDrive = SAI_OUTPUTDRIVE_DISABLE; hs
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.