Hallo, ich besitze eine Lüftungsanlage mit einem Segment-LCD Display. Auf dem Display gibt es feste Segmente und vier 7-Segmentanzeigen. Das Display zeigt die aktuelle Lüfterstufe, Filterwechselhinweis, Lüftungsprogrammnummer usw. Da die Lüftungsanlage in einer Zwischendecke hängt bringt mir das Display nichts. Ich möchte einige der Segmente auslesen, um diese auf meiner Hausautomatisierung anzuzeigen. Das Display selbst besitzt 48 Pins und wird von folgendem Controller angesteuert: NXP PCF8576CT. Ich konnte bereits dekodieren, welcher Pin am Display welches der für mich relevanten Segmente ansteuert. Wenn zwischen Pin und Ground 5V Wechselspannung anliegen leuchtet entsprechend das Segment. Um die Signale vom Display zum Raspberry Pi zu bekommen, auf welchem meine Hausautomation läuft habe ich folgende Idee. - an Signalpin und Ground einen Gleichrichter und Spannungsteiler um aus den 5V AC ca. 3,3 V DC zu machen --> mit dem Signal dann auf einen GPIO eines Raspberry Pis --> wenn das Segment angesteuert wird, dann geht entsprechend der Eingang am Pi auf High --> das Signal lässt sich dann wiederum per SSH über WLAN an den Pi mit der Hausautomatisierung übertragen Sobald das Signal am Pi detektiert wird funktioniert die Übertragung. Bis dahin fehlt mir leider das Fachwissen und das Geld zum probieren, denn die Platine mit Display und Controller habe ich nur einmal. Ist meine Idee so umsetzbar oder habe ich einen Denkfehler? "Verkraftet" der Controller die zusätzliche Last der Gleichrichter, Spannungsteiler, Pi, usw. Gibt es vielleicht einen einfacheren Weg? Danke für eure Hilfe, Kevin
Die 7 Segment-Anzeige wird mir sicherheit mit Gleichstrom funktionieren und nicht Wechselstrom... Wenn das Modul nicht mit einer potentialfteien Spannungsversorgung ausgestattet ist bekommst du ggf Probleme. Bei den vielen IOs benötigst du auf jedenfall Multiplexer in Form von Schieberegistern o.ä.
Anstatt die Backplane- und Segmentausgänge des PCF8576 auszuwerten, sollte es deutlich einfacher sein, wenn du die per I²C in den PCF8576 geschriebenen Werte mitliest und entsprechend auswertest. Der PCF besitzt intern nur 40x4 Bit RAM, die irgendwie den Displayelementen zugeordnet sind. Wenn du die Schreibzugriffe auf diesen RAM auswertest, dann kannst du die Darstellung rekonstruieren.
Kevin schrieb: > Wenn > zwischen Pin und Ground 5V Wechselspannung anliegen leuchtet > entsprechend das Segment. Nö. Das Segment kriegt immer AC. Es leuchtet, wenn sie zur Backplane gegenphasig ist. Bei mehreren Backplanes wird es noch komplexer. Der Chip ist doch I2C, da kann man doch leicht mitlauschen. Könnte allerdings nen RasPi überfordern. Dann könnte man z.B. nen ATtiny2313 als I2C zu RS-232 Umsetzer programmieren.
TestX schrieb: > Die 7 Segment-Anzeige wird mir sicherheit mit Gleichstrom funktionieren > und nicht Wechselstrom... Dein Text enthält jedes Menge Verbesserungspotential! LC-Displays dürfen keine Gleichspannung bekommen, weil sie sich sonst zerlegen, Elektrolyse. Das bekommt man hin, in dem man Segmente und Backplane umpolt.
Hi Finde den I²C-Ansatz interessant. Wenn die WebCam eine IP-Cam wird, brauchst Du nur noch einen Browser, um auf das Display zu schauen - was allerdings Deiner Hausautomatisierung nicht zuträglich ist. Zum Mitschneiden des I²C-Bus wäre ein LogicAnalyser keine schlechte Investition - habe selber einen Billigen aus chinesischer Herkunft, echt nett, das Teil. z.B.: eBay:200983620192 Kommt bei mir aber nur auf 8MHz, für I²C reicht Das aber trotzdem :) Damit kannst Du 'mitschreiben', was dem Display geschickt wurde - unter Anderem z.B. die Display-Adresse - man muß ja wissen, welche Daten man vor sich hat. MfG
:
Bearbeitet durch User
OK, gesetzt dem Fall ich bekomme es hin den I2C Bus mitzuloggen, was mache ich mit den Daten? Habe ich es soweit richtig verstanden, dass ich dann den Bus loggen muss, wenn die von mir benötigten Segmente angesteuert werden. Wenn ich das dann entsprechend dekodiert habe, kann ich bei wiederkehrender "Zeichenkette" eine Aktion auslösen?! Kann ein Sniffer bzw. Logic Analyzer eine Aktion auslösen? MfG
Hi Nein Der LA schneidet 'nur' den Bus mit. Als Schmankerl kann ein Protokoll aufgeschlüsselt werden. Dort kannst Du dann z.B. die ID des I²C-Baustein sehen und, was zu Diesem geschickt wird. Dabei kommen aber sehr viele Daten zusammen! Nur um ein einzelnes 'A' an ein LCD-Display über einen I²C-Adapter zu übertragen, sind -Start - ID - vorderes Nibble + Steuerbits -Stop -Start - ID - hinteres Nibble + Steuerbits -Stop nötig (zumindest steuert so auch ein Arduino ein I²C-Display an). Davor wird das Display noch initialisiert, was ebenfalls 'einen Haufen' Befehle entspricht. Aber: Man kann so an die erforderlichen Informationen kommen, Die man braucht. So musst Du z.B. nur auf Pakete mit der ID des Display achten. Klar, wenn das Display der einzige I²C-Teilnehmer ist, hast Du Nichts gewonnen dadurch. Dann brauchst Du die Steuerbits nicht (damit werden E, RS, RW sowie die Hintergrundbeleuchtung erschlagen). Du kannst bei Deinem Sniffer also schon die beiden Nibble wieder 'zusammenkleben', wodurch die Datenflut schon auf ein Viertel sinkt. MfG
Patrick J. schrieb: > Nur um ein einzelnes 'A' an ein LCD-Display über einen I²C-Adapter zu > übertragen Der PCF8576 ist ein Segment-Controller, der bis zu 160 Segmente eines Displays ansteuern kann. Was Du beschreibst, ist das Ansteuern eines HD44780-Displays im 4-Bit-Mode, das hat mit diesem Controller hier rein gar nichts zu tun. Wenn man herausfinden will, was auf dem Display der Lüftungsanlage angezeigt wird, muss man herausfinden, welche Segmente des Displays angesteuert werden. Das geht am einfachsten durch Mithören der Aktivitäten auf dem I2C-Bus, denn da wird dem PCF8576 mitgeteilt, welche Segmente er ein- und welcher er ausschalten soll. Das Protokoll ist im Datenblatt beschrieben: http://www.nxp.com/documents/data_sheet/PCF8576C.pdf Welche Bedeutung diese Segmente haben muss man durch Analyse der Schaltung herausfinden (Displayglas sehr genau ansehen, Anschlussbelegung 'rausklingeln). Daß sich eine "7" ergibt, wenn die Segmente A, B und C angesteuert werden, das ergibt sich dann.
Kevin schrieb: > Ich konnte bereits dekodieren, welcher Pin > am Display welches der für mich relevanten Segmente ansteuert. Wenn > zwischen Pin und Ground 5V Wechselspannung anliegen leuchtet > entsprechend das Segment. Der PCF8576CT ist ein Multiplexcontroller mit 4 Backplanes. Der steuert die Segmente nicht mit LO/HI an, sondern mit 3 oder 4 Spannungen die nur analog erfasst werden können. Vergiss deinen Ansatz mit dem rPi. Versuche, die Eingangsleitungen des PCF8576CT zu erfassen. SDA und SCL sind einfacher als 40 Segmente und 4 Backplanes.
Kevin schrieb: > Habe ich es soweit richtig verstanden, dass ich dann den Bus loggen > muss, wenn die von mir benötigten Segmente angesteuert werden. Wenn ich > das dann entsprechend dekodiert habe, kann ich bei wiederkehrender > "Zeichenkette" eine Aktion auslösen?! Besser wäre das Protokoll dann auch komplett zu decodieren, so dass man direkt die angezeigten Ziffern rekonstruieren kann. > Kann ein Sniffer bzw. Logic Analyzer eine Aktion auslösen? Die sehr teuren Modelle: ja. Meistens funktionieren die Logicanalyzer aber nur mit angeschlossenem Rechner etc. In erster Linie dient dir (auch ein einfacher Logicanalyzer) dazu die Daten mal aufzuzeichnen, um sie dann in Ruhe analysieren zu können. Sehr vorteilhaft ist es, sich zu den mitgeschnittenen Daten den angezeigten Display-Wert zu notieren... ;-) Für deine geplante Anwendung würdest du dann im 2. Schritt einen Mikrokontroller so programmieren, dass er die I2C Daten "mitschneidet", und mit der gewonnenen Erkenntnis über das Protokoll die Anzeigedaten rekonstruiert. Ab da hast du einfach eine Zahl von 0...9999 Als 3. Schritt wird dieser Controller dann mit der Hausautomation verbunden um den Anzeigewert weiterzugeben.
:
Bearbeitet durch User
[OT] Peter D. schrieb: > Beitrag "I2C (TWI) Sniffer mit AVR" Das Ding war goldwert beim Recyceln von LCDs aus Fujitsu Computern, auf diesem Weg mal Danke für die Arbeit [/OT]
Ich bin nach langer Zeit endlich einmal dazu gekommen, die Lüftungsanlage so zu erweitern, dass ich den I2C Bus über einen Logicanalyzer aufnehmen kann. Eine Abfolge habe ich euch angehängt. Kann mir bitte einer von euch erklären, was diese Abfolge bedeutet? Welcher Teil der Adresse entspricht, für welche die nachfolgenden Informationen gedacht sind und welche "Werte" an diese Adresse übergeben werden? Danke!
> Kann mir bitte einer von euch erklären, was diese Abfolge bedeutet? Das hat NXP schon gemacht. Sie nennen es Datenblatt zum PCF8576. Es ist an dir das zu lesen. Olaf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.