I have a board where a backup MCU is connected to all the same IOs as the main board. An error checking mechanism will select which MCU to power up. The other one will have all of it's IO ports in Hi-Z state to avoid shorts or other such problems.
Because of this requirement, ~90 signals are shared between the two MCUs, making routing quite complicated. The board must not be larger than 3.5" by 3.5" with a max height of .5" and space is lacking, even using vias and such. I'm trying to find the best way out.
The ideas I've come up with are:
- Use a 4 layers PCB. Since we are a students team, the ~60$ increase is significant and we'd like to avoid it if possible. That said, I'd be ok with hearing this is the best course of action.
- Use ribbon cables to link the various pins together. Pros: cheap, Cons: mechanically flimsy and more susceptible to electromagnetic interference.
- Solder the two MCU on top of each other. Pros: Less space taken and less soldering, Cons: Really not sturdy. Not an option unless there is a way to make this more solid.
- Add a PCB on top of the first using sockets/headers. Pros: Simple, sturdy. Cons: This adds a cost for the second PCB, and at that point I'm not sure this is more interesting than the 4-layers PCB. This also means the stacked board will need to be super close to the primary. While the MCUs should not make more than 1W each, the restricted air-flow could be bad for thermals (?).
The signals are not high-speed and/or high power, so the impedance and capacitance of the various options are not important.
What should I choose? Do you have other ideas? Am I missing some trade offs?