Analysieren Sie das Protokoll, das für das Futaba VFD-Display verwendet wird, 3 Datenpins

Ich zerlegte ein Samsung SMT-C7140 HD-Gerät (von der Kabelfirma veraltet, schade) und fand ein schönes Display, das ich wahrscheinlich wiederverwenden könnte. Es ist ein Futaba GL07-00006A (13-BT-246GINK). Ich habe versucht, das Servicehandbuch des Samsung-Geräts zu finden, habe versucht, ein Datenblatt des Futaba-Displays zu finden, jedoch ohne Erfolg.

Also begann ich, die Anschlüsse der Frontplatte/des Displays zu analysieren und stellte fest, dass es möglich sein könnte, die gesamte Frontplatte wiederzuverwenden, der Wechselrichter befindet sich auch auf der Platte. Der Futaba hat keinen externen Treiber (kein Chip unter dem Display oder auf dem Motherboard), also dachte ich, es könnte ein Chip on Glass (COG)Display sein (wegen weniger Pins auf dem Display), ich denke, ich habe Recht, wie auch immer sie es nennen Chip IN Glass (CIG). Nachdem Sie die Pinbelegung herausgefunden haben (siehe Bilder unter dieser Frage), löten Sie einen Header und schließen Sie einen Logikanalysator daran an.


CIG-Analyse


Die 4 Datenpins der Futaba stehen direkt am Flachkabelstecker zur Verfügung. Auf der Platine befinden sich einige Mikrocontroller und ein Hauptprozessor. Nachdem ich die Pins mit dem Analysator gelesen habe, sehe ich so etwas:


Analysator


Sie können die Aufnahmen in einer ZIP-Datei herunterladen , haben mehrere Sitzungen durchgeführt und sind im Saleae Logic-Dateiformat, PulseView und im VCD-Dateiformat verfügbar.

Es wurden mehrere Standardprotokolle ausprobiert, und I2C ergab ein Ergebnis auf CH0 und CH1, aber das scheint aufgrund der zusätzlichen zwei Datenkanäle (einige Takt- oder Aktivierungssequenzen) etwas seltsam zu sein. Habe auch SPI probiert (könnte möglich sein wegen 4 Datenleitungen) aber viele Fehler oder kein Ergebnis.

Frage:

Erkennt jemand die Muster oder das Protokoll, mit denen diese Anzeige gesteuert wird? Weiß jemand, was für ein Treiber in diesem Display steckt?


Einige Bilder, die ich gemacht habe:

Vorder- und Rückseite

(Bild entfernt, siehe Update unten)


Update 04.04.2020 (<-komisches Datum!)

Es wäre schön, wenn es ein Tool zum Aufzeichnen und Wiedergeben der (Boot-)Sequenz gäbe, um sicherzustellen, dass alles richtig verbunden ist, nachdem Änderungen an der Konfiguration vorgenommen wurden. So etwas wie ein Audio-Wave-Player, ein TTL-Wave-Player. Ohne ist es wirklich schwierig, da leicht ein Fehler gemacht wird. Wenn es nicht funktioniert, kann es am verwendeten Protokoll oder an den Verbindungen liegen. Es kann Sie ziemlich verunsichern, weil Sie nicht genau wissen, wie es genau funktionieren muss.

Ich habe versucht, einen Mikrocontroller (nach dem Abdecken der Datenleitungen auf dem Flachbandkabel) an die Datenleitungen anzuschließen (es gibt nur 3 und nicht 4, eine davon scheint +5 V zu sein - siehe auch aktualisiertes "Schaltbild" unten) und Masse zu teilen um einige Software auszuprobieren, die ähnliche Geräte und deren Protokoll implementieren.

Habe keine offiziellen Futaba-Beispiele gefunden, weder an anderer Stelle noch auf der veraltet aussehenden Website von Futaba selbst. Nach Registrierung und Login gibt es eine beeindruckende Menge an Datenblättern, jedoch keine Möglichkeit, nach Merkmalen zu suchen. Auch in den Datenblättern gibt es keine Beispiele, nur Spezifikationen, der Mangel an Details "wie es geht" ist enorm.

Bin auf diese Noritake-Quelle gestoßen und habe den Produktkatalog durchsucht. Sie stellen einige Bibliotheken für AVR bereit und haben die meisten davon ausprobiert. Der Code ist ... keine Schönheit, Geschmackssinn, nehme ich an. Auch "Newhaven Display" und viele andere ähnliche Sachen wie Adafruit gefunden. Die machen alle ähnliche Techniken, kopieren Schaltpläne und so. Das Interessanteste, das ich fand, war ein Datenblatt der PrinceTon-Technologie (PT6314) , das sehr ähnlich aussieht, sich jedoch NUR vom Futaba-Datenblatt unterscheidet (und in seinem Datenblatt Beispiele enthält):

