The new HSTX interface on the RP2350 seems to be squarely targeted at this use case (video output) and doesn't require the use of PIO or consuming a ton of CPU cycles. There's a nice write up on the capability here: https://www.cnx-software.com/2024/08/15/raspberry-pi-rp2350-...
The main advantage of the SIO TMDS encoder, is that it allows you to output TMDS on any GPIO, instead of the eight that the HSTX is restricted to.
And they allow an easy upgrade path for projects that were already bit-banging DVI on the rp2040. Other than those two advantages, I don't think there is any advantage to the SIO TMDS encoder over the HSTX TMDS encoder.
I get the impression that the SIO TMDS encoder was added to the design first, and there wasn't a good reason to remove them after the introduction of HSTX.
Isn't hstx mainly good for streaming out? My naive guess would be that it wouldn't have as much transceiver offload capabilities, like what the SIO I naively guess would be good for.
The nice part about using SIO seems to be that you can do the tdms encoding there. With hstx you need the output bitstream in the right format already which seems like you might be back to needing the CPU to do the encoding.
HSTX has a built in TMDS encoder, and as far as I can tell, it has all the functionality of the SIO TMDS encoder.
You can configure it to directly consume any line buffer with any pixel format, from 1 to 8 bits per color channel. It even supports formats with different numbers of bits per channel like 8-bit RGB322 and 16-bit RGB565.
phire|1 year ago
And they allow an easy upgrade path for projects that were already bit-banging DVI on the rp2040. Other than those two advantages, I don't think there is any advantage to the SIO TMDS encoder over the HSTX TMDS encoder.
I get the impression that the SIO TMDS encoder was added to the design first, and there wasn't a good reason to remove them after the introduction of HSTX.
jauntywundrkind|1 year ago
The nice part about using SIO seems to be that you can do the tdms encoding there. With hstx you need the output bitstream in the right format already which seems like you might be back to needing the CPU to do the encoding.
phire|1 year ago
You can configure it to directly consume any line buffer with any pixel format, from 1 to 8 bits per color channel. It even supports formats with different numbers of bits per channel like 8-bit RGB322 and 16-bit RGB565.