Following on from my post in this thread:
I took some measurements yesterday, and it looks like the PiTubeDirect and this 1MHz interface will both fit under the beeb without having to do any offsetting of the RPi . Working on this basis, early design is looking something like this (power and ground tracks still to be added):1024MAK wrote: ↑Wed Jan 01, 2020 11:57 pmYesKenLowe wrote: ↑Wed Jan 01, 2020 9:51 pmI was toying with the idea of designing and building a PCB that would use 4 x SN74LV245APWR level shifters in place of the diode / resistor arrangement. The idea would still be that the PCB would accept a RPiZero, and the whole device would sit under the beeb. However, I've noticed that the RPiZero is a bit wider than the 1MHz bus connector, and it would likely clash with the PiTubeDirect solution that similarly sits under the beeb. The solution to this would be to have the RPiZero mounted on the PCB with an offset away from the Tube port. The downside of this is that the RPiZero would be pushed further towards the user port, and may then start to clash with devices plugged into the user port. However, I think it might just about work.
If I can get this to work, would that be of interest?
It may be better to start a new thread if you do decide to go ahead with your design.
Having read through the 1MHz bus application note, I couple of questions, though:
- I currently have the nIRQ and nNMI signals wired through one of the level shifters (in the reverse direction). I now realise they need to be Open Collector, so what would be the recommended way to do this with the limited space available on my board? I'm not sure how the existing RPi emulated devices are set up. Do they drive the GPIO pins high or low on interrupt request (and am I correct in understanding that the GPIO pins can't be set to a high impedance output)? Could I just use a simple transistor (that would invert), or should I be using something like a 7407 (that doesn't invert)?
- Do I need any bus termination?
- Do I need to clean up nPGFC & nPGFD, or do they get cleaned up in the RPi code for the emulated device?