Afficheurs à LEDs

Date: 2014-12-22

Tags: DIY reverse_engineering

Récupération

J’ai récupéré un équipement de laboratoire fabriqué par Sofraser avec un module d’interface pour des capteurs de viscosité et deux modules de contrôle et d’affichage. Cet équipement est trop ancien et la documentation n’est plus disponible sur le site web du constructeur, mais il est possible d’en récupérer des pièces.

Tests et mesures

Les modules de contrôle et d’affichage sont formés de 3 cartes emboitées :

Sofraser 6001 : Cartes puissance - AIO, MCU - DIO, afficheur

Reverse Engineering Hardware

En fonctionnement normal, sans capteurs branchés, l’afficheur affiche quelque chose sur chaque afficheur.

Sofraser 6001 : afficheur

Comme l’afficheur fonctionne, on peut mesurer les tensions d’alimentations et vérifier rapidement l’allure des signaux au voltmètre.

Pour identifier la suite, il faut débrancher l’afficheur, sortir la datasheet du registre à décalage et tester à l’Ohm-mètre.

Ce qui nous donne le pinout du connecteur :

  1. VDD (Power, 3~60V), il est peu probable que les transistors apprécient plus de 15V
  2. ?
  3. ?
  4. Blank/Strobe
  5. VDD (Logic, 3~15V), à adapter aux niveaux des signaux
  6. SW2
  7. CLK
  8. SW1
  9. SDIN
  10. SW3
  11. GND
  12. SW4

Les pins en vert sont connectés directement au registre à décalage et acceptent des signaux TTL et LV-TTL. Comme on a un registre à décalage, on peut être tenté d’utiliser un périphérique SPI, sauf que ceux des AVR et des MSP430 sont incapables de sortir des mots de 20bits… Il faudra faire du bit-bang en software.

En regardant la datasheet, on observe que les signaux SDIN et CLK permettent de charger le registre à décalage. Ensuite le signal Strobe permet d’activer le latch et le signal Blank permet d’activer le buffer. Sur ces cartes, les signaux Strobe et Blank sont reliés. Ainsi on économise un fil.

UCN5812AF

Reverse Engineering Software

En balayant le registre, on peut se rendre compte de l’adresse de chaque afficheur, segment et LED.

Schéma afficheur

Afficheurs :

  1. 0x002000
  2. 0x001000
  3. 0x000800
  4. 0x000400
  5. 0x080000
  6. 0x040000
  7. 0x020000
  8. 0x010000
  9. 0x004000

LEDs :

  1. 0x008004
  2. 0x008020
  3. 0x008040
  4. 0x008080
  5. 0x008100
  6. 0x008200

On remarque aussi que tout est câblé ensemble. On peut choisir d’allumer les segments et les digits un par un, mais pas indépendamment (il est possible d’afficher ” 1 1”, mais pas “1234”). Pour afficher autre chose, il faut utiliser la persistance rétinienne et balayer chaque valeur par digit.

On peut associer les segments aux nombres et lettres que l’on va afficher :

Le programme est bêtement formé de LUTs (afficheur, LED et digits) et de boucles (SPI bit-banging et selection de l’afficheur/LED).

Premier essai de l’afficheur

Chaînage

Le pin 2 est une sortie du registre à décalage et n’est pas câblée, mais il est possible de chaîner plusieurs afficheurs, seule la “longueur” du mot est doublée (40bits).

Afficheurs chaînés

Références

Electronics Électronique puissance semiconducteur semiconductors power Hardware CPE INSA Xavier Bourgeois

Xavier