So, in my previous question I asked about using the SPI bus over a short distance for board to board communication. I was recommended to try termination resistors. I placed a resistor close to the destination (but not exactly there, there was a distance of 1 cm) and grounded it. (As this was a board without termination resistor footprints, I had to improvise. I couldn't solder the resistor onto the device as it's a TQFP and has delicate pins.)
From some basic testing, I found that a 1 kΩ resistor barely reduced the overshoot. 470 Ω and 180 Ω worked better. The lower I went, the better it worked. With 180 Ω, the overshoot was about a volt or a little lower.
Now, unfortunately, I can't go down much more than that because the current is more than my MCU can handle. I did fix the problem, on the current revision of the board, by using a 330 Ω resistance in series. This brought the overshoot to 3.7 V and the rise time was 10 or 11 ns. But I would really like a 'proper' solution on the next revision. My frequency requirements stay the same: 2 MHz, but would prefer 4 MHz.
So I felt I should ask here: on the next revision of the board, should I place beefy buffers on the lines? Finding a buffer isn't really a problem but the current draw will increase significantly - I have 8 devices on the SPI which need termination and 3 lines that are always active go to each. An example, SCK goes to all 8 devices. Each device will have, say, a 100 Ω termination resistor. So that is a current draw of 12 * 3.3/100 = 390 mA!
So what is the best recourse here? Should I go for 'active termination' by using Schottky diodes as clamps?
EDIT: Regarding line impedance: As I mentioned previously, the intention is to connect 4 external boards. The pad to pad distance is the same for all (12 inches). However, there are also devices on the same board as the MCU - but these don't need terminations - the lengths are about an inch (or less) and there is very little overshoot (300 mV). The traces that go to external boards are roughly the same length and width. The 2nd layer on my board is an unbroken ground plane.