Hey,
I'm a first timer when it comes to micro controllers obviously, and i'd like to know if I can use it to solve a problem in a project I have been planning before I do too much research on them.

Let me give you the short version of what I want to do.
I am a big fan of classic video games, particularly the original Nintendo, and I want to build an arcade cabinet that uses the original hardware and a spare circuit board to select between 20-50 cartridges housed in the cabinet.
I'm designing the circuit board, but the hard part is the cartridge pin redirection.

Each NES cartridge has 72 pins, which corresponds with 72 pins on the NES motherboard. What I want to do is use a micro controller to select which cartridge is receiving power and exchanging data with which the motherboard, or, redirect 72 pins/wire of information between them.

At best I'd like to have over fifty different "settings," controlled by simple button pushes. Pressing a button would ideally turn off all other settings, and reset the re-direction to the cartridge that corresponds to that button.

Is this type of setup possible with micro controllers? If so, what do you suggest? Where should I start, i'm sure i have a lot of reading to do.

Yeah, i'be been wanting to do it for quite some time, but it's obviously very problematic. I can't think of any way to do it without some sort of processor telling the wires what to connect to - and i don't know enough about micro controllers to know if they are capable of that. I was hoping some enthusiasts here could tell me if i was wasting my time with them, and I should look to something more powerful.

You would need at least two things: one, that it's possible to intercept or route certain 'key' lines into each cartridge, such as a 'select' or clock line, that will prevent any but the target cartridge from responding to the mainboard.

Second, that you can keep other 'inactive' cartridges on the same bus without interfering with the communications of the 'active' cartridge.

Obviously these two requirements are related.

I can see several ways of doing this. Simplest way would be to control the power to the cartridges individually. However, the 'dead' cartridges would be very likely to load down the bus, making it inoperable.

Another way would be to keep all the cartridges powered all the time, put a microcontroller inline with the line(s) you want to control, and have it send the line information only to the target cartridge. This will only work if there is a key line, like a clock, that will cause all the other cartridges to ignore the communications.

This would likely be impractical if you need to intercept more than one line, because of the sheer number of I/O you would need on that single microcontroller - one input, plus one output for every cartridge.

Another way would be to have a series of analog switches (multiplexers) that let you select which cartridge receives the line information. Slightly difficult, but not impossible.

A third would be to have a master/slave system. One master, plus one slave for every cartridge. The 'master' microcontroller takes the information from the mainboard and sends it along to the slave that corresponds to the correct target cartridge, which then sends the information back. Obviously timing might be a huge problem here, depending on the speed of the bus. It would be ideal if you could use something like I2C, which only requires two lines for practically unlimited slaves, but it might not be fast enough.

If the cartridges are basically parallel, though, or load down the bus lines when not in use, these systems could fail.

The master/slave concept could be extended to multiple pins of the bus - say, for example, a 16-bit wide parallel data bus plus three to five control lines. Add in two lines for I2C (or four for SPI) and several more to 'tell' the slave what number it is. This system would prevent multiple cartridges from interfering with the bus - you'd be replacing the standard bus with your own interface. Seems like overkill until you realize that lots of micros are around $1 these days.

If you needed to intercept all 72 lines, though, you could still do it. You'd just need tons of hardware to handle all that I/O. Getting a big micro that accepts all 72 lines as I/O and retransmits over I2C/SPI would still theoretically be possible, though, as there are many micros that have that number of I/O._________________- CG
http://www.codexguides.com/