samedi 19 mai 2012

A1200 fix pour ACA

Certains Amigaïstes ont des soucis avec les dernières ACA1231 sur AI en ce moment.

En effet, il apparait des bugs graphiques, quand ce n'est pas une impossibilité de booter la machine !

Les soucis viennent de certaines cartes, peu importe leurs révisions, car des composants soudés ne sont pas les même que pour la grande majorité des 1200.

Ayant quatre A1200 ici, aucune n'a besoin d'un fix ! Peu importe, voici les modifs à faire.

Déjà la référence des composants qui sont deux condensateurs 22 pF au format 0805 :
Et deux ferrites 60R@100 toujours au format 0805 :

Voilà les précisions du designer des ACA :
I found a method to reliably reproduce the graphics corruption effect. It's an effect where the blitter gets the wrong data, thus copying the wrong data, or at least the wrong amount of data.

I had to place some insulating material on Alice to heat it up and keep it from radiating too much heat. With a cool Alice, or at least in free-floating air, it was hard to get the gfx corruption reliable, but with Alice in a cosy coat of styrofoam, I had reliable GFX corruption when moving windows around on the Workbench and when using the TGtest in AIBB.

At first I tried solving the problem on the digital side (within the CPLD of the accelerator), but failed due to it's high access speed to the chipset. As some of you like to call it, the ACA1230 is "maxing out" the AGA chipset, and to those of you who are a little more technical : my state machine relies on the chipset of catching the data on the falling edge of CPU_CLK right after DSACK has been detected active (low) on the previous rising edge. It's a matter of a few nanoseconds that Alice (and the blitter that's contained therein) is missing the data when hot.

I call the fix preliminary, because I have to wait until the whole system has cooled down and re-try. Note that Alice isn't the only one that's handling clocks - Budgie makes the largest part of that work, but Alice depends on those clocks, so I still need to verify that it works reliably on a cold start.

The board in question is a 1D4. I can't tell if it's a Commodore or an Escom board. However, I have measured severe clock jitter especially during blitter operation. This 1D4 board had no filters on the 14 MHz CPU clock lines installed at all, but all my other boards have a filter combination assembled that is NOT seen in the schematics. The two 14 MHz signals are ran through filter combos E121 and E122. Schematics say that it's 27R / 22 pF combinations, but the faulty board has no caps installed - only the 27R resistors. During heavy blitter operation, the 14 MHz clock (which is the basis for the whole accelerator  timing) is jittering as much as 8 ns, but it looks just fine with an idle workbench.

Remove resistors E121R and E122R and replace them with 0805 ferrite beads - something in the range of 60R@100MHz or more. The two parts are located on the top of the board, near the 28 MHz oscillator.

Next, assemble two 22 pF capacitors (size 0805) in places E121C and E122C. These places were empty on the board in question, but need to be assembled with the parts mentioned in the A1200 schematics, and that's a 22 pF capacitor. These two parts are located on the bottom of the mainboard, also near the 28 MHz oscillator.

This will clean up the 14 MHz clock "big time" and make it completely immune against blitter-induced noise. However, it's not fixing the whole problem. I found that when assembling E125C with a 22 pF capacitor, but leaving E123C open, the machine is rock-solid, even with a heated-up Alice. With E125C removed, it's still showing some gfx corruption, but with the one part in place, the data-takeover into the AGA chipset is truly happening at the right  moment, and the fast access of the ACA1230 doesn't cause trouble to the mainboard any more.

I found that some boards have a ferrite bead installed in E127R, and other boards have a 27R resistor installed there. This also makes a difference in chipset timing and may be another part that I have to look at if the board starts acting up again when cold. However, since I have boards working great with one or the other installed, it doesn't seem to make that much of a difference.

I'll let the board, accelerator and power supply cool down for a few hours now, and report back how it behaves when cold. If anyone of you with access  to the required parts, tools and "bad boards" wants to give this a try, I'd be happy to hear your report(s).

Il faut donc souder les deux 22 pF dans l'emplacement vide E121C et E122C de l'autre côté de la carte :

Ensuite, dessouder E121R et E122R en les remplacant par les deux ferrites ici :

Voilà, c'est tout. Les nouvelles ACA devraient marcher maintenant !

2 commentaires:

  1. Possesseurs d'ACA1231, qu'est-ce que vous feriez sans Cosmos !!!

    Allons réagissez, à quoi ça sert que Cosmos se décarcasse !



Posté vos remarques :