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 a newbbie on STM32MP1 and linux embedded.I want to use available pins on STM32MP1-DK2 to as buttons input. I want to use CN14 connector pin (1 to 4) as buttons inputs.I've modified the stm32mp157c-dk2.dts adding these lines: buttonkeys { compatible= "gpio-keys"; left-key { label = "Left key"; gpios = <&gpioe 7 GPIO_ACTIVE_LOW>; linux,code = <105>; // KEY_LEFT }; right-key { label = "Right key"; gpios = <&gpiod 4 GPIO_ACTIVE_LOW>; linux,code = <106>; // KEY_RIGHT }; down-key { label = "Down key"; gpios = <&gpioe 8 GPIO_ACTIVE_LOW>; linux,code = <108>; // KEY_DOWN }; up-key { label = "Up key"; gpios = <&gpioe 1 GPIO_ACTIVE_LOW>; linux,code = <103>; // KEY_UP }; };If I declare only the left and down keys (GPIOE7 and GPIOE8) the button
Hello,I am working on the evaluation board STM32MP157CDk2I am trying to add my code in the main method while loop in order to toogle pins.I added the following code:while (1) { /* USER CODE END WHILE */ HAL_GPIO_TogglePin(atoi(1), GPIO_PIN_11); HAL_Delay(100); HAL_GPIO_TogglePin(atoi(0), GPIO_PIN_11); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */I have two questions.1) I get the following error (attached) after i choose target and then program chip 2) I am connected through usb and UART in the eclipe, am using the system work bench as an IDE. Is there something to do before doing the build for connecting with the device in a special way?. I can see in the console that i am connected to the board. and Eclipse shows the message at the buttom (Serial Console in use).I am new to this. I appreciate your help alotBest Regards
How to configure RGB LTDC device tree, can you give an example
Hello,I am working with stm32mp157c-dk2I have read the GPIO related parts in documents and wiki. I have also used GPIO from M4 side.Are the following statements correct ?Discovery board STM32MP157C-DK2 has two types of GPIOs connector:GPIO 40 pins connectorsArduino™ Uno connectorsThere are two ways to use them;configure the required GPIO pins in c code and use it on M4 sideconfigure device tree for the required GPIO pins, recompile linux and use it from A7 (linux) sidethis is what I have understand from the documents. Did I understand correctly ?Is something false or missing in the statements ?
With STM32MP157C-DK2 kit, I am testing U-boot standalone example "hello world" application, it print out some information and then stay in a loop until a key input detected to terminate the application. I found out the example code running for about 20sec and then crash and system restarted, because there is no error message, so I don't believe the standalone code crash but the system crash from a watchdog timeout, would someone confirm what I am speculated here? some suggestion? is there a function I can add to kick watchdog inside while loop?
or. special layout of image required?
Hi, Can anyone give me possible application use cases that Direct Memory Access (DMA) is needed or has advantages to use for stm32mp157c?Or any document that explains possible application use cases ?tnx
I tried to test a UART link on the USART3 port of the STM32MP157C-DK2 board.For that I followed the instructions of the Wiki for the modification of the Linux kernel:I changed the settings in "arch / arm / boot / dts / stm32mp157a-dk1.dts" to put the USART3 in status = "okay"I generated ".dtb" with the command "make dtbs"I loaded it on the board and reboot it.But after rebooting when I do "ls -l / dev / ttySTM *" I only get the ttySTM0 (for the UART_4).When I do "dmesg | grep ttySTM *" I get the configuration for ttySTM3 (USART_2 for Bluetooth) and ttySTM0.After several attempts I would like to know if you would have tracks?
..
Hello, I'm using the OpenAMP_TTY_echo example with some modification.if (VirtUart0RxMsg) { VirtUart0RxMsg = RESET; while (data < 65535) { itoa(data, buf, 10); if(VIRT_UART_Transmit(&huart0, (uint8_t *)buf, 10) != VIRT_UART_OK){ Error_Handler(); } data ++; } data = 0; }On Linux side I'm use write on ttyRPMSG0.But if I don't read, the log give me the message:rpmsg_tty virtio0.rpmsg-tty-channel.-1.0: No memory for tty_prepare_flip_stringI think that I'm understand the problem, but what can I do to prevent this problem?
CubeMx version is 5.3.0,CPU is STM32MP157working on discovery board DK2.
Hello,Lately, i have been working on STM32L4R9I Disco. i am trying to figure out the way to connect and control peripheral using MFX function on the board.Does anyone have any idea about MFX function?Thank you very much
i read the following information in the doc AN5122 : Standard fly-by topologyA standard fly-by topology is comprised of:• A distributed A/C bus with 56 Ω on-board termination at VTT (VDD_DDR/2)• A differential clock, distributed to all of the DDR devices– Implement a differential termination of the CLK_N/CLK_P signals using one 100 Ωresistor.• There must be a point-to-point connection of the data bus (4 swappable bytes, andswappable bits in the same byte), including:– 32 data signal bits (DQ)– 4 data mask signals (DQMx)– 4 differential clocks (DQSx_N/DQSx_P)i would like for the ease of layout swap bit inside byte0 and byte1 of control signals but i dont see any where how to inform the system and set configuration for the bit swap.Can you point me to a document where it is explain how to setup bit swap configuration ?Tanks for supportJulien.
Hello,I am running example "OpenAMP_TTY_echo" on the board "stm32mp157c-dk2"I have modified the code a little bit so that channel0 (uart0) doesn't have to wait for a massage from linux side and transmit message every half second. It is sending the messages on every half second without problem.But the problem is now uart1 is not working. I mean on linux side if I write "echo "Hello Virtual UART1" >/dev/ttyRPMSG1" , I can not receive any callback message from the console. This means channel 1 is not working because channel 0 is blocking it. Is it normal ? Why normal ?while (1) { OPENAMP_check_for_message(); " " " " VIRT_UART_Transmit(&huart0, Data, size); HAL_Delay(500); if (VirtUart1RxMsg) { VirtUart1RxMsg = RESET; VIRT_UART_Transmit(&huart1, VirtUart1ChannelBuffRx, VirtUart1ChannelRxSize); } }
I'm working with Development Kit and want to upload my Cortex-M4 image but I do not want to use IDE. I assume there should be a Linux program that can stop M4, write image into SRAM and restart M4. Where can I find a details on how to do it?Thanks.
I'm currently trying to use the Linux API for RPMSG [1]. However, trying to use the example provided in the documentation does not compile (with the OpenStLinux SDK or with my host machine) even though I have the headers installed. Even the sample provided in the Linux repository does not compile [2]. I have succeeded in opening the /dev/ttyRPMSGX sockets as regular files and using the read(), write() API's. In this case we have the M4 that is passing serialized byte arrays through openAMP, and the Linux application reading the arrays and deserializing them. I sometimes see that there are some bytes missing the the array for a successful deserialization when using the read() interface.If anyone here has succeeded in using the RPMSG interface, how did you do it?Also does anyone have an idea why there might be some data loss when using the read() api?[1]: https://github.com/torvalds/linux/blob/master/Documentation/rpmsg.txt[2]: https://github.com/torvalds/linux/blob/master/samples/rpmsg/
Hi, I try to compile Android on the STM32MP1 following the Wiki and I'm hitting a problem :hico@debian-ha:~/work/st/android$ hico@debian-ha:~/work/st/android$ repo init -u https://github.com/STMicroelectronics/android-manifest -b st-android-9.0.0-2019-09-27 -m stm32mp1droid.xmlGet https://gerrit.googlesource.com/git-repo/clone.bundleGet https://gerrit.googlesource.com/git-reporemote: Counting objects: 1, doneremote: Finding sources: 100% (64/64)remote: Total 64 (delta 6), reused 64 (delta 6)Unpacking objects: 100% (64/64), done.From https://gerrit.googlesource.com/git-repo fb527e3..d1e93dd master -> origin/master a2cd6ae..e778e57 stable -> origin/stable * [new tag] v1.13.7 -> v1.13.7... A new repo command ( 1.26) is available.... You should upgrade soon: cp /home/hico/work/st/android/.repo/repo/repo /home/hico/bin/repoGet https://github.com/STMicroelec
The number of frames per second does not exceed 10. Will there be any performance improvements? Are there any tips?
Hi, I wanted to flash the EVAL board with the latest Android version and I've got this error (see attached file)Any idea ?Thanks !Best regrads,Anthony Harivel
28 locations around Europe are still open; next event in Frankfurt September 3, last one in Spain November 27.https://www.st.com/content/st_com/en/about/events/events.html/stm32mp1x-hands-on-workshop-emea-2019.html
I have a STM32MP157C-DK2 eval kit and am looking into Bluetooth mesh. According to Murata the wireless \ bluetooth module that contains a Cypress part is mesh compliant and the board has v5.50 of BlueZ so theoretically the version of Linux supports it. Unfortunately it seems to have very minimal Bluetooth tools on the device (i.e. none) and I have been trying to get meshctl which seems to involve cross compiling in on ubuntu but without much success. Has anybody had any luck in doing this or have got mesh working?
Hi,In my M4 program within while loop, I have made a for loop which iterates infinitely for 0.75 seconds like this but didnt work at all. I used time.h for that. Are we allowed to make this kind of loop within the while loop in M4 program ?Do you have any idea why it didnt work ? clock_t begin; double time_spent; unsigned int i; begin = clock(); for (i=0;1;i++) { /*do my staff */ if (VirtUart0RxMsg) { Check_Delay(VirtUart0ChannelBuffRx, VirtUart0ChannelRxSize); VIRT_UART_Transmit(&huart0, VirtUart0ChannelBuffRx, VirtUart0ChannelRxSize); VirtUart0RxMsg = RESET; } time_spent = (double)(clock() - begin) / CLOCKS_PER_SEC; if (time_spent>=0.75) break; } }
For enabling Raspberry Pi 7 inch touchscreen I configured device tree according to the binding. However, when I compile it it gives me syntax error and FATAL ERROR: Unable to parse input tree. I have read many pages of website about device tree but got no result. You can view my device tree and display's binding in the attachment. May you direct me to a correct way?Halil
Dear team,We have a design with stm32mp157aac MPU, and we use MIPI DSI as the display interface to a device with 1280x720@60 RGB888, the PCLK is 74.25MHz, the DSI works at non-burst sync event video mode. But the image is flickering continously. When we adjust the frame rate to 50Hz, PCKL is still 74.25MHz, the UI is not flickering continously any more, but it's not be compatible with most monitors.We have tried to test with video mode test pattern by setting 0x5a000038, we got the same result. The only difference of these two mode is the register 0x5a000050. The register values are show below.1280x720@60: 0x5a000038 : 0x13F010x5a00003c : 0x500 // 12800x5a000040 : 00x5a000044 : 00x5a000094 : 0x010x5a000048 : 0x3c0x5a00004c : 0x1490x5a000050 : 0x9A30x5a000054 : 0x50x5a000058 : 0x140x5a00005c : 0x50x5a000060 : 0x2D0 // 7200x5a000430 : 0x110008951280x720@50:0x5a000038 : 0
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.