I have read that the Amiga 1200 may need certain "timing fixes" to be applied to the motherboard in order to use CPU accelerators. What are these timing fixes and why are they needed? Is there one set of fixes that will fix all hardware stability issues with the Amiga 1200? Do the timing fixes needed depend on the CPU accelerator used?
As far as I know, there's no authoritative source, and the information out there is probably not really accurate. I will answer this from an electrical engineering perspective, and because I have implemented some of these fixes myself. First a little note about timing fixes:
The expression timing fixes is not really accurate, but comes from the observation that an RC filter (Resistor-Capacitor) will affect a digital step in a way that, after thresholding at an input of a digital circuit, looks like it has been delayed in time:
It is a pretty bad and unreliable way to delay a fast digital signal, and to my knowledge, this is not really what the fixes do.
Ringing. Overshoot. Impedance mismatch.
The solution is called termination, and you may have seen it used in other settings, for example in SCSI cabling. Here is a great video on the subject, from 1959.
If you have a signal from point A to point B, the correct termination can be calculated, but for distributed signals like the Amiga clock signals, it's not that easy. Especially so if you want to allow everyone to just plug in random boards to the same signals. The (arguably) correct solution is to use special circuits called clock distribution circuits, but you can usually get away with cheaper solutions.
The common way is to add termination resistors. This works well, but only when you know about everything connected to the bus. This is where the problem lies: Adding an expansion board to the bus will change the electrical parameters on the network, invalidating the previously calculated resistances. This does not necessarily break things. The signals only have to be "good enough". After all, that's why we are using digital signals.
There's also the question of electrical interference. A nice and clean clock signal will, counterproductively, cause a lot of electromagnetic interference. This can be mitigated by adding capacitors to smooth the sharp edges. Doing so is bad for the signal, and is preferably avoided, but can be a last resort fix to get the product out of the door.
Ian Stedman has collected some information about the various fixes proposed in the forums, and the main components are: E121x, E122x, E123x, E125x.
Looking at the schematics for the Amiga 1200 we can locate these components, and they are all connected to the CPU clock signal. A note on the schematics say
Note: Various components are for EMI Control and may be loaded with funny things...
...and another one...
Note: Components designated as Exxx may be loaded with EMI fliters[sic], ferrite beads or resistors!
We can also see that there is an asterisk near these components. What all this means is that the engineer(s) simply added the components to the schematic in case they found out that they are necessary. Some of these are not populated, and some are (This is very common and you will see a lot of unpopulated components on almost every circuit board). It could very well be that they did not plan to populate the components, but wanted the option of doing so in case any unforeseen problems arose. Eventually, someone down the line either put components there by mistake, or after measuring the final product and observing that the components are necessary. Everyone working in consumer electronics manufacturing can probably tell a lot of stories about this.
Is there one set of fixes that will fix all hardware stability issues with the Amiga 1200?
The fixes consists of fitting or removing these components. Every Exxx component has two parts: A resistor and a capacitor. The resistor (ExxxR) can either be left out, fitted, or replaced with a ferrite bead. The capacitor (ExxxC) can either be fitted or left out.
A thread on the English Amiga Board suggests these fixes:
- E123R, E125R - Fit with the value indicated in the schematics
- E121R, E122R - Fit or replace with a 60 Ω ferrite bead
- E123C, E125C - Fit with the value indicated in the schematics
- E121C, E122C - Replace with 27 pF capacitors
In contrast to that advice, Individual Computer's wiki has an article about the capacitors and instead strongly recommend that they are to be removed.
In my opinion, removing the capacitors and leaving everything else as they are is the best advice. I have a feeling that doing this on every motherboard, no matter the revision, will fix any issues with accelerator boards. I have three reasons for recommending this:
- The capacitors are only added to pass an artificial test. Other than that, they do more harm than good to the signals.
- There is a technically sound reason for the resistors as designed.
- Any unnecessary rework has a chance of damaging the board or other components.
- No need to order new parts.
Do the timing fixes needed depend on the CPU accelerator used?
I have not seen any good comparative data on this. People often mention Apollo boards to be extra problematic, but I have personally had to perform the modifications on an old Amiga 1200 for a Blizzard accelerator board.
Now, as mentioned by Kuba Tyszko in a comment, if your accelerator board works, it is not necessary to risk damage by doing any of these mods. If, however, you experience unusual instability, it may be worth trying to remove the capacitors. I have nothing to back this up (yet), but I believe that this will improve the situation for every accelerator.
Please leave a comment if you believe something here is wrong or unclear, and I will try to update the answer. It is an interesting topic, and it deserves to be researched.