The PIO itself, no - each PIO SM only has 4 registers (X,Y, ISR, OSR) of 32-bits each, nowhere near your 175 bytes.My big question is, can this be set to loop? Can I set up say, 175 byte array and have the PIO refresh with that data unattended?
But you can do it with PIO + DMA - the PIO handles formatting and pacing the output, DMA keeps the FIFO topped up from a buffer in RAM.
DMA does have a circular mode, but that only works with power-of-2 sized buffers; the solution for this case is to use a pair of DMA channels, with one channel doing a 175-byte transfer to the PIO and then chaining to the second channel; the second channel then just reloads the first one to do it again.
Statistics: Posted by arg001 — Fri Apr 05, 2024 9:21 am