5 ms·
are the PIO blocks wide enough to handle an ISA bus? Or are you using a shift register or another port on the pico to interface with the bus? edit: looking at
by jmole 3y ago
are the PIO blocks wide enough to handle an ISA bus? Or are you using a shift register or another port on the pico to interface with the bus?
edit: looking at the schematic it looks like you have the address/data pins multiplexed on an 8-bit port: https://github.com/polpo/picogus/blob/main/hw/PicoGUS-schematic.pdf https://github.com/polpo/picogus/blob/main/hw/PicoGUS-schema...
Curious if you did the HW design first, or SW design first, or how you came up with this particular solution.
- polpo 3y agoHardware design came first but the design did have to take into account some of the constraints of programming PIO. I had to make sure certain signals were on adjacent pins, since the range of pins you must set for in, out, set, or sideset pins in a PIO program must be contiguous. I did have to do another board spin when I realized an error I made with some of my pin orderings. I went for an 8-bit mux/demux to multiplex the 8 data pins and lower 8 bits of the address because I thought it'd be faster, but I do have to delay quite a bit in the PIO program while I wait for the mux to switch. Given the very high speed that you can feed serial data into a PIO, a couple of high speed shift registers might have worked just as well and would have saved on GPIO pins which are a very precious resource.
- ilyt 3y agoI think it is necessary purely because of relatively small amount of pins on rp2040