Holgi's LCD-Display für Winamp

Winamp LCD-Display







Beim Versuch ein Display mit T6963 Controller mit einem PIC16F873 anzusteuern kam diese nette Schaltung heraus: Ein seriell ansprechbares Monster-Display für das LCD-Plugin von Winamp. Das Display oben ist ein 240x64 Pixel Display (WG24064A) von Winstar. Wenn man es im Textmodus anspricht und den 6x8 Font einstellt bekommt man ein Display mit 8 Zeilen x 40 Zeichen ! Das reicht um jede Menge Text und den SpektrumAnalyzer des Plugins gemeinsam auf das Display zu bekommen. Bei einem 2x40 Zeichen Textdisplay mußte man immer umschalten. Und 4x40 Zeichen Displays sind fast so teuer wie ein Grafikdisplay mit T6963 Controller.

Wie funktioniert das ganze ? Im LCD-Plugin muß man ein MatrixOrbital-Display einstellen. 19200 Baud sind im PIC fest einprogrammiert. Der PIC emuliert alle Befehle dieses Display-Typs die für Winamp erforderlich sind. Alle anderen werden abgefangen und nicht verarbeitet.  Im Plugin werden nur Displays bis 4 Zeilen angeboten. Einfach eines mit 4 Zeilen auswählen, auf die 4 klicken und 8 eingeben ;)

Man kann selbst Zeichen im LCD-Plugin definieren und zum Display schicken. Leider benutzt der SpektrumAnalyzer die 8 einzigen frei definierbaren Zeichen. Wenn man ihn anzeigen will muß man auf selbstdefinierte Zeichen im Textbereich verzichten. Und das obwohl im T6963 die Zeichencodes von 0x89-0xFF bei mir noch frei verfügbar sind :-(

Quellcode (CC5x) und Brenndatei für den PIC, Schaltplan und Board Eagle3.5 für PRE5_4 vom Plugin.
Quellcode (CC5x) und Brenndatei für den PIC für das neueste PRE5_L
Quellcode (Microchip C18) und Brenndatei für PIC18F252

Im neuesten Plugin können auf dem COM-Port des Displays auch Steuerbefehle zurückgesendet werden ! Das zweite PIC Programm kann dies ! Für die sechs Taster in der Schaltung werden die ASCII Codes '0'--'5' gesendet. Siehe aber leider auch unten.

Erweiterungen für die Zukunft bzw. was ist problematisch:
Ein Infrarotempfänger mit eigenem PIC12C508 für RC5 Codes ist bei mir (immer noch nicht :( in Arbeit. Er schickt seine Codes per I2C-Bus an den PIC der das Display steuert, und dieser sendet sie auf RS232 weiter.

Wenn man bei laufendem SpecAnalyser in ein Untermenü geht sieht das nicht gut aus ! Laut meinen Nachforschungen kommen dann Reste der Ausgaben des SpecAnalyzers und des Untermenüs durcheinander. Drei Lösungsmöglichkeiten: Auf Pause/Stop drücken oder den SpecAnalyser ausschalten bevor man in ein Untermenü geht.

Der SpektrumAnalyzer startet bei mir nicht automatisch ! Ich muß ihn immer per Hand starten.

Man kann das Menü per RS232-Befehl aufrufen und beliebiges auswählen. Verläßt man dann das Menü erscheint leider keine Anzeige mehr. Alles leer :( Witzigerweise läuft der SpecAnalyser aber noch. Bug im Plugin ? Wenn man das Menü wieder aufruft erscheint es auch. Beim verlassen alles wieder leer bis auf den SpecAnalyzer. Alle anderen Befehle per RS232 machen bei mir keine Probleme.

Wenn man den Displaytyp von MatrixOrbital auf z.B. Simulation ändert und dann wieder auf MatrixOrbital geht funktionieren die Steuerfunktionen über RS232 nicht mehr. Erst nach Neustart von Winamp geht alles wieder.

Mein Display hat keine Hintergrundbeleuchtung. Die Befehle zum ein/ausschalten (aus automatisch mit Timer) funktionieren nicht. Ein Pin am PIC ist aber noch frei und könnte dafür genutzt werden. Ein Timerinterrupt zur Abfrage der Taster läuft sowieso schon.

Das I2C EEprom in der Schaltung ist für spätere Zwecke vorgesehen. Es wird nicht benutzt und kann weggelassen werden.

Meine Wünsche zum Winamp LCD-Plugin:
Mehr frei definierbare Zeichen beim Einsatz von Grafikdisplays. Nicht nur 5x8 Pixel frei definierbare Zeichen, sondern auch 6x8 und 8x8 Zeichen für Grafikdisplays.

Einen änderbaren Offset für die Zeichencodes des SpektrumAnalyzers. In Zusammenarbeit mit der Übersetzungstabelle kann man damit den Engpass bei den frei definierbaren Zeichen umgehen. Ist nur bei Grafikdisplays sinnvoll.


Ich entwerfe keine Schaltungen oder Programme für andere. Dazu fehlt mir einfach die Zeit. Bei mir sind keine Bausätze, Platinen oder programmierte Chips zu den Schaltungen erhältlich. 

E-Mail

Zur Startseite