Roff
Well-Known Member
I think I posed a similar question about a year ago, but I never followed up on the project.
OK, here's the deal. I want to create a 128kX8 continuous loop memory in SRAM (static read-only memory), with a read pointer that is adjustable relative the the write pointer. The write pointer is continuously rotating at a 25 kHz (per address change) rate. The read pointer will be adjustable by subtracting the 8-bit digitized value of a pot from the top 8 bits of the write address, but otherwise will rotate at the same rate, except for transients when the pot changes.
I have been thinking about various ways to do this, and the hard-wired logic method is pretty straightforward, but it takes a LOT of parts. So, I've been looking at PICs. It seems like the SRAM addressing could be accomplished by executing a fixed-execution time endless loop which increments a register, outputs it to the I/O as the write address, then subtracts the A/D from the top 8 bits and outputs that to the I/O as the read address. Of course, there are also read/write controls required, but I think these are relatively straightforward.
One question is, how do I do this on a 17-bit (128k) word? Even the big PICs only have 16 bit words, and anyhow I would like to stick to the 8 bit parts. Can I concatenate 2 or 3 registers? (I'm assuming the 8 bit parts have 8 bit registers).
PS you may have guessed that this is for an adjustable audio delay.
OK, here's the deal. I want to create a 128kX8 continuous loop memory in SRAM (static read-only memory), with a read pointer that is adjustable relative the the write pointer. The write pointer is continuously rotating at a 25 kHz (per address change) rate. The read pointer will be adjustable by subtracting the 8-bit digitized value of a pot from the top 8 bits of the write address, but otherwise will rotate at the same rate, except for transients when the pot changes.
I have been thinking about various ways to do this, and the hard-wired logic method is pretty straightforward, but it takes a LOT of parts. So, I've been looking at PICs. It seems like the SRAM addressing could be accomplished by executing a fixed-execution time endless loop which increments a register, outputs it to the I/O as the write address, then subtracts the A/D from the top 8 bits and outputs that to the I/O as the read address. Of course, there are also read/write controls required, but I think these are relatively straightforward.
One question is, how do I do this on a 17-bit (128k) word? Even the big PICs only have 16 bit words, and anyhow I would like to stick to the 8 bit parts. Can I concatenate 2 or 3 registers? (I'm assuming the 8 bit parts have 8 bit registers).
PS you may have guessed that this is for an adjustable audio delay.