So lesen Sie SAA1064 7-Segment-Werte

Ich habe eine Zentralheizung, die ihre Info- und Fehlercodes auf 4 7-Segment-Displays anzeigt. Diese Displays werden wie folgt von einem SAA1064 angesteuert:SAA1064-Anwendung

Dieser SAA1064 ( Datenblatt hier ) erhält seine Informationen über I2C vom Hauptcomputer, und die Anzeigen werden gemultiplext.

Hier ist mein Problem: Ich habe einen Himbeer-Pi (dessen I2C-Bus bereits mit 100 kHz verwendet wird) und ich möchte damit die angezeigten Werte lesen. Ich würde es vorziehen, keinen zusätzlichen Mikrocontroller zu verwenden, nur um zu analysieren, was angezeigt wird, oder um den I2C-Bus in der Zentralheizung zu schnüffeln (da ich wenig bis gar keine Erfahrung mit der Programmierung dieser habe). Wäre die Verwendung von I2C IO-Expandern eine Idee? Wenn ja, wie würde diese verkabelt werden?

Schneller Hack: Verwenden Sie eines dieser billigen CCD-Module für "Überwachungskameras", einen Videoeingang zum Pi und ein Python-Skript, um von Zeit zu Zeit ein Bild des Displays zu machen, ein wenig zu verarbeiten und schließlich das Bild per OCR auszuspucken eine Zahl.
Wenn das Hinzufügen von Elektronik zur Schaltung nicht funktioniert, werde ich mir das auf jeden Fall ansehen. Ich dachte schon daran, eine Kamera zu verwenden, aber eher als Scherz, weil ich OCR nicht in Betracht gezogen hatte, also danke!

Antworten (1)

SAA1064 bietet Befehle zum Schreiben von Anzeigewerten, aber sie sind nur schreibbar und können nicht über I 2 C ** zurückgelesen werden . Selbst wenn das Zurücklesen durch I 2 C möglich wäre, müssten Sie einen Milti-Master so implementieren, dass er die ursprüngliche I 2 C-Aktivität im Heizsystem nicht stört. Das kann einfach sein oder auch nicht.

Also, was kann möglicherweise getan werden?

Das OP erwähnt das Hinzufügen eines Mikrocontrollers (μC), der auf dem I 2 C-Bus lauschen würde . Dafür gibt es bereits Produkte; Sie sind bereits zum Schnüffeln programmiert und sollten keine Programmierung des μC erfordern.

  • Bus Pirate ist ein kostengünstiges Open-Source-Tool
  • Total Phase Beagle ist ein kommerzielles Tool. Es gibt viele weitere kommerzielle Tools wie dieses.

Ich weiß jedoch nicht, wie einfach oder schwierig es wäre, sie an einen Raspberry Pi anzuschließen.

Ein anderer Ansatz wäre, am Ausgang des SAA1064 die Zahl zu sammeln, die an die LED-Zeichen geht. SAA1064 multiplext zwischen Zeichen und das stellt eine gewisse Herausforderung dar, weil Sie wissen müssen, welches Zeichen Sie lesen. Idealerweise würden Sie MX1 und MX2 als Trigger verwenden und die Werte auf dem digitalen Bus speichern. Dann könnten Sie sie über einen I/O-Expander auslesen.

** Details auf S. 5-6 im Datenblatt . Neben dem Datenblatt habe ich erste Erfahrungen mit SAA1064 gemacht. Ich habe es in 2 kommerzielle Instrumente entworfen. Für mich ist dieser Mangel an Rücklesefähigkeit ein Mangel an Funktion. Aber SAA1064 war ein altes (1991) Teil.
Übrigens wurde SAA1064 eingestellt.

Der letzte Teil war auch meine Idee, aber wie würde ich die Werte speichern? Gibt es so etwas wie einen Puffer-IC? Oder müsste ich auf ein uC zurückgreifen? (Letzteres würde ich wirklich gerne vermeiden) Ich werde wahrscheinlich MCP23017 verwenden, diese haben einen Interrupt für jeden 8-Bit-Port, den sie haben. Kann dies in Verbindung mit einem Register- oder Puffer-IC verwendet werden?