[Datenblatt der PrinceTon-Technologie (PT6314) vs. Futaba[9]

Der Hauptunterschied ist der Unterschied in der steigenden und fallenden Flanke. Ich weiß jedoch immer noch nicht, ob dies das richtige Protokoll ist. Also ja, sie haben es wirklich schwer gemacht, einige Sachen wiederzuverwenden.

Ich habe im Moment viele Dinge ausprobiert, um zu verhindern, dass das Display auf der Mülldeponie landet, habe jedoch einige Zweifel, dass ich die richtige Lösung finden werde. Also werde ich diese Reise vorerst beenden (es sei denn, es gibt eine echte Lösung) und die Informationen hier vielleicht für die zukünftige Verwendung hinterlassen. In der Hoffnung, dass Hersteller damit beginnen, unkritische Komponenten ihrer kurzlebigen Produkte zu kennzeichnen (Verbindungen von oder ein Datenblatt (mit Beispielen oder Code) davon bereitzustellen), um sie wiederverwenden zu können, anstatt sie wegzuwerfen.


Aktualisiertes Bild/Schema:Aktualisierte schematische Rückseite

Vielleicht der synchrone serielle Modus der LCD-Emulation , obwohl der Blitz invertiert aussieht.
@SpehroPefhany Hi Danke, schau mal!
@SpehroPefhany Nochmals danke. Es war eine wahre Achterbahnfahrt an Informationen, Suchen und Probieren, siehe auch fragliches Update.
Auf den ersten Blick scheint Signal 0 Daten zu sein, Signal 1 die "Uhr", Signal 2 eine Art Frame oder Steuerimpuls und Signal 3 scheint ein Clr / Reset zu sein. Was mich verwirrt, sind manchmal seine 8 oder 16 Bits zwischen 2 Frame-Pulsen, manchmal andere Zahlen wie 5. Werde nach etwas Schlaf noch einmal nachsehen

Antworten (3)

Der Controller in dieser VFD-Röhre ist ein Princeton PT6301. Es verfügt über einen internen Zeichenspeicher (2x20), einen 2x20 Symbolspeicher, einen ASCII-Zeichen-ROM, einen benutzerdefinierten Zeichen-RAM, Treiber und Multiplexer für das VFD. Die Schnittstelle ist Data (LSB zuerst), Clk, /CS und /Reset. Sehen Sie sich das Datenblatt für den Befehlssatz an.

Die Ablaufverfolgung des Logikanalysators stimmt mit dem 12-Zeichen-ASCII-Text überein, der auf dem Display angezeigt wird (z. B. NPO 1 HD). Der Zeichenfolge gehen mehrere Konfigurations-/Initialisierungsbefehle voraus, gefolgt von einem 13. Zeichen, um die Symbole für Dolby, E-Mail usw. anzuzeigen. Das letzte Zeichen ist eines der benutzerdefinierten Zeichen, das als Teil der Konfiguration/Initialisierung definiert wurde, um das richtige zu aktivieren Segment (z. B. HD).

Beachten Sie, dass Ihr Pinbelegungsdiagramm des Steckers und der VFD-Röhre oben einige Fehler enthält! Pins auf dem VFD (beginnend von der rechten Seite Ihres Bildes) sollten sein: GND1, GND2, +35 V DC (geschaltet), 5 V DC-Versorgung, OSC-Pin (RC-Netzwerk zwischen 5 V und GND), /RST, /CS, CLK , DAT, NC, NC

Die 35V DC werden auf der Platine durch einen DC/DC-Wandler erzeugt. Der 35-V-Generator, die 5-V-Versorgung und die Filamentversorgung werden alle über Pin 3 am externen Anschluss aktiviert.


Sie finden eine Bibliothek und einen Beispielcode für diese Anzeige auf mbed: https://os.mbed.com/users/wim/code/PT6301/wiki/Homepage

Beispiel für Text, der mit der printf-Methode angezeigt wird

Hi, danke für die nette Antwort nach all der Zeit! Okay, das scheint plausibel zu sein, aber im Moment habe ich keine Zeit, es zu versuchen. Wird fortgesetzt, danke nochmals!
Bill - Hallo, in Kommentaren zu Ihrer (jetzt gelöschten) anderen Antwort habe ich erklärt, warum Ihre versuchte Bearbeitung von den Prüfern korrekt abgelehnt wurde und was Sie anders machen können, um dieses Problem in Zukunft zu vermeiden. Ich habe diese andere Antwort wieder in diese Antwort verschoben, wie Sie es versucht haben. Wenn Sie diese Kommentare nicht sehen können oder wenn Sie Fragen zu meiner Erklärung dort haben, hinterlassen Sie bitte einen Kommentar unter diesem, beginnend mit, um @SamGibsonmich zu benachrichtigen, und ich werde einen Chatroom für diese Diskussion einrichten. Danke.
Bill - Hallo, nur um das klarzustellen, ist das Ihre Bibliothek und Ihr Code, die Sie in Ihrer Antwort auf mbed verlinkt haben? Danke.
@Bill Hallo Bill (oder Wim?), das ist großartig! Du hast diese Welt zu einem besseren Ort gemacht. Sie haben immer noch nicht die Zeit, es zu versuchen, aber Sie haben bereits bewiesen, dass dies die Lösung ist. Akzeptiere dies als Antwort. Vielen Dank! Der einzige nordische Chipsatz, den ich habe, ist ein BBC Microbit (als Geschenk auf einer Herstellermesse). Vielleicht werde ich es auf eine andere Plattform portieren (den Code bereits heruntergeladen) und die Ergebnisse auf Github posten. Cool, kann es kaum erwarten, es zu versuchen. Ich bin sehr froh, dass es noch eine Verwendung für ein so schönes und nützliches Teil eines aufgegebenen Produkts gibt. Ich werde Updates zu dieser Frage posten, falls vorhanden. Kann dauern oder nicht, kommt drauf an ;-)

