Skip to content

Serial DMA for STM32H7#27633

Merged
thinkyhead merged 2 commits intoMarlinFirmware:bugfix-2.1.xfrom
rondlh:SERIAL-DMA-STM32H7
Jan 24, 2025
Merged

Serial DMA for STM32H7#27633
thinkyhead merged 2 commits intoMarlinFirmware:bugfix-2.1.xfrom
rondlh:SERIAL-DMA-STM32H7

Conversation

@rondlh
Copy link
Contributor

@rondlh rondlh commented Jan 11, 2025

Description

Make the existing serial DMA more maintainable by using more HAL functions and HAL variables Added support for STM32H7

Requirements

This will benefit users with STM32H7 based boards. This is not only to improve performance, but in my case also solved serial data reliability issues where sometimes a serial byte was corrupted. Using DMA solved this issue.

Benefits

Lower MCU utilization, higher serial data transmission reliability

Configurations

Just enabled SERIAL_DMA in Configuration_Adv.h

Related Issues:
#27601
#27633

Make existing serial DMA more maintainable by using more HAL functions and HAL variables
Added support for STM32H7
@thisiskeithb thisiskeithb linked an issue Jan 11, 2025 that may be closed by this pull request
@thinkyhead thinkyhead added T: HAL & APIs Topic related to the HAL and internal APIs. A: STM32 labels Jan 24, 2025
@thinkyhead
Copy link
Member

Everything looks reasonable and complete to me! If something was missed, we'll have to leave it to testers to discover it.

@thinkyhead thinkyhead merged commit 7f598ae into MarlinFirmware:bugfix-2.1.x Jan 24, 2025
64 checks passed
@rondlh
Copy link
Contributor Author

rondlh commented Jan 24, 2025

Everything looks reasonable and complete to me! If something was missed, we'll have to leave it to testers to discover it.

I'm quite confident, I tested on hardware covering all code "paths" and compiled it for all STM32 platforms. It's not so far away from the previous version anyway.

@dbuezas
Copy link
Contributor

dbuezas commented Feb 26, 2025

When I enable this in my SKR 3, the board locks in the startscreen with the Marlin logo.
I only have serial 3 enabled (the one plugged to the wifi board):
#define SERIAL_PORT 3
#define BAUDRATE 500000

Is it incompatible with that port?

@dbuezas
Copy link
Contributor

dbuezas commented Mar 1, 2025

It seems DMA works on SERIAL_PORT 1, but not in port 3.
This is a pity since port3 is where the wifi board is

EvilGremlin pushed a commit to EvilGremlin/Marlin that referenced this pull request May 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: STM32 T: HAL & APIs Topic related to the HAL and internal APIs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FR] SERIAL_DMA feature for STM32H7xx

3 participants