Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@sfe-SparkFro
Copy link
Contributor

Summary

HSTX support for the RP2350! Resolves #17111

This implementation is similar to rp2.DMA in that the control registers values are created with pack functions. The FIFO registers are accessed with special functions. It also supports the buffer protocol (write only) so DMA transfers are relatively simple.

Note that this implementation is entirely application agnostic, unlike other HSTX implementations (which often just implement DVI, and end up hogging specific resources for it).

Testing

I've created 2 demos here. The first is a simple blink, the second is a DVI implementation.

Both tested to work with the following:

Though it should work with any RP2350 board and appropriate hardware to run the DVI example.

Trade-offs and Alternatives

On my machine, this adds 1852 bytes (+0.59%) to the RPI_PICO2 build. IMO this is worth the extra functionality for the reasons outlined in #17111.

@sfe-SparkFro
Copy link
Contributor Author

Oh also, would be good to implement this #17692 (comment) so Pin.ALT_HSTX can be used!

@github-actions
Copy link

Code size report:

Reference:  lib/stm32lib: Update N6, U5 & WB. [673524f]
Comparison: rp2: Add initial HSTX implementation. [merge of c24e8ef]
  mpy-cross:    +0 +0.000% 
   bare-arm:    +0 +0.000% 
minimal x86:    +0 +0.000% 
   unix x64:    +0 +0.000% standard
      stm32:    +0 +0.000% PYBV10
     mimxrt:    +0 +0.000% TEENSY40
        rp2:    +0 +0.000% RPI_PICO_W
       samd:    +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
  qemu rv32:    +0 +0.000% VIRT_RV32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HSTX Support for RP2350

2 participants