Picctl
Inhaltsverzeichnis |
Allgemeines
Picctl ist eine Hardware, die entworfen wurde, um eine hübsche Frontplatte für den VDR mit Display, Tastern und IR-Empfang zu ermöglichen. Zusätzlich ist auch das Aufwecken des PCs über IR und eine Echtzeituhr möglich.
Features
Features picctl_v2
- (quasi) beliebiges Display anschliessbar
- Anschluss via USB
- Programmierung(Firmware) über USB einspielbar
- IR-Empfänger (auch zum Aufwecken des PCs)
- RealTimeClock zum Aufwecken des PCs über Timer (falls nvram oder acpi nicht klappt)
- Einlagige Platine (mit wenigen Brücken)
- zwei 10Bit PWM Ausgänge (z.B. einer für die Display Hintergrundbeleuchtung)
- 6 freie General-Purpose Ein/Ausgänge (können auch als analoge Eingänge genutzt werden)
- I²C-Bus auf Pinheader
zusätzlich Features originales Picctl
- Taster für Rot, Grün, Gelb, Blau passend unter dem Display
- Taster und Drehimpulsencoder für Rechts, Links, Up, Down, Menu, Back, Ok
- 240x64er T6963c Huckepack Display
Software
Die Software besteht aus mehreren Teilen, die alle im Mercurial-Repository zu finden sind.
Firmware
Die Firmware ist die Steuerungssoftware auf dem Microcontroller. Sie ist in C geschrieben und wird mit dem MCC18 Compiler von Microchip compiliert. Wesentliche Bestandteile sind die USB Routinen von Microchip und die jeweiligen Funktionen, um die angeschlossene Hardware zu steuern (I²C, IR, Display).
Momentan werden nur Displays vom Typ T6963c untertützt, dies kann aber erweitert werden.
Die USB-Firmware von Microchip erzeugt ein Gerät mit CDC-ACM-Profil. Dies ist eine einfache serielle-emulation; das passende Modul für Linux heisst 'cdc-acm' und wird schon seit einiger Zeit mit dem original Kernel ausgeliefert.
graphlcd-base
Dieser Part der Software ist quasi fertig. Aubauend auf 'avrctl' wurde ein neuer Treiber für picctl implementiert. Dieser ist bisher noch auf 240x64er Displays beschränkt, kann aber leicht erweitert werden.
vdr-graphlcd-plugin
Hier ist bisher leider noch nichts implementiert worden. Es fehlen noch Funktionen, um die Tastencodes, die von graphlcd-base empfangen werden an den VDR weiterzureichen. Auch das setzen der Uhrzeit und der Aufweckzeit (nächster Timer) fehlen noch vollständig. Letztere Funktionen können aber auch über ein eigenständiges Programm realisiert werden, welches dann per Shutdown-Hook vom VDR aufgerufen wird.
picctldisplaytest
Dies ist eine kleine Applikation, welche hervorragend zum Debuggen der Soft- und Hardware geeignet ist. Die ist zumdem das einzige stück Software, welches (momentan) alle Features der Firmware nutzen kann.
Trotzdem ist der aktuelle Stand benutzbar, d.h. es erscheint ein ordentliches Bild auf dem Display.
Hardware
Das Board-Layout befindet sich auch im HG-Repository. Bis auf dem PIC sind alle Bauteile bei Reichelt zu bekommen. Der PIC kann z.B. bei RS-Components bestellt oder bei Microchip direkt gesampelt werden.
Die Kosten für ein Board (ohne Display) belaufen sich auf ca. 25-30Euro.
Das ganze Projekt basiert auf dem PIC18F4550 Controller von Microchip. Dieser implementiert eine USB-Schnittstelle in Hardware. Über I²C ist eine Echtzeituhr PCF8593 von Phillips angeschlossen. Auf dem originalen Picctl sind zusätzlich noch Taster und eine Drehimpulsencoder über PCF8574 Portexpander angeschlossen.
Ansonsten befindet sich noch ein IR-Empfänger vom Typ TSOP1738, auf dem Board.
Die beiden PWM-Ausgänge des Controllers sind über FETs nach aussen geführt. Hier lässt sich z.B. die Hintergrundbeleuchtung des Displays anschliessen. Auch ein Lüfter (Drehzahlregelung) wäre denkbar.
Die sechs analog/digitalen Ein/Ausgänge sind komplett frei. Hier können nach belieben Erweiterungen (LDR zur Helligkeitsmessung, Temperatursensoren, ...) angeschlossen werden.
Da der I²C-Bus auch über einen Pinheader verfügbar ist, können hier auch noch Erweiterungen angeschlossen werden.