Skip to content

Conversation

tannewt
Copy link
Member

@tannewt tannewt commented Aug 29, 2025

SPI was using DMA to transfer to PSRAM. When a cache miss occurs, the DMA can't switch to another transfer and throws off DVI timing.

So, only use DMA with SPI when the buffers are in SRAM. This will slow down SPI transactions when the FIFOs are empty and the CPU is busy running a background task. It will still be correct though since we control the SPI clock.

Fixes #10557

SPI was using DMA to transfer to PSRAM. When a cache miss occurs,
the DMA can't switch to another transfer and throws off DVI timing.

So, only use DMA with SPI when the buffers are in SRAM. This will
slow down SPI transactions when the FIFOs are empty and the CPU is
busy running a background task. It will still be correct though
since we control the SPI clock.

Fixes micropython#10557
@tannewt tannewt requested a review from dhalbert August 29, 2025 17:11
@RetiredWizard
Copy link

I've tested with my Weather Clock and that no longer blinks while it's performing the web requests. I had also seen the blinking when playing MP3 files from the SD card and this seems to have resolved that as well.

Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also tested with the OP test program and see no blanking on an HDTV. Great, thanks!

@dhalbert dhalbert merged commit 3d4118a into adafruit:main Aug 29, 2025
162 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fruit Jam HSTX/DVI output goes dark during web request
3 participants