Ich habe Anfang der 1990er Jahre ein 1x16-Zeichen-VFD-Display in ein Produkt eingebaut. Wie diese stammt auch sie von Futaba. Dies war ein "nacktes" Display ohne Treiberchip, wie es bei Ihnen der Fall zu sein scheint.

Das Ansteuern des Displays hilft, wenn man bedenkt, dass es einem Thermionikventil mit mehreren Anoden (Vakuumröhre) ähnelt, eigentlich einer Triode mit direkt beheizter Kathode mit mehreren Anoden und mehreren Gittern, bei der der Anodenstrom zur Beleuchtung von 1 Segment mit 1 Zeichen führt. Die Steuerung des angezeigten Segments erfolgt über 16 Gitter.

Es werden 16 Anoden aus der Anzeige herausgebracht, eine für jedes Zeichen und 16 Gitter, eine für jedes Segment. Ein gemeinsames Filament ist die negative Seite der "Röhre". In Ihrem Fall mit 2 Anzeigezeilen wird es eine Methode geben, Zeile 1 oder 2 zu adressieren, nehme ich an.

Die Software, die es antreibt, ist einfach eine typische gemultiplexte Zeichen- und Segmentanordnung.

Da das Display "ungerade" (dh keine 5-V-Logik-) Spannungen verwendet, um es anzusteuern, habe ich 2x8-Bit-Latches zum Ansteuern der Gitter und 2x8-Bit-Latches zum Ansteuern der Anoden verwendet. Die Spannungsübersetzung von Logikpegel zu Anzeigepegel wurde mit 32 'digitalen Transistoren' (integrierter Reihenbasiswiderstand) durchgeführt.

Ich kann Ihnen sagen, dass die Aufgabe „nicht trivial“, aber ziemlich lohnend ist. Mit etwas Glück finde ich sogar den verwendeten Mikrocontroller-Code (geschrieben in PL/M 51 und sehr gut lesbar).

Wenn Sie entschieden haben, dass diese Antwort für die Situation der tatsächlich gestellten Frage nicht mehr richtig ist (wie in Ihrem anderen Beitrag auf dieser Seite angedeutet), sollten Sie sie bearbeiten oder sogar löschen.

Das sieht aus wie eine Art SPI-ähnliches Protokoll, ist aber wahrscheinlich nicht bytebasiert - die Anzahl der Bits ist also kein Vielfaches von 8.

Ihr Kanal 0 ist wahrscheinlich "data", Kanal 1 ist "clock", Kanal 2 ist "latch" und Kanal 3 ist so etwas wie "reset" oder "apply".

die nächsten schritte wären:

  • Zoomen Sie auf die Daten, um die Bitcodierung herauszufinden – werden Daten bei steigendem oder fallendem Takt zwischengespeichert? Was ist der Takt- und Datenstatus, wenn Sie den Befehl "Latch" ausgeben?
  • Decodieren Sie Bits (unter Verwendung einer Tabellenkalkulation oder eines einfachen Skripts), damit Sie Bitmuster erhalten und die Befehlslänge bestimmen können
  • Programmieren Sie Arduino so, dass es dieselben Signale aussendet, und schließen Sie es an das Gerät an
  • Versuchen Sie, verschiedene Bits zu ändern, um zu experimentieren!

Zur Inspiration hier ein ganz einfacher Treiberchip: MAX6921 . Es verwendet das SPI-Protokoll mit 20-Bit-Wörtern. Sie können sehen, wie 3 Zeilen zum Laden und Anwenden der Daten verwendet werden.

Leider könnte Ihr Fall etwas komplexer sein - da Sie anscheinend 5 "Befehle" unterschiedlicher Länge haben. Etwas, das ich zuvor gesehen habe, ist ein "Befehl" + "Daten"-Format - zum Beispiel könnten Sie 3 Bits an Befehl und befehlsabhängiger Datengröße haben. Sie werden mehr herausfinden, sobald Sie Ihre Bits entschlüsseln!