Hat jemand gerade die Ausgabe der 01/2009 der Zeitschrift ELV da? Dort gibt es einen Artikel "LCD-Colour-Panel LCP 100", siehe hier: http://www.elv.de/Aktuelle-Ausgabe/x.aspx/cid_142 Mich würde interessieren, um was für ein LCD es sich da handelt, Auflösung, technische Daten, Ansteuerung usw... Danke.
Hi, also das Display hat folgende Bezeichnung: KWH0151DN01-061A Ein paar Daten: 1.5 Zoll 128x128 65k Farben Ansteuerungs-IC ST7637 Bei ELV wird es von einem ATMega 32 im 8 Bit Modus angesteuert. Wer dieses jedoch liefern kann, konnte ich nicht herausfinden. Wahrscheinlich bei ELV als Ersatzteil zu ELV üblichen Preisen. Gruß
Hallo, ich habe dieses Display gerade am Tisch liegen. Anbindung am PC über USB, wobei eine virtuelle COM-Schnittstelle durch Treiber SiLabs CP210x aufgebaut wird. Konstenpunkt: 28€ als Bausatz, wobei nur sehr geringe Lötarbeiten notwendig sind, das Modul ist größtenteils vorbestückt. Mit dem Beispielprogramm (Download bei ELV) kann man 64 Bilder a 128x128 Pixel auf dem Display ablegen und einfach umschalten. Leider ist das Programm in C# geschrieben (noch kein Problem), benützt aber 2 undokumentierte DLLs für die Kommunikation/Datenaufbereitung. Da ich lieber in Delphi programmieren würde, benötige ich die Interface-Doku für die DLLs. Kann mir da jemand aushelfen ? Axel
Ich habe genau das gleiche Problem. Allerdings will ich das Ding unter Linux verwenden. Das Protokoll kann man sich weitestgehend aus der Bedienungsanleitung rausfrickeln. Allerdings habe ich Probleme mit CRC-Prüfsumme. Das ist nämlich mehr als dürftig dokumentiert. Ich habe gerade eine Mail an ELV geschickt. Mal schauen, wie die so drauf sind. Wenn jemand noch ein wenig Knobeln will: Für die Daten "0x00, 0x01, 0x74" sollte die Prüfsumme 0xa33b rauskommen. Das Generator-Polynom ist angeblich "0x8005" und die Prüfsumme wird mit "0xffff" initialisiert. Sobald ich das CRC-Problem gelöst habe und ein Test-Programm geschrieben habe, dokumentiere ich gerne das ganze Protokoll...
Kleiner Nachtrag: Habe das CRC-Problem gerade gelöst. Vielleicht komme ich das Wochenende noch dran, das Protokoll komplett zu überprüfen...
Hi... Ich bin auch grad dabei die Kommunikation nach Delphi zu portieren. Bin nur mittelprächtig Erfolgreich bislang. Bin darum natürlich für jeden Rat dankbar. Wäre auch gern bereit Zeit und Wissen in dies Projekt zu investieren wenn ich jemandem damit weiter helfen kann. Gruß, Toni
Portieren ? - sind die mitgelieferten dll's nicht gut genug ?
Nein, sind sie nicht. Dot.Net ist ne andere Technologie, und hier gehts um Delphi. Da word man wohl was übersetzen (portieren) müssen.
Hallo, sorry, daß das jetzt so lange gedauert hat. Ich wollte alles nur genau prüfen, bevor ich es hier raushaue. Und das war auch nicht so schlecht, da die Firmware einen Bug in der Funktion zum Löschen des Displays hat (clear). Unter der URL http://www.tapage.de/projects/lcp100/lcp100-0.0.tar.bz2 findet ihr einen TAR-ball der eine Protokoll-Beschreibung (doc/protocol.txt, Englisch) und eine Implementierung des Protokolls in C enthält. Die Software kann unter Linux direkt verwendet werden. Unter anderen Systemen muß (wahrscheinlich) nur etwas an den Routinen zum Öffnen der seriellen Schnittstelle (lcp100_open() in lcp100.c) und zum Senden bzw. Empfangen geändert werden (_receive_byte(), _send_byte() in frame.c). Der Code ist mit heißer Nadel gestrickt. ELV hat sich übrigens bis dato noch nicht gemeldet. ciao und viel Spaß Chris
Hallo miteinander! Kann mir vielleicht noch jemand sagen, wie schnell der Bildaufbau in Verbindung mit dem ATMEGA32 ist? Danke!
Hallo, dank der C++ Quellen von Chris ist mir die Portierung nach Delphi gelungen. Die Delphi Komponente kommuniziert bereits im Designer. Nur die CRC-Routine hat nicht so geklappt, deshalb bin ich von der schnellen Tabellen-Methode wieder zur langsamen Direktverarbeitung zurück. Vielleicht findet jemand den Fehler bei der Umsetzung. Axel
Hallo Axel, in deinem Code ist nicht die Routine zum Initialisieren der Tabelle. Ich vermute, daß dort das Problem liegen könnte. Vom Überfliegen würde ich sagen, daß dein Code soweit in Ordnung ist... Hast du die Initialisierungsroutine noch irgendwo? ciao Chris PS: ist C - nicht C++ :-)
Hallo, danke für deine Antwort. Ich habe den Code für die Tabelle noch, aber damit geht es leider nicht und ich weiß einfach nicht warum (ich verstehe den CRC-Algorythmus nicht). Meine Procedure um die Tabelle zu initialisieren sieht so aus und rufe ich im Initialization-Bereich mit Polynon $8005 einmalig auf. procedure crc16_init_table(polynom:word); var r:word; i,j:word; begin for i := 0 to 255 do begin r := i shl 8; for j := 0 to 7 do begin if (r and $8000) <> 0 then begin r := (r shl 1) xor polynom; end else begin r:= r shl 1; end; end; crc16_table[i] := r; end; end; die CRC-Routine sieht dann so aus (Code für Tabelle und direkt enthalten, direkt geht, Tabelle nicht): function crc16_byte(crc:word; data:byte):word; var r:dword; b:byte; i:integer; begin //CRC mit Tabelle result:= (crc shl 8) xor crc16_table[ ((crc shr 8) xor data) and $ff ]; { //CRC ohne Tabelle r := crc; for i := 0 to 7 do begin r := r shl 1; b := (data and $80) shr 7; r := r or b; data := data shl 1; if (r and $010000) =$010000 then r := r xor $8005; end; result := r and $FFFF; } end; Eigentlich geht's mir nicht um die Rechengeschwindigkeit, das Nadelör ist die serielle Übertragung, aber es wäre halt mit Tabelle schöner. Axel
Hallo Axel, das sieht eigentlich alles ganz gut aus. Einen Fehler konnte ich nicht finden. Wenn du hinter den Algorithmus für die CRC-Berechnung steigen willst, empfehle ich dir "A painless guide to crc error detection algorithms" von Ross Williams (http://www.ross.net/crc/download/crc_v3.txt). Nach diesem Guide habe ich die ganzen CRC-Routinen programmiert. Zu der Zeit hatte ich das auch verstanden. Nur ist das auch schon wieder ein Weilchen her... Im Anhang findest du eine Text-Datei, die die CRC16-Tabelle für das Polynom 0x8005 enthält. Vielleicht kannst du die Tabelle mit der von dir generierten Tabelle vergleichen. Ich werde das auch in der nächsten Zeit in meinen Code einbauen, so daß die crc16_init_table()-Routine entfallen kann (ist z.Zt. zugegebenermaßen etwas unhandlich; ich wollte die Routine aber zu Dokumentationszwecken im Code haben). ciao Chris
Hallo, ich hab mir dieses Modul auch zugelegt. Kennt jemand ein GEhäuse für dieses Modul? mfg Helmi
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.