DCG Kommuniktion mit Panel?

Hier könnt ihr Diskussionen über die Software des Labornetzteiles des c't-Lab führen.
Antworten
Benutzeravatar
hans23
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 101
Registriert: 29.11.2007, 18:43
Wohnort: bei Berlin

DCG Kommuniktion mit Panel?

Beitrag von hans23 » 03.10.2008, 12:07

Ich hab vor ein Panel zu bauen mit LED-Anzeigen.
Allerdings weiß ich nicht genau wie das DCG mit dem PCA9555 Kommuniziert.
Soweit ich es herausgefundne habe, müsste der I2C Bus auf 400kHz laufen und im 7-Bit Adress-Modus.
Zuerst sendet das DCG bestimmt die config für den Portbaustein.
Und dann fragt er ja irgendwie ab, ob PORT0,7 auf Low ist, ob überhaupt ein Panel angeschlossen ist.
Dazu schaltet er den Pin kurz auf Eingang um?
Und das Abfragen von diesem Bit macht er ja periodisch - in welchen Abständen?

Wär schön, wenn ihr mir dazu genaueres sagen könnt...
Linux is like a wigwam: no windows, no gates and an apache inside

Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 259
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: DCG Kommuniktion mit Panel?

Beitrag von thoralt » 03.10.2008, 21:00

hans23 hat geschrieben:Wär schön, wenn ihr mir dazu genaueres sagen könnt...
Wäre es nicht besser, für diesen Fall die C-Firmware des DCG so zu modifizieren, dass Du Dein eigenes Panel (egal über welche Art der Kommunikation) direkt ansteuerst? Dann brauchst Du nicht die Kommunikation des Portbausteins zu emulieren und könntest direkt mit Deiner Hardware kommunizieren. Hier bieten sich z. B. Schieberegister + Treiber an. Oder Du baust einen AVR auf Dein Panel, welcher über I2C mit dem DCG kommuniziert. Dann hast Du wieder alle Möglichkeiten offen.

Viele Grüße
Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.

Benutzeravatar
hans23
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 101
Registriert: 29.11.2007, 18:43
Wohnort: bei Berlin

Beitrag von hans23 » 03.10.2008, 23:52

thoralt hat geschrieben: Wäre es nicht besser, für diesen Fall die C-Firmware des DCG so zu modifizieren, dass Du Dein eigenes Panel (egal über welche Art der Kommunikation) direkt ansteuerst? Dann brauchst Du nicht die Kommunikation des Portbausteins zu emulieren und könntest direkt mit Deiner Hardware kommunizieren.
Naja - dachte es ist einfacher wenn man das Panel an das DCG anpasst als andersrum. Zumal man es dann auch (bedingt) für andere Module verwenden kann.
Ausserdem liegt das in C Programmieren von AVR's nich so in meiner Macht ;-)
thoralt hat geschrieben: Oder Du baust einen AVR auf Dein Panel, welcher über I2C mit dem DCG kommuniziert. Dann hast Du wieder alle Möglichkeiten offen.
genau so wollte ich es ja machen (halt nur mitm PIC)
Linux is like a wigwam: no windows, no gates and an apache inside

Benutzeravatar
ompf
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 168
Registriert: 19.01.2008, 13:03
Wohnort: Dortmund

Beitrag von ompf » 04.10.2008, 11:41

hans23 hat geschrieben:genau so wollte ich es ja machen (halt nur mitm PIC)
Da Du ja nicht wissen kannst, was den Firmwareprogrammierern so als nächstes einfällt, musst Du mehr oder weniger den kompletten PCA9555 emulieren. Aus dieser state machine kommen dann 16 bit heraus (bzw hinein): Acht bidirektional (die Datenleitungen zum Display), drei Eingänge (Taster), drei Ausgänge (die Steuerleitungen zum Display), zwei unbenutzt.

Im Display steckt ein Controller vom Typ HD44780, der über die 8+3 Leitungen vom PCA9555 angesprochen wird. Das wäre die zweite state machine. Den Befehlssatz dieses Controllers müßtest Du ebenfalls nachbilden.

Diese beiden Funktionen kann man sicherlich zusammenfassen. Einfacher (und einfacher zu testen) dürfte jedoch sein, mit dem hinteren Teil (Displaycontroller) anzufangen, und wenn der richtig spielt, die I2C-Schnittstelle dranzuprogrammieren.


Gruß
Patrick

Antworten