You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I fear this turns out to be a bit wrinkly. I have a jumble of thoughts:
GPIO base is per PIO, not per SM. So, we have a new problem when allocating SMs, that we have to know whether we want the high or low bank and whether a PIO has any other SMs associated with it. (pico-sdk solves this by requiring the PIO base register be set before calling pio_sm_set_config and erroring if it clearly doesn't match)
There's an inherent ambiguity: On rp2040 & rp2350A, having a pin base of 20 and a count of 20 addresses pins 20..31 & 0..7 (wrap around arithmetic). on 2350b, should this address 20..39 or the same pins as on 2040?
on 2350b, the answer is that only the base pin is checked an so the effect depends on the pio base register setting
but if we want to make the bank selection implicit, we have to choose whether we want to favor compatible wrap-around (unlikely) or high bank use (likely)
we check the wait gpio instruction for matching an otherwise used pin number, but this also depends on the bank setting.
rp2pio does not yet support GPIO numbers >31 and has some RP2040-specific includes. Generalize it for RP2350.
The text was updated successfully, but these errors were encountered: