So my test board finally came in, and I'm running into some issues. It seems that when I turn the rotary switch it does in fact recognize that it needs to switch EEPROMs. However 50 percent of the time it can't seem to pull any info from the chip. This again can be remedied by switching through the banks to trigger it and make it read the correct chip. However, when it does work it seems to swap EEPROMs without having to do so. I feel like I'm really close on this one!
It looks like you are missing the I2C pull-up resistors on the SDA & SCL signals. This would make the I2C bus act strange and might be the issue. Add a couple resistors and see if that solves it.
It looks like you are missing the I2C pull-up resistors on the SDA & SCL signals. This would make the I2C bus act strange and might be the issue. Add a couple resistors and see if that solves it.
It could be that the reload is being triggered at the same instant that all EEPROMs are in a disabled state.
It might be necessary to add some circuitry to hold the Int/Ext pin in the Internal state for a slightly longer period. (RC filter or simple transistor switch)
It could be that the reload is being triggered at the same instant that all EEPROMs are in a disabled state.
It might be necessary to add some circuitry to hold the Int/Ext pin in the Internal state for a slightly longer period. (RC filter or simple transistor switch)
This was my thought too. The reload triggers everytime. But it must be happening an instant before the EEPROMs has time to adjust to the correct chip selection.
Are you suggesting an RC filter between the switch and the funtion of R29 and Pin 13? Could you elaborate a little on this please?
Something as simple as this might work, but C1 might not discharge fast enough to cause a 0 state on T0...
In that case you'll want to trigger it with a transistor/RC filter delay. I'm not sure if I still have the trace but it seems like there's something along those lines in the Keeley Delay Workstation.
Something as simple as this might work, but C1 might not discharge fast enough to cause a 0 state on T0...
In that case you'll want to trigger it with a transistor/RC filter delay. I'm not sure if I still have the trace but it seems like there's something along those lines in the Keeley Delay Workstation.
You'll have to experiment with the values. R2 will need to be significantly larger than R1 so that the voltage on T0 is still high enough to be considered a logic high.
If all else fails I'll see if I still have that Workstation pedal and can take a peek at how it's done there.
You'll have to experiment with the values. R2 will need to be significantly larger than R1 so that the voltage on T0 is still high enough to be considered a logic high.
If all else fails I'll see if I still have that Workstation pedal and can take a peek at how it's done there.
You'll have to experiment with the values. R2 will need to be significantly larger than R1 so that the voltage on T0 is still high enough to be considered a logic high.
If all else fails I'll see if I still have that Workstation pedal and can take a peek at how it's done there.
You'll have to experiment with the values. R2 will need to be significantly larger than R1 so that the voltage on T0 is still high enough to be considered a logic high.
If all else fails I'll see if I still have that Workstation pedal and can take a peek at how it's done there.
This should work, but what you'll end up with is a PCB that can only access the internal programs and a single program from an external EEPROM.
I know, I know, that was the goal... but...
What I would recommend instead is just loading the seven internal programs onto an EEPROM along with an additional program of your choice into patch #5. Now you have access to all of the internal programs, and the ability to switch to another full set of eight just by swapping out the EEPROM.
Exact same BOM, but more flexibility.
All of the internal programs are available in SPN format on the SpinSemi website: