Printer-80 LCD
Imprimante LCD pour SYSTEM 80.
Emulation sur un afficheur LCD de l'imprimante de service des SYSTEM 80. Cette réalisation "low-cost" utilise une interface simple à 4 fils.
Pour SYSTEM 80 uniquement (la sortie imprimante n'existant pas sur 80A, ni sur les 80B).
Le mystère du SW77
Sur les SYSTEM 80, l'un des contacts de la matrice n'est jamais câblé, ni utilisé: c'est le SW77. Lorsque l'on branche ce contact, par l'intermédiaire d'une diode entre STR7 et RTN7, cela provoque un blocage de la carte CPU. Le rôle de ce contact est resté longtemps mystérieux.
Nous avons découvert sa fonction cachée lors du reverse-engeenering des PROMs U2/U3 des SYSTEM 80:
Ce contact doit être utilisé en association avec une imprimante thermique spécifique. Il n'est câblé que sur les bancs de test et déclenche l'impression sur un ticket en papier,
des informations suivantes :
- Numéro du flipper (lu dans la PROM de jeu)
- Comptabilité des trois monnayeurs (left, center, right)
- Nombre de parties jouées
- Nombre de parties gratuites
- Pourcentage entre parties payantes et gratuites
L'imprimante de service est branchée sur le connecteur A1J6, via les signaux STR0 (sortie des données) et RTN6 (retour acquittement).
Lorsqu'il n'y a pas d'imprimante connectée, le CPU attend indéfiniment un acquittement qui n'arrive jamais, ceci explique le blocage constaté auparavant.
Présentation du module "Printer-80 LCD"
Nous avons réalisé un montage autonome pouvant se substituer à cette imprimante de service (celle-ci étant d'ailleurs absolument introuvable).
Le module peut être laissé à demeure dans le flipper et ne pertube en rien son fonctionnement. L'éclairage de l'écran LCD est automatique et
ne s'active que le temps de l'impression, lorsque l'utilisateur appui sur le SW77.
Le prototype a d'abord été réalisé sur une planche d'expérimentation.
Réalisation
Le module peut être réalisé sur une simple plaque d'expérimentation avec les composants suivants:
- Une plaque d'essai.
- Un afficheur LCD 2 x 16 lignes (réf QC1602A) rétroéclairé.
- Une résistance de 2,2 KΩ.
- Deux diodes 1N4148 (l'une servira pour le SW77).
- Un support 14 broches.
- Un PIC 16F684 (à programmer).
- Une barette sécable (mâle + femelle) 16 contacts.
- Du fil de câblage.
Le module n'est relié que par quatre fils, deux pour l'alimentation en 5 volts, les deux autres allant vers STR0 et RTN6 du connecteur A1J6.
Pour les détails, se reporter au schéma:
Une plaque d'environ 40 mm x 35 mm suffira et viendra se loger sous l'afficheur LCD (cliquer sur les photos pour les agrandir):
Exemple de réalisation sur une plaque à bandes (vu de dessus):
Programmation du PIC 16F684
Le micro-contrôleur PIC 16F684 doit être programmé avant d'être implanté sur la carte. Le programme (fichier .hex) est disponible gratuitement en téléchargement:
Assurez-vous lors de la programmation que les zones "FLASH" (programme) + "EEPROM" (données) + "CONFIG" (configuration) sont bien prise en compte et correctement chargées par votre programmateur.
Protocole et interface
Les signaux entre la carte CPU et l'imprimante sont aux niveaux TTL. La sortie STR0 est utilisée pour les données tandis que le retour RTN6 sert de signal d'acquittement.
Le CPU envoi les données en mode série. Après l'envoi d'une donnée, le CPU attend que le signal RTN6 passe au niveau 0 (prise en compte par l'imprimante), puis attend de nouveau qu'il repasse au niveau 1 (fin du traitement par l'imprimante).
Le format et la vitesse de transmission sont très particuliers. Les données sont émises sur 7 bits, dans l'ordre normal (bit LSB en premier, bit MSB en dernier), chacun durant environ 1670 µs, soit une vitesse de transmission de 600 bps. Le CPU envoi d'abord un demi bit de start (mise au niveau 0), puis sort ensuite les 7 bits de données, une trame durant environ 12,5 ms (7,5 x 1,67 ms). Ce débit relativement faible, de 80 caractères par seconde, est pourtant largement suffisant pour piloter une imprimante thermique.
Le protocole est en revanche, plus standard, avec des données codées en ASCII sur 7 bits.
- L'impression commence par la séquence 0x00 (NUL), 0x0E (Shift Out), 0x18 (CAN), 0x11 (DC1).
- Chaque ligne, de 15 caractères, est terminée par un 0x14 (DC4).
- La fin de l'impression est indiquée par un 0x12 (Form Feed).
Distribution
Cette réalisation est disponible gratuitement.