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
Hi,Can I access APB5 bus in engineering mode to run I2C4 with I2C4_SCL = PZ4, I2C4_SCL = PZ5?
Following the instructions found in en.FLASH-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz and using create_sdcard_from_flashlayout.sh to write the data to an SD card did not work for me. When I inserted the card on the stm32mp157c-dk2 dev board and power up, nothing happens on the serial port or the units display. Things are working with the card shipped with the unit, so the HW is working.Is there a pre-built SD card image to write to a card to get the v2.0.0 equivalent of what was on the card that came with the dev board?As I'm posting this and scrolling back in my terminal window I notice warnings about sgdisk. Are those fatal? Here is a log of what I tried:```$ ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/trusted/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv [WARNING]: A previous raw image are present on this directory[WARNING]: ../flashlayout_st-image-weston/trusted/../../FlashLayout_sdcard_stm32mp157c-dk2-trusted.raw[WARNING]: would
Is there a way to directly start M4 and run M4 firmware from BootRom.I am aware of the Engineering mode, however it requires the help of a debugger to copy the M4 firmware into the memory and run it. I like to do the same but in stand alone mode.I am also aware that M4 can be started and run M4 firmware using SSBL, however we want the M4 firmware to configure clocks instead SSBL. Some could point out why not then use a M4 based microcontroller instead of the MPU, but we have a specific requirement to boot from BootRom to M4 on the MPU.I am thinking about an idea to store M4 firmware as FSBL with the correct headers on one of the Flash devices (NOR/NAND Flash), once FSBL is stated by bootRom, copy M4 firmware and run it.I have not come across such approach, that is why I like to ask if this is going to be even possible?
I am evaluating some embedded software libraries which are available for multiple ARM Cortex M3/M4 MCUs from ST. I would like to evaluate what would be the porting effort to port these libraries to the embedded M4 core in the STM32MP1.What is the closest STM32 MCU in terms of functionality, peripherals, etc to the M4 core embedded in the STM32MP1 ?Thank you.
EDIT December 2020 : all issues and limitations mentioned in this article are fixed and integrated in latest Ecosystem V2.1Hi Community members, MP1 fans, Given significant number of posts we received from the delivery of Ecosystem V2.0 in July this year, it appears that some clarification are required in order to drive you among the STM32MP1 ecosystem offers. ST is providing and supporting 2 different ecosystem environments, including tools and documentations. Ecosystem V2.0 : Released in July this year. Include version Openstlinux-5.4-dunfell-mp1-20-06-24 ( Kernel 5.4, Yocto Dunfell) Please refer and read carefully the Release Note for all components and tools version details.The today wiki site address exclusively the V2.0 ecosystem.Ecosystem V1.2 Delivered in February this year. Include version Openstlinux-20-02-19 ( Kernel 4.19, Yocto Thud) Please refer and read carefully the Release Note for all components and tool version details.Wiki documentation compliant with
hey, which profiler I can use for my custom board (without x11)?
Hi,we are currently developing our own board using the STM32MP151 MPU.Currently i am working on the FSBL in the non secure mode using U-boot.I am able to generate a device tree with CubeMX, compile U-Boot and download it via STM32 Cube Programmer over UART4. After it seems to switch into the FSBL successfully the programmer can not contact the FSBL. I attached a log file and also my cube configuration.I guess it would be helpfull to be able to debug the U-Boot. I know that the device tree should contain something like: chosen { stdout-path = "serial0:115200n8"; }; aliases { serial0 = &uart7; };But i can not seem to get CubeMX to generate that. Or is this one of the options i have to add manually? Or is there a more detailed guide how to debug the U-Boot?I already read https://wiki.st.com/stm32mpu/wiki/U-Boot_-_How_to_debugThanks in advance
We are using a STM32MP157A-DK1 and try to reduce power consumption.1) When A7 and M4 are running we measure around 300mA.2) When A7 is in Suspend-To-Mem and the M4 is still running we measure around 80mA.3) When the M4 also enters standby mode the power consumption drops to around 25mA.We are using an inline USB-device so it measures the whole board and it's probably not giving the most accurate values.Mostly we are wondering about the second case. Is this power consumption to be expected (plus/minus a few mA)? Or is there a way to have only the M4 running without using 80mA?
Hi i want to display splash screen on HDMI monitor instead of DSI monitor of STM32MP157C-DK2. I know that it has something to do with U-Boot configuration, but i can't find right options to enable this feature. I would be grateful if somebody could help me.
I am currently working on a design based around the STM32MP157C (mounted in the Seeed SoM - STM32MP157C).I am trying to connect to the M4 Core on the target but I cannot halt it. When I attempt to do it, the debugger can halt the A7 CPU0 but fails at stopping the A7 CPU1 (Error: timeout waiting for DSCR bit change).The M4 is completely inaccessible.When I try to access the cores from the OpenOCD telnet interface, I can list the targets and get the following output after issuing a reset halt command.> reset halt stlink_dap_op_connect(connect) SWD DPIDR 0x6ba02477 Deferring arp_examine of STM32MP157CACx.cm4 Use arp_examine command to examine it manually! Target not examined, will not halt after reset! stlink_dap_op_connect(connect) stlink_dap_op_connect(reconnect) SWD DPIDR 0x6ba02477 SWD DPIDR 0x6ba02477 STM32MP157CACx.cpu0: ran after reset and before halt ... STM32MP157CACx.cpu1: ran after reset and before halt ... STM32MP157CACx.cm4: hardware has 6 breakpoints, 4 watchpoints STM32M
It's so hard to start my audio project. I am stucked at sai clock settings
Hi all,Windows 10 IoT Core already supports run on the single ARM Cortex-A7 MPU! Is there a BSP of the STM32 MPU that can be used for the Windows 10 IoT?Refer here:https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/socsandcustomboardsBest Regards
..
The kernel I used was 4.19 and the CPU on STM32MP157AAA3 was able to read the CPU at 650M frequency.I failed to read when I only replaced THE CPU with STM32MP157DAA1.STM32MP157AAA3 To read the CPU frequency results are as follows:STM32MP157DAA1 Reads the CPU frequency as follows:
I want to exchange large data buffers with the coprocessorI have tried following wiki page.https://wiki.st.com/stm32mpu-ecosystem-v1/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_principle#User_space_interfaceI tried to bitbake, but I have an error.= Steps =$ cd [my Distribution Package Directory Path]/layers/meta-st/$ git clone https://github.com/STMicroelectronics/meta-st-stm32mpu-app-logicanalyser.git -b dunfell$ DISTRO=openstlinux-weston MACHINE=stm32mp1-demo-logicanalyser source [my Distribution Package Directory Path]/layers/meta-st/scripts/envsetup.sh$ bitbake st-image-weston= Error =ERROR: Layer stm-st-stm32mp-app-logicanalyzer is not compatible with the core layer which only supports these seriesAre there missing something in my steps?Best Regards.H Masuda
hi, I need to stop some peripherals within m4 core before linux stop command:echo -n stop > /sys/class/remoteproc/remoteproc0/statehow can I manage that ?tnx.
Hi, I'm porting ADC on M4, but some how the converting result is odd value always, seems the DR bit-0 is always '1'. I tested it by VR, range from 0v to 3.3v, the ADC suppose to convert it from 0 to 255, but I don't know why, I just get odd value back, like 1, 3,5....197,199,201....255. No even number at all.---------------------------------------------H/W configuration:ADC Input: ANA0Vref+ = 3.3V---------------------------------------------Here are the ADC configuration...int SensorAdc_Init(void){ ADC_ChannelConfTypeDef channel_cfg; hSensorAdc.Instance = ADC1; hSensorAdc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hSensorAdc.Init.Resolution = ADC_RESOLUTION_8B; hSensorAdc.Init.ScanConvMode = ADC_SCAN_DISABLE; /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */
I want to do audio recording an cm4,but dont know how to config the codec, Is there an audio recorder example?
Hi everyone,STM32MP1 ROM Code has default AF mux for SPI_NOR/NAND like this:QUADSPI_CLK -> PF10 (AF9)QUADSPI_BK1_NCS -> PB6 (AF10)QUADSPI_BK1_IO0 -> PF8 (AF10)QUADSPI_BK1_IO1 -> PF9 (AF10)I want to remap to the new pins using the OTP CFG5..7The poinst is, what is the order of usage.Which part of which word should be assigned to which function.My used pins like this:QUADSPI_CLK -> PG7 (AF9)QUADSPI_BK1_NCS -> PB10 (AF9)QUADSPI_BK1_IO0 -> PD11 (AF9)QUADSPI_BK1_IO1 -> PF9 (AF10)so how should be seen the OTG Word 5 .. 7? My decision is like that. but i want to make sure it is true.CFG5: 0x77912A97CFG6: 0x4B9169A1
My device tree configuration { spdif_out: spdif-out { #sound-dai-cells = <0>; compatible = "linux,spdif-dit"; status = "okay"; spdif_out_port: port { spdif_out_endpoint: endpoint { remote-endpoint = <&sai4a_endpoint>; }; }; }; spdif_in: spdif-in { #sound-dai-cells = <0>; compatible = "linux,spdif-dir"; status = "okay"; spdif_in_port: port { spdif_in_endpoint: endpoint { remote-endpoint = <&spdifrx_endpoint>; }; }; }; sound: sound { compatible = "audio-graph-card"; label = "STM32MP1-DK"; routing = "Playback" , "MCLK", "Capture" , "MCLK", "MICL" , "Mic Bias"; dais = <&sai2a_port &sai2b_port &sai4a_port &spdifrx_port &i2s2_port>; status = "okay"; }; }; &i2c4 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c4_pins_a>; pinctrl-1 = <&i2c4_pins_sleep_a>; i2c-scl-rising-time-ns = <185>; i2c-scl-falling-time-ns = <20>; status = "okay"; /de
The debugger returns an error Failed to execute MI command target temote 3333
hi everyoneI'm trying to search for a certain char array(say char Temp[]) within a lager array in this case, char Rcv[500]. here is my codeint scanRcv(char *Temp){ int ii=0; for(int i=0;i<RcvLength;i++){ while(Rcv[i]==Temp[ii]){ ii++; if(ii==strlen(Temp)) { return 1;} else {return 0;} ii=0; } }but I don't know why it doesn't work and does not return 1, though I think the code works....I also tried this code too but it didn't work eitherint scanRcv(char *Temp){ if(strstr(Rcv,Temp)!=0) { return 1; } else { return 0; } }please help
I want to know the memory size of STM32MP151CAA3 that Coprocessor(Cortex-M4) can use.https://wiki.st.com/stm32mpu/wiki/Boot_chains_overview#STM32MP15_boot_chainthis wiki page says that coprocessor(Cortex-M4) program loaded in MCUSRAM(384kB).Does this means that the maximum size of "program and using data" of Coprocessor(Cortex-M4) program is up to 384kB?In this case, If I want to run a program with a size larger than 384kB on coprocessor(Cortex-M4), is there workaround such as using external memory?Best regards.H. Masuda
I'm bringing up a custom STM32MP15x-based design, and I'm encountering what looks like stack corruption issues in U-Boot (and I can't get a kernel to boot).Symptoms:I've enabled early debug printing, and get the following output:U-Boot SPL 2020.04-stm32mp-r1 (Aug 15 2020 - 13:11:31 -0500) Model: STMicroelectronics STM32MP157A-DK1 Discovery Board RAM: DDR3-1066/888 bin G 1x4Gb 533MHz v1.45 Trying to boot from MMC1At this point, the console hangs for a really long time. Looking at the UART on a logic analyzer, I see that during this time, it's printing seemingly gibberish characters at 1750 baud (which my USB-to-serial converter is ignoring due to the framing errors caused by the wrong baud). I did some brief JTAG investigations, and somewhere along the way, something calls printf() on a character buffer that's corrupted (so it doesn't encounter a null-terminating character for a very, very, very long time).Eventually, it will print something like this:▒▒*aQ▒rrr▒In: serial Out: serial Er
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.