Multiplexage des afficheurs SYS80
Etude du multiplexage.
Principe du fonctionnement des afficheurs en SYSTEM 80 et 80A.
Analyse et chronogrammes détaillés.
Analyse des signaux
Pour cette étude nous utilisons un analyseur logique 34 voies branché sur la carte CPU. Afin d'isoler le signal INT du circuit U5 (6532), une diode 1N4148 et une résistance ont été intercalées entre la broche de ce circuit et celle du 6502.
Analyseur logique LWLA1014 sur la carte CPU:
Fonctionnement général
Le multiplexage des afficheurs utilise plusieurs groupes de signaux qui permettent de gérer jusqu'a 48 chiffres. A un instant donné, seuls trois chiffres sont affichés (ce qui correspond aux groupes A, B, C). Les signaux de strobe (D1 à D16) commandent ensuite séquentiellement dans le temps, les autres chiffres (toujours par groupes de trois).
Chronogramme général en SYSTEM 80:
On peut voir dans ce chronogramme, que les signaux D1 à D16 évoluent séquentiellement, leur cadencement étant réalisé par des interruptions venant du timer de U5 (6532).
La durée totale de la séquence est de 16,2 ms, soit une fréquence de rafraichissement de 62 Hz.
Zoom sur le pilotage d'un strobe:
Chaque strobe reste actif pendant environ 1 ms, ce qui est également la fréquence "moyenne" des interruptions du timer U5.
Le traitement de ces interruptions dure en moyenne 340 µs, sauf pour les quatre derniers strobes (D13...D16) où elle est un peu plus courte, de l'ordre de 230 µs. Ceci est normal, car les groupes A et B ne sont pas commandés. Ils ne sont pas utilisés en SYSTEM 80 où l'on a besoin que des petits afficheurs à 4 chiffres (seul le groupe C est neccéssaire).
En SYSTEM 80, le multiplexage est donc réduit à 40 chiffres maximun.
Détails d'une interruption
Lorsqu'une interruption survient sur le timer U5, le CPU doit traiter le strobe suivant et présenter les nouveaux chiffres aux latches 74175.
En réalité, la durée de traitement de l'interruption est variable car plusieurs opérations sont réalisées, comme par exemple, la gestion du clignotement. Malgré ces variations, le temps global sur 16 interruptions est relativement stable.
Le timer U5 est rechargé en fin d'interruption afin de déclencher la suivante après un interval fixe de 700 µs (temps alors disponible pour les autres traitements).
Traitement d'une interruption:
Comme on le voit sur ce chronogramme, ces opérations s'éffectuent en plusieurs temps. Ce séquencement est dû à la conception électronique du circuit, qui ne permet pas de tout réaliser simultanément. En outre, certains signaux sont mémorisés (chiffres dans les 74175) alors que d'autres non (segments H).
- Dans un premier temps, alors que le strobe précédent est toujours actif (ici D8):
- Remise à zéro des signaux CLK des 74175 (donc inactifs)
- Présentation d'une donnée "F" en entrée (en vue d'éteindre les afficheurs)
- Sortie simultanée d'un signal CLK à 1 sur les trois 74175, ce qui éteint les afficheurs
- Les trois sorties des segments H sont également remise à zéro à cet instant
- Dans un second temps, on bascule sur le strobe suivant (ici D9):
- Sortie de la nouvelle valeur du strobe et remise à zéro des signaux CLK des 74175
- Sortie de la donnée à afficher pour le groupe C, puis mise à 1 du CLK 74175 du groupe C
- Sortie de la donnée à afficher pour le groupe B, puis mise à 1 du CLK 74175 du groupe B
- Sortie de la donnée à afficher pour le groupe C, puis mise à 1 du CLK 74175 du groupe A
- Les trois sorties des segments H sont ensuite positionnées simultanément
En théorie, comme les trois groupes sont éteints simultanément, mais sont ensuite commandés séquentiellement, leur durée d'affichage est donc légérement différente. Leur luminosité n'est donc pas tout à fait la même, puisque le groupe C est allumé 60 µs avant le groupe B, lui-même allumé 60 µs avant le groupe A. En pratique, cette différence n'est pas perceptible à l'oeil.
Les segments "H"
Les afficheurs Gottlieb utilisent un segment additionnel "H" par rapport aux afficheurs classiques à 7 segments. Celui-ci permet d'afficher un "1" centré, au lieu des segments "B" et "C" utilisés habituellement.
La gestion de ce segment est confié au CPU qui l'applique systèmatiquement à tous les chiffres. Les petits afficheurs à 4 chiffres ne disposant pas de ce segment H, un circuit électronique leur a été ajouté (74132) afin de regénerer les segments "B" et "C" pour former le "1".
Le traitement des segments H est réalisé comme pour les autres chiffres, lors de chaque interruption.
A la différence des chiffres mémorisés dans les 74175, les segments H sont pilotés directement par le 6532.
- Dans un premier temps, les segments H sont éteints alors que le strobe précédent est toujours actif.
- Dans un second temps, lorsqu'on a basculé sur le strobe suivant, les trois segments H sont activés en dernier.
Dans cet exemple, les chiffres des groupes B et C sont éteints, le groupe A doit afficher un "1". On remarque que la valeur présentée au 74175 pour le groupe A est bien un "F" (éteint) et non un "1".
Strobes D13...D16
A la différence des strobes D1...D12 où les trois groupes (C, B et A) sont utilisés, seul le groupe C est adressé avec les strobes D13...D16.
Il en résulte que la durée du traitement de l'interruption est réduite à 230 µs au lieu des 340 µs.
Evolutions en SYSTEM 80A
Sur ce système, afin d'afficher les chiffres supplémentaires, les trois groupes (C, B et A) sont aussi utilisés avec les strobes D13...D16.
Chronogramme général en SYSTEM 80A:
La durée moyenne de traitement des interruptions est alors de 360 µs pour D1...D12 et de 520 µs pour D13...D16.
Pour tenir compte de cet allongement des temps de traitement, l'interval du timer U5 a été réduit à 605 µs. La durée totale de la séquence est de 16 ms, la fréquence de rafraichissement est donc toujours d'environ 62 Hz.
SYSTEM 80A amélioré
Sur nos systèmes 80A, nous avons corrigé un bug dans l'affichage 7 chiffres.
Chronogramme général en SYSTEM 80A amélioré:
La séquence est semblable à celle du 80A, mais la durée moyenne de traitement des interruptions est de 350 µs pour D1...D12 et de 600 µs pour D13...D16.
La durée totale de la séquence est de 16,3 ms, la fréquence de rafraichissement est donc toujours d'environ 62 Hz.
Le bug corrigé est au niveau des strobes D13...D16, la séquence de traitement correspondante s'en trouve allongée.