TomXP411 wrote: ↑Tue Apr 11, 2023 7:51 am Ewww. No. SPi consumes too much CPU time to be useful.
Given the timed FIFO queue of that chip, bit banged SPI seems like it would be workable ... indeed, that's kind of why they provide the timed FIFO queue, so that the timing of writing to the chip is not closely tied to the timing of the execution of the actual register changes ... but hardware assisted would be better.
It might be possible to fake SPI using the bit shifters and the handshake clock, but that just increases the complexity level for programmers.
The complexity for programmers seems like it would be the same either way, load device number, JSR SPI_SELECT, load output byte, JSR SPI_OUT, JSR SPI_IN and store input byte, or load output byte, JSR SPI_BYTE, store the return byte, and then when done talking to the SPI device, JSR SPI_DESELECT.
At this point, I'm thinking an RP2040 or FPGA is a better choice.
When an RP2040 is used to emulate a chip is when I'm checking out, but I've said previously, my first preference is to include a YM2151 socket and put an FPGA simulator board in it if real YM2151's can't be found. That way if a Developer Board owner gets their hands on a YM2151 and corresponding DAC, they can just pop out the FPGA simulator board, pop the YM2151 in, and pick up where they left off.