Datum:
Angehängte Dateien:Da ich immer wieder auf einen grafikfähigen LCD Controller für controllerlose 320x240 Displays angesprochen werde, habe ich meinen alten auf der 640x480 Version (Beitrag "LCD Controller für 640x480 LCD mit mega8515") basierten Controller etwas aufgepeppt und mit neuen Features versehen: - Einfache Schaltung aus nur wenigen Standardbauteilen - Grafikmodus mit 4 Graustufen - Textmodus mit 8x12 Zeichensatz, der Text in Grafik umwandelt - Funktionen für Pixel, Linien, Rechtecke, Bilder usw - Ansteuerung über UART (Standard: 19200 Baud), daher ideal als Display in einer µC Schaltung verwendbar. Die Grafikfunktionen entlasten dabei den anderen µC. - Die LCD Routinen sind in Assembler geschrieben (für beste Ausnutzung der Rechenleistung), Ansteuerung und Kommunikation dagegen in C, daher leicht ist das ganze leicht erweiterbar.
Datum:
Angehängte Dateien:So könnte das ganze aussehen, wenn es aufgebaut ist und läuft.
Datum:
Sehr beeindruckend. Danke fürs posten. Gruß
Datum:
Ich hatte schon die ganze zeit vor deinen großen Controller auf die displays umzumünzen, bin aber noch nicht dazu gekommen, naja jetzt hast du das ja gemacht, prima :D
Datum:
@Benedikt, ich konnte in deiner Schnittstellenbeschreibung die Schnittstelle zum Kreise zeichnen nicht finden. Eine Frage dabei zur Umsetzung, bietet sie nur gefüllte Kreise, wie im Bild, oder ist es möglich die Randdicke zu Variieren? Gruß, Dennis
Datum:
Wirklich beeindruckend Benedikt, toll das Farbenspiel mit dem "schwarzen" (ist es doch wohl) Display. Wigbert
Datum:
Dennis S. wrote: > ich konnte in deiner Schnittstellenbeschreibung die Schnittstelle zum > Kreise zeichnen nicht finden. Gibt es auch nicht. Ich hatte zwar erst dran gedacht, aber dann doch sein lassen, da Kreis im Vergleich zu Rechtecken doch eher selten vorkommen. Bei der nächsten Version ist das aber drin. Wo wir schon dabei sind: Kennt jemand eine Füllfunktion die auch auf dem AVR einigermaßen schnell läuft ? Floodfill scheitert schon alleine am Stack.
Datum:
in inrgend einer lib wurde das so gelöst: man errechnet zwei auf gleicher höhe liegende Kreiskoordinaten und zeichnet von der einen koordinate zur anderen eine linie, das macht man für alle punkte, fertig ist der gefüllte kreis.
Datum:
Oder du machst es so: vom mittelpunkt ausgehen gehst du in y richtung nach oben bis du auf ein gleichfarbiges Pixel (rand) triffst, das gleich einmal nach unten. Dann erhöhsat du x um eine und wiederholst das solange bis du in x richtung auf ein gleichfarbiges pixel triffst. dann nochmal vom mittelpunkt aus nach links und fertig Problem ist nru wenn andere objekte "im Weg" sind wird nicht der ganze kreis gefüllt. Man könnte natürlich auch einfach die koordinaten des Kreisrandes speichern oder das beim zeichnen miterledigen volgendermaßen vieleicht: Ich geh jezt mal davon aus das du immer Viertelkreise zeichnest.
mx = mittelpunkt X my = mittelpunkt Y x=mx oldx = x-1 y=my+radius while(x < mx+radius) { drawPixel(x,y) //rand zeichnen if (x != oldx) { //x != alter postion, sonst haben wir schon gemalt! oldy = y //y sichern while( y > my ) { //sind wir schon am mittelpunkt? y--; //nach unten gehen drawPixel(x,y) //pixel zeichnen } y=oldy //y wieder herstellen } oldx = x //altes x speichern um "doppelmalen" zu verhindern falls //sich x in dieser iteration nicht ändert x = newXKoord(x) //neue X berechnen y = newYKoord(y) //neue Y berechnen } |
Jezt natürlich ungetestet aber das könnte so gehen, es werden halt immer streifen vom Rand runter bis zum mittelpunkt gezeichnet. Muß man jezt halt nocheinmal spiegeln für die 4 Quadranten.
Datum:
Was ist das für ein controller-loses Display? Mfg Thomas Pototschnig
Datum:
Pollin: 120460 (mechanisch und elektrisch identisch zu 120471).
Datum:
Hallo Benedikt,
>Bei der nächsten Version ist das aber drin.
Wirst Du die Hardware verändern?
Wigbert
Datum:
Nein, nur die Software.
Datum:
hallo Benedikt, respekt vielleicht eine blöde frage aber, um eine text zb.in Zeile 1 zu schreiben ist es richtig 17,x1,y1 x=position y=zeile mfg kay
Datum:
Ja, genau so. Die Zeilen und Spaltenzählung beginnt aber C typisch bei 0.
Datum:
Mir ist jetzt noch nicht ganz klar welcher RAM verwendet wird. Alle anderen Bausteine sind ja bezeichnet ;-). Gibt es da einen Standard Reichelt Typ ? Gruß Sven
Datum:
Ok, danke. Dann würde dieser hier passen : http://de.farnell.com/1271827/halbleiter/product.u... Bestnr: 1271827 Danke schon mal für die Arbeit und die Veröffentlichung. Überlege das ganze in SMD zu realisieren und zu veröffentlichen. Gruß Sven
Datum:
Ich hätte da mal eine Frage aus reinem Interesse: Warum die etwas unorthodoxe Einblendung des externen Speichers in den Adressraum des AVR (A0 vom externen Interface wird nicht verwendet)? Hat das Vorteile beim Auslesen des RAM für den LCD-Datenstrom?
Datum:
Sven wrote: > Ok, danke. Dann würde dieser hier passen : Ja, der sollte funktionieren. Stefan Ernst wrote: > Ich hätte da mal eine Frage aus reinem Interesse: > Warum die etwas unorthodoxe Einblendung des externen Speichers in den > Adressraum des AVR (A0 vom externen Interface wird nicht verwendet)? > Hat das Vorteile beim Auslesen des RAM für den LCD-Datenstrom? Ja. Damit das ganze schneller geht, teile ich den 16bit Adresspointer in 256 Zeilen und 256 Spalten auf, genau passend für das LCD. Ich lese für das LCD 80 Bytes aus. Da das LCD nur 4bit hat, reicht ein Speicherbyte für 2 Datenpakete zum LCD, daher der Multiplexer und daher ist A0 nicht beschaltet.
Datum:
Benedikt K. wrote: > Ich lese für das LCD 80 Bytes aus. Da das LCD nur 4bit hat, reicht ein > Speicherbyte für 2 Datenpakete zum LCD, daher der Multiplexer und daher > ist A0 nicht beschaltet. Ah, ich hatte übersehen, dass der Multiplexer am Ausgang durch das RD-Signal getoggelt wird. ;-) Danke!
Datum:
Angehängte Dateien:Kleines Update: Jetzt mit Routinen um einen (gefüllten) Kreis zu zeichnen.
Datum:
@Benedikt K. noch mal zu Deiner Schaltung: von IC1/PD4 kommt FLM/ AC von IC6A/Pin5 kommt M/Frame. sonst war FLM=Frame und M=AC Frame wird ja wohl gebraucht, welcher Pin wäre denn richtig? Wigbert
Datum:
Angehängte Dateien:Du hast recht, da habe ich wohl beim Verschieben der Pins nur ein Teil der Bezeichnung mitverschoben. Hier iste die Beschreibung mit dem korrigierten Schaltplan.
Datum:
Angehängte Dateien:Hi Benedikt, hab ein kleines Ausgabeproblem. Anbei mal Dein "Titelbild" Sieht so aus , als wenn der Text nicht aus der richtigen "Ablage" "gemalt" wird. Hab die Verdrahtung noch mal geprüft, laut DBL soll der mega 8515 nur 12 bis 22pF am Quarz haben, hab ich 15 statt deiner 27 drin. Reset hat noch 10K an 5V+ Auf Befehle über RXD gehorcht die Schaltung Bedingungslos bei 19K2 . als Speicher hab ich ein W24M257AK-15 ( hab ein paar ausprobiert) drin. Fusebits des mega8515: CKOPT programmed(>8Mhz) rest unprogrammed. habe beide Code (mit und ohne Kreis) ausprobiert. Dank Dir mal schon. Wigbert
Datum:
Hast du die Verdrahtung genauso wie im Schaltplan, oder hast du bei den Datenleitungen etwas verändert ? Wenn du Pin 1 vom HC157 an Q statt an Q\ anschließt, dann sollte es passen.
Datum:
Angehängte Dateien:war wohl bisher der erste Nachbauer, ansonsten: ohne Worte. Wigbert
Datum:
Habe ich da was im Schaltplan vertauscht, oder hattest du was falsch ?
Datum:
ich hab den Pin1 vom HC157 an Pin9(Q)des HC74 angeschlossen (geändert) zw. Pin8 u.Pin12 habe ich die Brücke des HC74 gelassen. Der Rest ist alles nach Deinem Schaltplan. Nur ISP-Buchse hab ich zusätzlich drauf. Wigbert
Datum:
@ Wigbert Picht Darf man fragen um welches Display es sich genau handelt? Eine genaue Bezeichnung wäre echt Klasse!
Datum:
@ Wigbert kannst du das Layout veröffentlichen? Gerhard
Datum:
stimmt, ist nirgends erwähnt von Pollin Best.Nr. 120 471 Wigbert
Datum:
Angehängte Dateien:Gerhard wird demnächst kommen, muss nach ein paar Schönheitsfehler abändern
Datum:
Angehängte Dateien:Hi Die Schaltung im Beitrag bezieht sich ja auf die Displays von Pollin. Best.-Nr.: 120 460 und 120 471 Ich habe das von Sharp (120 318). Kann ich das auch verwenden? Nur die Spannungen für das Display müsste ich da selbst erzeugen. Liege ich da richtig? Und müsste ich da im Programm etwas verändern? Ich häng das Datenblatt gleich mit an!
Datum:
Datum:
Jens wrote: > Ich habe das von Sharp (120 318). Kann ich das auch verwenden? Ja. > Nur die > Spannungen für das Display müsste ich da selbst erzeugen. Liege ich da > richtig? Ja, ich mache das so wie bei dem Link den Andreas gepostet hat. Und müsste ich da im Programm etwas verändern? Nein. Nur aufpassen, dass da das Display mit 3,3V läuft. Also den Pegelwandler nicht vergessen. > Ich häng das Datenblatt gleich mit an! Datenblatt würde ich das nicht nennen. Irgendwo hier im Forum fliegt auch das richtige Datenblatt von Sharp rum, ich habs jetzt gerade nicht gefunden. Aber da es ein Standard 320x240 TFT ist, ist das Datenblatt sowiso eher uninteressant (abgesehen von der Pinbelegung).
Datum:
Das Datenblatt ist in dem Pollin-Downloadpaket auch drin (in "Daten").
Datum:
@Benedikt Warum 3,3V für das Display? Laut Schaltplan von Pollin betreiben die das LCD mit 5V und nur das FPGA mit 3,3V.
Datum:
Wenn's geht - ok. Im Datasheet von dem Teil steht halt 3.0-3,6V drin. Allerdings mit einem absoluten Maximum von immerhin doch 6V, also wohl nicht im Sinne des Erfinders, aber vielleicht machbar. Aber: Bloss weil Pollin das reinschreibt, wird da kein Naturgesetz draus.
Datum:
Jens wrote: > Warum 3,3V für das Display? Wie Andreas schrieb: Sharp garantiert nur 3,3V. Es mag bei 5V gehen, ist aber außerhalb der Specs. > Laut Schaltplan von Pollin betreiben die das LCD mit 5V und nur das FPGA mit 3,3V. Wichtigste Merkregel bei Pollin: Nie deren Angaben vertrauen, da ist einiges falsch. Immer das orginal Datenblatt verwenden.
Datum:
Wo liegt eigentlich der Unterschied zwischen den Displays von Pollin mit den Nummern 120 460 und 120 471??? Hat nur der Rahmen ne andere Farbe oder wie?
Datum:
Apropos Datasheet: Laut Sharp ist schon der kleinste Überschwinger am Eingang jenseits der Spezifikation. Ist nämlich nur 80-100% Vdd zulässig. ;-)
Datum:
Hab das zweite noch nicht ausprobiert, aber von der Bezeichnung her (NANYA hat da ein System drinne) ist das erste hell auf dunklem Hintergrund, das zweite andersrum. Und das erste geht garnicht ohne Hintergrundbeleuchtung (transmissive), das zweite kann sowohl mit wie ohne (transflexive).
Datum:
ChrisLiebig wrote: > Wo liegt eigentlich der Unterschied zwischen den Displays von Pollin mit > den Nummern 120 460 und 120 471??? Hat nur der Rahmen ne andere Farbe > oder wie? 120 460 ist das hier: http://www.mikrocontroller.net/attachment/34396/32... und 120 470 ist das: http://www.mikrocontroller.net/attachment/36571/GLCD.JPG Das erste hat meiner Meinung nach einen leicht besseren Kontrast, dafür sieht man (wie Andreas schon wieder vor mir schrieb) garnichts ohne Backlight. Das zweite ist dagegen auch ohne Backlight bei ausreichend vorhandenem Licht ablesbar.
Datum:
Wie kann ich die 23V für die Hintergrundbeleuchtung erzeugen? Bin grade auf der Suche nach der IC-Lösung möglichst ohne viel äußere Beschaltung. Wieviel Strom benötigt denn das Backlight?
Datum:
Lies dir das mal durch: Beitrag "Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus"
Datum:
Und wenn du nicht nur 5V, sondern auch irgendwas ab 6-7V zur Verfügung hast, darf ungeregelt sein, dann wird es etwas einfacher: Beitrag "Re: Grafik-LCD Controller mit AVR und VRAM". Die Drossel darin gibt's übrigens netterweise auch bei Pollin. Ob der Optokoppler zur Schaltung der Spannung wirklich nötig ist weiss ich nicht. Laut Datasheet soll die Spannung erst später eingeschaltet werden, zusammen mit DISP_OFF, also ist es sicherer so. Aber wenn DISP_OFF die Spannung im LCD sowieso schaltet, wär's ja egal. In Beitrag "Re: Grafik-LCD Controller mit AVR und VRAM" habe ich den Wandler mal auf 10mA minimiert und das Kontrastpoti aus dem Wandler ausgelagert, ist aber so noch nicht getestet. Auch hier gibt's die Spule bei Pollin. Strom für Vee ist laut Datasheet von dem Typ mit dunklem Hintergrund übrigens 3,4mA.
Datum:
Danke für eure schnellen Antworten. Leider habe ich nur die 5V zur Verfügung. Ich blicke in dem ganzen riesen Topic nicht mehr so recht durch, kann mir einer mal die richtige Schaltung zeigen, wie ich aus den 5V die -22V rauskriege? Achso nochwas, was fürn SRAM kann ich da nehmen, ich brauche ja was mit ca. 20ns Zugriffszeit. Hat da jemand nen Beispiel für nen 5V Typ?
Datum:
ChrisLiebig wrote: > Leider habe ich nur die 5V zur Verfügung. Du solltest den CCFL Inverter für die Hintergrundbeleuchtung nicht ausser Acht lassen. Es sei denn du willst die transflexive Version und nur bei genug Fremdbeleuchtung verwenden. Der Inverter von Pollin ist nämlich ein 12V Typ, zu finden als Kaltlichtkathode für's PC Modding. Daher lag diese Variante der Spannungserzeugung nahe. Benedikt musste etwas mehr Aufwand treiben, da man mit dem MC34063A ohne Hilfstransistor aus 5V keine 23V zaubern kann. > riesen Topic nicht mehr so recht durch, kann mir einer mal die richtige > Schaltung zeigen, wie ich aus den 5V die -22V rauskriege? Siehe Links oben, such in den Schaltbildern nach dem MC34063A. > Achso nochwas, was fürn SRAM kann ich da nehmen, ich brauche ja was mit > ca. 20ns Zugriffszeit. Hat da jemand nen Beispiel für nen 5V Typ? Beispielsweise gesockelte Cache-RAMs aus alten PCs der 486- und der ersten Pentium-Generation. Gibt's wohl auch bei Segor. Sind aber ziemliche Schluckspechte, was zu heftigen Transienten auf der Stromversorgung führen kann. Kondensator nicht vergessen, und kurze saubere VCC/GND-Führung.
Datum:
Ok, die Schaltung ist also nur für die Display-Spannung, oder? Ich werde die jetzt so erzeugen wie in Benedikts Schaltung ganz oben. Und wie wir die Spannung für die Hintergrungbeleuchtung erzeugt? Verstehe ich das jetzt richtig, dass der Schaltregler in Benedikts Schaltung nur für die Displayspannung ist?
Datum:
ChrisLiebig wrote: > Wie kann ich die 23V für die Hintergrundbeleuchtung erzeugen? Die +23V von Pollin sind erstens keine +23V, sondern eher -18V (typisch Pollin halt: Schnell was zusammengegoogelt, nichts verstanden und falsch in die Beschreibung gepackt. Das ist genau das was ich hier geschrieben habe: Beitrag "Re: Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen"), und die sind nicht für die Beleuchtung sondern für das Display selbst. > Und wie wir > die Spannung für die Hintergrungbeleuchtung erzeugt? Verstehe ich das > jetzt richtig, dass der Schaltregler in Benedikts Schaltung nur für die > Displayspannung ist? Ja. Die Hintergrundbeleuchtung benötigt einen CCFL Inverter.
Datum:
Ja, die -23V sind nur für's Display selbst. Die Hintergrundbeleuchtung braucht so 400-800V, das baut man sich nicht selbst sondern kauft fertige sogenannte Inverter. Sind im Umfeld vom PC-Modding leicht erhältlich, arbeiten aber meist mit 12V.
Datum:
Benedikt K. wrote:
> Die +23V von Pollin sind erstens keine +23V, sondern eher -18V
Aber arg temperaturabhängig. Bei -20°C sind es laut Datasheet -20V, bei
+50°C -16,5V. Weshalb die Spannungseinstellung im produktiven Einsatz
dem Anwender zugänglich sein sollte. Ein Poti direkt im Wandler ist
dafür u.U. ungeeignet, weil man das da nicht rausoperieren darf. Geht
also wie im Datasheet und meiner 10mA-Version gezeigt beispielsweise mit
separatem Poti+Transistor, oder wie bei dir per PWM (bloss: wie stellt
das dann der Anwender ein, wenn er doch nix sieht?).
Datum:
Benedikt K. wrote:
> Die +23V von Pollin sind erstens keine +23V,
Wenn man das vom Hersteller vorgesehene Kontrastpoti mit dem Transistor
einrechnet, sind 0,6V weg, und nochmal ~1V wenn man den Kram per
Darlington-Optokoppler schaltet (nicht jeder hat sich rechtzeitig mit
Photo-MOS-Relais eingedeckt ;-). Sind zwar immer noch keine -23V, aber
ganz so dämlich ist der Wert dann auch wieder nicht. Im Datasheet vom
'159 Display sind es übrigens -22V.
Datum:
Und selbst dann sind es immer noch -23V und keine +23V...
Datum:
@Benedikt Nochmal zu dem Sharp-LCD (obwohl ich weiß, das das nicht hier her gehört) In dem Beitrag sind folgende Signale auf den Stecker geführt: LP, D0-D3, XCK, M, Yd, DISP, +Versorgung(das ist klar) Was gehört denn da zusammen, wenn ich diese Schaltung hier verwenden will. Die Signale sind hier anders benannt und das bringt mich etwas durcheinander. Danke für die Hilfe!
Datum:
DISP ist ONOFF, Yd ist Frame. Die restlichen Bezeichnungen passen zu denen im Schaltplan.
Datum:
Hallo, kann mir jemand einen passenden CCFL Inverter empfehlen?
Datum:
Beispielsweise Pollin 700 637 und 700 638. Sind für 12V Betrieb.
Datum:
Ich finde das Projekt sehr sehr interessant. Mal ne Frage: Wäre es möglich, das Display irgendwie noch mit nem Touch-Panel nachzurüsten?
Datum:
Wie siehts denn mit nem fertigen Layout aus? Hat da jemand schon was fertiges?
Datum:
hallo, habe mir den Grafik-controller nachgebaut, allerdings sind solche lücken wie bei Wigbert zusehen Pin1 vom HC157 an Pin9 des HC74 als sram habe ich den von reichelt 62256-80 vielleicht könnte mir jemand einen tipp geben mfg
Datum:
und am HC74 Pin 8 an 12 Wigbert
Datum:
ja am hc74 pin8 und pin12 sind verbunden kay
Datum:
Mit welcher Bildwiederholfrequenz wird das eigentlich betrieben? 80(320/4) x 244 x 70Hz = 1,36MHZ bei max.16 MIPS = ca. 12 Befehle zwischen den PixelClocks ??? Oder hab ich da falsch gerechnet?
Datum:
Die Framerate ist in der param.h einstellbar. Momentan ist 85Hz eingestellt. Pro 4 Pixel werden etwa 3 Takte benötig, daher bleibt noch etwas Rechenleistung für andere Aufgaben übrig.
Datum:
Angehängte Dateien:hallo, hier nochmal ein foto ,von der ausgabe jedes ic hat ein 100nf abblock kondensator alle lötpunkte sind verlötet vielleicht hat einer noch ein tipp mfg kay
Datum:
Sieht nach einem Kurzschluss gegen Masse auf einer Datenleitung oder einer unterbrochenen Datenleitung aus. Da der Abstand 8 Pixel beträgt, muss der Fehler irgendwo im Bereich AVR, SRAM, Eingang Multiplexer liegen.
Datum:
hallo, so es war eine kalte lötstelle am multiplexer, danke für die hilfe. nur der uart macht noch einpaar sorgenm der mc restet sich ab und zu und die cts led blinkt manchmal auf mfg
Datum:
kay wrote: > nur der uart macht noch einpaar sorgenm der mc restet sich ab und zu und > die cts led blinkt manchmal auf Du sendest vermutlich zu schnell die Daten. Sobald der Empfangspuffer überläuft kommt einiges durcheinander. Eigentlich sollten zwar die meisten Fehler abgefangen werden, aber es kann dennoch sein, dass irgendwo was durchkommt und dann Mist macht.
Datum:
hallo, wenn ich ein rechteck zeichnen will dann bekomme ich nur wirre zeuchen angezeigt baudrate ist 19200 zb. 29;für rechteck 50;x1 50;y1 139;x2 139;y2 0; füllfarbe 255; rahmenfarbe ist das denn so richtig mfg kay
Datum:
Nicht ganz: Die X Koordinaten bestehen aus 2 Bytes, da die Breite mit 320 Pixeln nicht in ein Byte passt.
Datum:
wäre es so richtig, 29;für rechteck 50; 25; 139; 89; 0; füllfarbe 255; rahmenfarbe oder wäre es möglich ein kleines beispiel wies richtig gemacht wird zb ein rechteck mfg kay
Datum:
29 100 0 110 200 0 220 255 255 Zeichnet ein volles Rechteck mit den Eckkoordinaten (100,110), (200,220). 29 0 1 10 1 16 50 0 255 Zeichnet ein leeres Rechteck mit den Eckkoordinaten (256,10), (272,50).
Datum:
danke erstmal für die hilfe, werd mich dann mal einarbeiten danke mfg kay
Datum:
@Benedikt: Müsste das nicht so heissen ? Also 1 und 16 vertauscht ? 29 0 1 10 16 1 50 0 255 Gruß Sven
Datum:
Ja, stimmt. Da hab ich die 2 Zeilen vertauscht.
Datum:
Ich hab die Schaltung von Benedikt K. noch nicht nachgebaut, hätte aber jetzt schon eine Frage: Wieso gibt es zwei unterschiedliche Schaltplanvarianten (1mal nach Benedikt und 1 mal nach Wigbert ). Damit meine ich die Pins 9 Q und 8/Q des Flipflops die auf zwei Arten an den Multiplexer angeschlossen werden. Hängt doch sicherlich vom verwendeten Display ab, stimmts? Eventuell kann man das kurz und knapp erklären und in die .ZIP Datei aufnehmen? Gruß Alex
Datum:
hallo, >Ich hab die Schaltung von Benedikt K. noch nicht nachgebaut, hätte aber >jetzt schon eine Frage: > >Wieso gibt es zwei unterschiedliche Schaltplanvarianten (1mal nach >Benedikt und 1 mal nach Wigbert ). Damit meine ich die Pins 9 Q und 8/Q >des Flipflops die auf zwei Arten an den Multiplexer angeschlossen >werden. Pin1 vom HC157 an Pin9 des HC74 am hc74 pin8 und pin12 verbinden so funktionierts hatte Wigbert ja auch so geschrieben da sonst pixelfehler auftreten >Hängt doch sicherlich vom verwendeten Display ab, stimmts? >Eventuell kann man das kurz und knapp erklären und in die .ZIP Datei >aufnehmen? NEIN ich habs mir auch mehrfach nachgebaut und funktioniert mfg kay
Datum:
hallo, um ein bild zuladen gibs ja den befehl 16 aber wie wird das korrekt eingegeben 16 0xAA X=10 Y=50 XS YS 255 mein bild liegt in einer tabelle, für eine kurze erläuterung wäre ich sehr dankbar mfg kay
Datum:
16 0xAA 0 0 7 10 0 Bilddaten (70 Bytes) Damit wird ein 56x10 Pixel großes Bild mit 1bpp an Position 0,0 geladen 16 0xAA 0 0 13 10 1 Bilddaten (130 Bytes) Damit wird ein 52x10 Pixel großes Bild mit 2bpp an Position 0,0 geladen Je nachdem in welchem Modus man die Bilder läd, müssen die X Werte entweder durch 8 oder durch 4 geteilt angegeben werden.
Datum:
Angehängte Dateien:hallo, so habs mal probiert aber das display wird nur mit wirren zeichen gefüllt, die bilddaten habe ich mal im anhang,auch das tool womit ich die bilddaten umwandle, das bild hat 60x60 16 0xaa 0 0 60 60 1 bild: vielleicht hat ja einer von euch mal ein beispiel
Datum:
Du lädst da doch nicht etwa eine gif Datei ins Display? Du musst die Bildaten unkomprimiert mit 1bpp bzw. 2bpp senden. 1 Byte enthält also 8 bzw. 4 Pixel.
Datum:
Benedikt K. wrote:
> Du lädst da doch nicht etwa eine gif Datei ins Display?
nein
das .gif bild wandle ich um mit diesem tool,das ergibt den
zb, diese tabelle wo das bild drin ist,
bild:
.db0x47,0x49,0x46,0x38,0x39,0x61,0xF0,0x00;
.db0x40,0x01,0x80,0x00,0x00,0xFF,0xFF,0xFF;
.db0x00...................
das lade ich in den controller der das dann ans display schickt
oder habe ich das ganze verkehrt verstanden
mfg
kay
Datum:
Das Bild hat 60x60 Pixel. Bei 1bpp wären das 450Byte. Bei 2bpp 900Byte. Deine Daten haben etwa 1,5kByte. Irgendwas passt da also nicht.
Datum:
Angehängte Dateien:hallo, habe das gif bild mit paint gespeichert und zwar monochrom ,auflösung 60x60pixel,542Bytes,dann das gif bild umgewandelt mit winbin (hat jetzt3.04Kb)damit ichs im avr(mega128) speichern kann der es dann zum lcd überträgt. hab die beiden bild daten im anhang. wenn ichs zum lcd schicke dann entsehen nur wahllose pixel. vielleicht könnte mir einer von euch ein wenig weiterhelfen, oder ein beispiel zum testen. mfg kay
Datum:
hallo, kann mir denn niemand ein beispiel nennen oder ein tool womit ich die bmp`s umwandeln kann oder ein beispiel dass wäre sehr net. mfg kay
Datum:
hallo, guten nabend die funktion ein bmp anzuzeigen funktioniert nicht,zumindest bei mir nicht,es werden immer nur wirre zeichen dargestellt vielleicht wäre es möglich mir ein kleines stück weiter zuhelfen mfg kay
Datum:
Hi! Erstmal großes Lob für Deine Arbeit, Benedikt. Ich habe damit allerdings ein kleines Problem (naja, noch nicht ;)). Ich will für ein Projekt deine Schaltung verwenden, muss aber mehr Informationen auf dem Display unterbringen als mit 40 x 20 Zeichen möglich ist (es geht dabei vor allem um die Zeichen pro Zeile, die Anzahl der Zeilen ist absolut ausreichend). Gibt es eine einfache Möglichkeit, die Größe der Zeichen von 8 x 12 auf z.B. die bei anderen Display-Controllern (z.B. Epson) üblichen 5 x 7 zu reduzieren? Die entsprechenden Definitionen der Zeichen könnte ich Ändern, womit ich mehr ein Problem habe, ist das Auslesen durch die Assembler-Routine und die Positionierung auf "ganzen Zeichen", die du ja scheinbar vor dem Aufruf der lcd_writebyte-Routine vornimmst.. Ich vermute mal die 8 x 12 sind der "glatten" Ausrichtung an einer Byte-Grenze geschuldet? Dann wäre es vermutlich nicht so leicht das ganze hinzukriegen.. Gibts da eine einfache Methode das zu ändern bzw. irgendwo als Konstante festzulegen? Danke für deine Mühe, - Tobi
Datum:
Hallo Benedikt, hallo liebe Community. Ich habe eben mal das Projekt "trocken", ohne es testen zu können, unter der aktuellen Winavr Version (20080610) mit einem Atmega128 als Ziel erfolgreich compiliert, da ich leider keinen Atmega8515 zur Verfügung habe. Sollte gehn, oder? Testen kann ichs im Moment leider noch nicht... Würde mich über ein ja, jain, nein von euch freuen ;-) Danke Rudi
Datum:
> Gibt es eine einfache Möglichkeit, die Größe der Zeichen von 8 x 12 auf > z.B. die bei anderen Display-Controllern (z.B. Epson) üblichen 5 x 7 zu > reduzieren? Ja, das sollte kein Problem sein, da die gesamte Software im Grafikmodus läuft. Die Textzeichen werden daher als Bild in den Bildspeicher geschrieben. > Ich vermute mal die 8 x 12 sind der "glatten" Ausrichtung an einer > Byte-Grenze geschuldet? Ja, da kann man ein ganzes Bytes einfach in den Speicher kopieren. Das geht am schnellsten, erlaubt aber auch nur das Positionieren eines Zeichens in 8 Pixel Schritten. Da man für andere Textgrößen sowieso aus dem Bytraster fällt, kommt man um das Pixelweise setzen und löschen nicht herum. Mit lcd_setpixel(x,y,color) sollte eine Erweiterung auch ohne Eingriffe in den Assembler Code kein Problem sein. Sowas in der Richtung sollte funktionieren (ich habs jetzt aber nicht ausprobiert):
void glcd_writechar(unsigned short xpos, unsigned char ypos, unsigned char c, unsigned char tcol, unsigned char bcol) { unsigned char i,j; for (i=0; i<8; i++) { for (j=0; j<6; j++) { if (pgm_read_byte(&font6x8[c][i])&(32>>j)) lcd_setpixel(xpos+j,ypos+i,tcol); else lcd_clrpixel(xpos+j,ypos+i,bcol); } } } |
rudi wrote: > Sollte gehn, oder? Leider nicht. Die Schaltung verwendet einen Adressbereich von 256x240Bytes=60kBytes, der mega128 erlaubt aber nur 59,75kByte für das externe RAM. Daher muss erstens das #define DDRAM 1024 auf 4096 erhöht werden, und zweitens werden die erste und die letze Zeile des Displays vermutlich dasselbe anzeigen, da eben zu wenig externer Speicher adressiert werden kann.
Datum:
Hi Benedikt! Ich hatte mir den ASM-Quelltext gestern abend nochmal angeguckt. Das Konzept der Bitmuster im Array kann man ja beibehalten, muss dann nur gucken das man jeweils nur die ersten 6 Bit des Musters benutzt. Natürlich muss das ganze dann bitweise adressiert werden, und mit einer entsprechenden Maske gearbeitet werden. Meine Ideen bis jetzt: - Zeichen laden (entsprechende Pixel-Zeile) - Maske erzeugen (gleiche Breite wie das Zeichen und an selber Stelle) - Bit-Offset laden (zum Zeichenanfang) - Speicherstelle berechnen So lange Bit-Offset > 0: Maske verschieben (links oder rechts..?) Zeichen auch verschieben (genau wie Maske) - Maske XOR 255 - Byte b aus dem Display-RAM laden - b = b & Maske - b = b | Zeichen - Byte b in Display-RAM schreiben - Externe RAM-Speicherstelle + 1 - Zeichen laden (entsprechende Pixel-Zeile) - Maske erzeugen (gleiche Breite wie das Zeichen und an selber Stelle) - Bit-Offset laden (zum Zeichenanfang) - Neues Bit-Offset = 8 - Altes Offset - Speicherstelle berechnen So lange Bit-Offset > 0: Maske verschieben (rechts oder links, andersrum wie beim ersten Schritt) Zeichen auch verschieben (genau wie Maske) - Maske XOR 255 - Byte b aus dem Display-RAM laden - b = b & Maske - b = b | Zeichen - Byte b in Display-RAM schreiben - Externe RAM-Speicherstelle - 1 (damit ist der Zustand wie vorher und kann wie in deiner ASM-Routine fortgesetzt werden) Das ist mal ganz schnell formuliert der Pseudocode (ASM-nah) den ich dafür umsetzen würde. Ich habe allerdings mit Assembler bis jetzt nicht viel gemacht (okay, bis auf ein paar Änderungen in fremdem Code) und weiß nicht genau ob ich dafür beliebige Register benutzen kann, da der C-Code da ja noch mit zusammen arbeiten muss. Eigentlich dürfte es kein Problem geben wenn ich mit push & pop die entsprechenden Register sichere, oder? Dieser Code dürfte (sofern ich jetzt keinen Denkfehler drin habe) auch schneller arbeiten als jedes Bit per "setpixel" zu setzen.. Danke vielmals ;) - Tobi P.S: Mir fällt gerade auf, das es wenn ich aus dem externen RAM auch lese eventuell zu Fehlern kommen könnte.. Spielt das eine Rolle? Ich meine.. die Daten werden ja eigentlich beim Lesen auch ans Display übertragen. So ganz hab ich das aber noch nicht durchschaut was in der Schaltung abläuft ;)
Datum:
Welch ein Zufall dass genau dieses Display bei mir liegt und ich Montag Platinen fertigen lasse. Ich werde mal eine SMD-Platine zusammenstoepseln und das ganze aufbauen, vielen Dank Benedikt!
Datum:
Tobias Hagemeier wrote: Das ist mal ganz schnell formuliert der Pseudocode (ASM-nah) den ich > dafür umsetzen würde. Sollte soweit funktionieren. Dürfte auch auf jedenfall schneller sein als die einzelnen Pixel zu setzen, vor allem da man mit einer Maske ja direkt alle 8 Zeilen untereinander schreiben kann. > weiß nicht genau ob ich dafür beliebige Register benutzen kann, da der > C-Code da ja noch mit zusammen arbeiten muss. http://www.nongnu.org/avr-libc/user-manual/FAQ.htm... > P.S: Mir fällt gerade auf, das es wenn ich aus dem externen RAM auch > lese eventuell zu Fehlern kommen könnte.. Spielt das eine Rolle? Dafür habe ich extra das Signal an PD3 eingeführt. Damit wird das Display quasi vom Datenbus getrennt, wenn keine Daten ausgegeben werden. Nur im Interrupt wird dieses Signal aktiviert, eine Zeile ans Display übertragen und anschließend das Signal wieder deaktiviert.
Datum:
Angehängte Dateien:Hallo, ich hab auch mal ein 320x240 Display angeschlossen, jedoch treten bei mir senkrechte Schlieren/Linien auf. Ich hoffe auf dem Bild kann man erkennen, was ich meine. Könnte es daran liegen, dass ich das Display mit Lackdraht an die Platine angeschlossen habe und die Drähte jetzt wie Sender/Empfänger arbeiten und Influenzen in den benachbarten Drähten verursachen? Komisch ist aber, dass es neben der Schrift " 320x240 LCD Controller By Benedikt" keine Schlieren auftauchen. Als Sram benutzte ich eins mit 15ns Zugriffszeit. Die Platine ist gelayoutet und besitzt eine Massefläche. Gruß Alex PS: Hier mal ein kleies Video, auf dem ich die Kontrastspannung runter und wieder hoch regele. Durch die Kontrastspannung kann ich den effekt zwar abschwächen, bekomme ihn aber nicht weg. http://mitglied.lycos.de/onrop/Alex/Elektronik/Fot... (die Hintergrundgeräusche stammen von meinem Radio.... diese treten jedoch nur dann auf, wenn das LCD im Betrieb ist. Dabei ist das Radio 2 m vom LCD entfernt.)
Datum:
Alexander Sewergin wrote: > ich hab auch mal ein 320x240 Display angeschlossen, jedoch treten bei > mir senkrechte Schlieren/Linien auf. Dieser Effekt nennt sich Übersprechen. Er tritt vor allem an großen senkrechten oder waagrechten Linien auf, was hier der Fall ist. Daran kann man leider recht wenig machen, das liegt am LCD. Vor allem blau-weiße sind davon stark betroffen, da diese einen Knick in der optischen Kennlinie haben: Zwischen blau und weiß kommt schwarz, was man auch schön im Video sehen kann. Das ist der Grund, wieso ich keine blau weißen LCDs verwende, obwohl blau-weiß eigentlich gut lesbar ist.
Datum:
Kann man denn gegen das Übersprechen nichts machen? Wieso tritt dieser Effekt eigentlich nur in der vertikalen Richtung auf? Ich werde mal ein bischen mit den Frames per Seconde rumspielen oder halt auf Linienzeichnungen verzichten. Gruß Alex
Datum:
Man könnte die Ansteuerung etwas anpassen, eventuell mit passendem n-line usw. aber das ist alles nicht so einfach und es verursacht andere Störerscheinungen. Das Phänomen tritt hauptsächlich vertikal auf, da die Einschaltdauer einer Zeile konstant ist (nämlich 1/240). Die Einschaltdauer einer Spalte dagegen variiert je nachdem wie viele Pixel in dieser Spalte aktiv sind (nämlich 0 bis maximal 240). Insgesamt spielen da sehr viele Faktoren eine Rolle (Widerstände der Leiterbahnen, Kapazitäten im LCD usw.), hier ist das ganze einigermaßen beschrieben: http://www.solomon-systech.com/pdf/Crosstalk%20Imp...
Datum:
Es scheint wirklich am LCD zu liegen. Ich habe das s/w LC-Display von Pollin angeschlossen und man erkennt keine vertikalen Linien mehr. So langsam verstehe ich auch, wieso viele passive Displays auf dem Markt für wenig Geld verkauft werden. Die Bildqualität ist wohl nur mit viel Mühe gut einstellbar. Gruß Alex
Datum:
Angehängte Dateien:Ich bekomme immer eine Fehlermeldung (AVRStudio4 + WinAVR20081118rc2) wenn ich das Programm neu compilieren möchte. Eventuell liegt es einfach an meinem Unvermögen mit dem GCC Compiler umzugehen. Auf dem Bild könnt ihr sehen, welche Headers ich eingefügt habe. Was muss ich mit lcd.c und uart.c machen? Die sind derzeit in dem selben Ordner, wo auch die main.c ist. Muss ich diese c. Files irgendwo einbinden? Gruß Alex
Datum:
Alexander Sewergin wrote:
> Muss ich diese c. Files irgendwo einbinden?
Ja und die .S auch.
Datum:
Angehängte Dateien:Ich habe hier ein sp14q002 Display (Datenblatt im Anhang). So wie ich das hier sehe kann ich dieses Display mit diesem Selbstbaucontroller verwenden, nur wollte ich nochmal sicher gehen, bevor ich alle Teile bestelle, die ich brauche, und daraus wird dann doch nichts...
Datum:
Ja, die Ansteuerung ist möglich.
Datum:
Ok, vielen Dank! Nun habe ich noch eine Frage, den Optomosfet kann ich ja, so wie ich das sehe rauslassen, oder? Wenn ja, dann muss ich doch VLCD einfach mit an die Anode von D1 und ONOFF an PE0 (INT2) am Controller oder? Im Schaltplan ist ONOFF nicht als invertiert beschriftet, in meinem Datenblatt ist das DISP.OFF(Low-Aktiv). Dann muss ich doch noch das Signal (am einfachsten mit einem Transistor, oder?) inververtieren??
Datum:
Nils wrote: > Nun habe ich noch eine Frage, den Optomosfet kann ich ja, so wie ich das > sehe rauslassen, oder? Ja. > Wenn ja, dann muss ich doch VLCD einfach mit an die Anode von D1 und > ONOFF an PE0 (INT2) am Controller oder? Ja. > Im Schaltplan ist ONOFF nicht als invertiert beschriftet, in meinem > Datenblatt ist das DISP.OFF(Low-Aktiv). Dann muss ich doch noch das > Signal (am einfachsten mit einem Transistor, oder?) inververtieren?? Nein. Onoff: High = On, Low = Off DispOff\ ist Low aktiv, Low deaktiviert also das Display. Direkt verbinden und das Display sollte funktionieren.
Datum:
hallo, ich hab nochmal eine frage bezüglich eines bmp zu laden, die anderen funktionen wie rechtecke,linien, kreise usw funktionieren bestens aber wenn ich ein bild laden will werden nur wirre pixel dargestellt. vielleicht wäre es möglich mal drüber zuschauen was ich verkehrt mache mfg kay ldi ZL,LOW (bmp*2) ; Adresse des Strings in den ldi ZH,HIGH (bmp*2) ; Z-Pointer laden ;macro ;bmp mit 60x60 pixel picture 0xAA,0,0,60,60,1 bild0: lpm ; Erstes Byte nach R0 lesen tst R0 ; R0 auf 0 testen breq _end ; wenn 0 verzw. zu _end rcall senden ; UP "ausgeben auf uart adiw zl, 1 ; Adresse des Z-Pointers um 1 erhöhen rjmp bild0 ; wieder zum Anfang senden: mov r17,r0 ;r0 nach r17 kopieren send: sbis UCSR0A,UDRE0 ; Warten bis UDR für das Byte bereit ist rjmp send OUT UDR0, r17 ret _end: ;bilddaten bmp: .db 0, 0, 0, 0, 0, 11, 240, 0, .db 0, 0, 0, 0, 3, 112, 0, 0, .db 0, 0, 0, 0, 180, 0, 0, 0, .db 0, 0, 0, 30, 0, 0, 0, 0, .db 0, 0, 7, 192, 0, 0, 0, 0, .db 0, 0, 248, 0, 0, 0, 0, 0, .db 0, 31, 1, 228, 128, 0, 0, 0, .db 7, 224, 255, 248, 0, 0, 0, 1, .db 124, 63, 255, 0, 0, 0, 0, 32, .db 135, 253, 224, 0, 0, 0, 0, 33, .db 255, 206, 0, 0, 0, 0, 92, 57, .db 161, 192, 0, 0, 0, 6, 3, 16, .db 56, 0, 0, 0, 0, 64, 112, 223, .db 0, 0, 0, 0, 0, 15, 0, 224, .db 0, 0, 0, 0, 0, 176, 112, 0, .db 0, 0, 0, 0, 2, 63, 0, 0, .db 1, 160, 0, 0, 96, 0, 0, 127, .db 248, 64, 0, 0, 0, 0, 11, 231, .db 136, 0, 0, 0, 0, 0, 185, 128, .db 0, 0, 0, 0, 0, 15, 128, 251, .db 128, 0, 0, 0, 0, 64, 127, 252, .db 0, 0, 0, 0, 2, 127, 247, 96, .db 0, 0, 0, 0, 31, 243, 210, 0, .db 0, 0, 0, 0, 254, 22, 192, 0, .db 0, 0, 0, 15, 208, 56, 0, 0, .db 0, 0, 0, 251, 10, 0, 0, 0, .db 0, 0, 0, 127, 0, 0, 0, 0, .db 0, 0, 3, 192, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 2, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 6, 0, 0, 0, 0, 0, 0, 1, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 0, 0, 0, 0, 0, 0, 0, .db 0, 16, 0, 0, 0, 0, 0, 0, .db 7, 0, 0, 0, 0, 4, 0, 1, .db 224, 0, 0, 0, 0, 0, 0, 126, .db 0, 0, 0, 0, 0, 0, 127, 224, .db 0, 0, 0, 0, 0, 127, 252, 0, .db 0, 0, 0, 0, 11, 255, 192, 0, .db 0, 0, 0, 0, 63, 248, 0, 0, .db 0, 0, 3, 131, 255, 128, 0, 0, .db 0, 1, 252, 127, 240, 0, 0, 0, .db 0, 63, 255, 158, 0, 0, 0, 0, .db 0, 255, 248, 224, 0, 0, 0, 0, .db 7, 190, 28, 0, 0, 0, 0, 0, .db 26, 7, 128, 0, 0, 0, 0, 0, .db 251, 224, 0, 0, 0, 0, 0, 1, .db 248, 0 .db 0,0
Datum:
Kay B. wrote: > > vielleicht wäre es möglich mal drüber zuschauen > was ich verkehrt mache > bild0: > lpm ; Erstes Byte nach R0 lesen > tst R0 ; R0 auf 0 testen > breq _end ; wenn 0 verzw. zu _end Da dein erstes Datenbyte schon 0 ist, wird die Schleife direkt abgebrochen und gar nichts gesendet. Besser ist es mit einem Zähler eine feste Anzahl an Bytes zu senden, da man nie weiß welche Bytes in den Bilddaten enthalten sind.
Datum:
könnte mann das so machen ldi r18,7 ;zähler für daten = 8 bild0: lpm ; Erstes Byte nach R0 lesen dec r18 ;zähler für daten rcall senden ; UP "ausgeben auf uart brne bild0 ;alle 8bytes durch? adiw zl, 1 ; Adresse des Z-Pointers um 1 erhöhen ldi r18,7 ;zähler für daten = 8 rjmp bild0 ; wieder zum Anfang mfg kay
Datum:
Wieso lädst du den Zähler immer wieder neu innerhalb der Schleife? Das brne und das dec stehen auch an komplett falschen Stellen.
Datum:
hallo, so müsste es doch gehen wenn der der befehl lpm alle 8byte gelesen hat dann wird der z-pointer um eins erhöt oder bin ich da auf den holzweg?` ldi r18,7 ;zähler für daten = 8 bild0: lpm r17,z+ ; Erstes Byte lesen rcall senden ; UP "ausgeben auf uart dec r18 brne bild0 adiw zl, 1 ; Adresse des Z-Pointers um 1 erhöhen rjmp bild0 ; wieder zum Anfang senden: sbis UCSR0A,UDRE0 ; Warten bis UDR für das Byte bereit ist rjmp senden OUT UDR0, r17 ret _end:
Datum:
Kay B. wrote: > hallo, > so müsste es doch gehen > wenn der der befehl lpm alle 8byte gelesen hat dann wird der z-pointer > um eins erhöt oder bin ich da auf den holzweg?` Ja, du machst das komplett falsch. Der z-pointer muss nach jedem Byte erhöht werden. Hier mal ein Ausschnitt mit dem ich Daten aus dem Flash in der RAM kopiere. Er zeigt aber zumindest das Prinzip.
ldi ZL, low(2*BMP) ldi ZH, high(2*BMP) ldie XL, low(ramstart) ldie XH, high(ramstart) ldi r16, count Loop: lpm temp, Z+ st X+, temp dec r16 brne Loop |
Datum:
werd das morgen mal versuchen danke nochmals mfg kay
Datum:
Angehängte Dateien:hallo,
so habe die leseschleife etwas umgeändert,es werden nur wirre pixel
dargestellt.
ich weiss aber nicht ob die tabelle mit den bilddaten so überhaupt
richtig ist,das bild hab ich mal im anhang.
mfg kay
ldi r18,7 ;zähler für daten = 8bytes pro tabellen zeile
bild0:
lpm r17,z+ ; Erstes Byte lesen
rcall senden ; UP "ausgeben auf uart
adiw zl, 1 ;Adresse des Z-Pointers um 1 erhöhen
;nächste zeile lesen
dec r18 ;zähler für daten
brne bild0 ;alle 8bytes durch?
Datum:
Kay B. wrote:
> ldi r18,7 ;zähler für daten = 8bytes pro tabellen zeile
Wieso 8 Bytes? Das Bild ist 60x60 Pixel = 3600Bits = 450Bytes groß.
Das adiw ist auch überflüssig, da dies lpm z+ schon erledigt.
Datum:
egal wie ich die lese-schleife schreibe,es kommt wiegeseagt nur pixelsalat raus schade das das nicht funktioniert mfg kay
Datum:
hallo Benedikt, habe mir mal den beitrag"LCD Controller für 640x480 LCD mit mega8515" angesehen und das logo was du da verwendest mal probiert und das funktioniert, also ist meine bild-tabelle nicht inordnung aber wie wandelst du denn die bmp`s um? vieleicht könntest du mir ein wenig weiterhelfen mfg kay
Datum:
Ich speichere das Bild als BMP in Schwarzweis mit 1bit pro Pixel. Dann entferne ich die ersten 62Bytes der Datei, der Rest sind die reinen Bilddaten. Einfacher geht es z.B. mit solchen Tools (davon gibt es etliche, das war jetzt das nächstbeste das ich gefunden habe): http://en.radzio.dxp.pl/bitmap_converter/
Datum:
Angehängte Dateien:hallo, so habe jetzt mal das programm probiert egal welche auflösung das bild hat aber ich bekomme nur zeichensalat raus,habe die datei im anhang,das bild hat eine auflösung von 132x176 Pixel vielleicht könntest du mir nochmal weiterhelfen mfg kay
Datum:
Angehängte Dateien:Probier das mal
Datum:
habs grad mal ausproniert das haut sogar hin,aber warum haut das bei mir nicht hin,132x176 = 23232byte´s/8 = 2904byte bei meinen convertierungen komme ich nie ganz auf die byte`s mfg kay
Datum:
Die Datei habe ich mit dem Programm erstellt, Einstellung: horizontal Dann nur noch das C Array passend für den Assembler angepasst (jeweils ein .db am Anfang von jeder Zeile)
Datum:
Soo jetzt kamen meine Teile von Reichelt erst, doch statt einem Latch war ein FlipFlop drin... Ich habe hier noch den Bustreiber 74LS245 liegen. http://www.ralfzimmermann.de/ttl_ic/0e34.html In die Schaltung soll ein 74HC245. http://www.ralfzimmermann.de/ttl_ic/0e39.html Nun habe ich mir das angesehen und wenn ich DIR von 245er auf H lege und dann G\ nochmal invertiere und dann an PE1 (ALE) von uC gehe, müsste das doch eigentlich klappen? Theorethisch, aber dann ist ja noch die Geschwindigkeitsfrage, muss es unbedingt ein HC sein oder reicht der LS auch (wenn das überhaupt so nutzbar ist.) ?
Datum:
Nils wrote: > Nun habe ich mir das angesehen und wenn ich DIR von 245er auf H lege und > dann G\ nochmal invertiere und dann an PE1 (ALE) von uC gehe, müsste das > doch eigentlich klappen? Nein, der 245er ist ein Bustreiber, du brauchst aber ein Latch. Mit einem 574 würde es eventuell auch noch gehen, aber mit einem 245 auf keinen Fall.
Datum:
Angehängte Dateien:Hallo, ich habe mal eine Platine im Eagle zu dem Thema gemacht. Die IC´s sind alles DIL Bausteine es kommen nur ein paar wenige SMD Kondensatoren und Widerstände zum Einsatz. Habe die Bauform 1206 gewählt weil sie sich von Hand noch sehr gut löten lassen. Auf dem Bord ist eine 5V Spannungsversorgung und die -22V für das Display enthalten. Habe mich an das Orginal von Benedikt K. gehalten. Für den Anschluss des Displays habe ich eine Stiftleiste vorgesehen (Raster 2,5mm) Die Belegung ist 1 -> Frame 2 -> LOAD 3 -> CP 4 -> VDD (5V) 5 -> GND 6 -> VSS (-22V) Diese müsste mit dem NAN YA LTBE9T372G1K überein stimen 7 -> D0 Nur bei M AC hab ich keine Angabe gefunden was es ist! 8 -> D1 9 -> D2 10 -> D3 11 -> Display Off 12 -> M AC Eventuell besteht ja Interesse und man könnte eine Sammelbestellung von Platinen loslassen.
Datum:
hallo, ich hätte Interresse mfg
Datum:
Hallo, hat wer 2 von diesen Winbond S-Rams abzugeben?? Dann hätte ich auch interesse an einer Platine MFG Max
Datum:
Angehängte Dateien:Hallo, Habe heute die Größe des Boards auf 100mm x 80mm geschrumpft. hab mal die Preise bei Bilex im Kalkulator berechnen lassen und er sagt mir das eine Leiterplatte, 2-lagig, mit Lötstoplack und Verzinnung ca. 7,5€ kostet. Finde das einen guten Preis. Die Berechnung gilt für 12 Eurokarten also 24 einzelne Leiterplatten. Alle die Interesse haben einfach melden dann würde ich eine Bestellung abschicken. Können auch gern einen anderen LP Hersteller nehmen, war nur so die erste Adresse wo ich geschaut habe. Eventuell schaut auch einer nochmal über die Platine quer, um eventuell Fehler die sich eingeschlichen haben noch zu ändern.
Datum:
@Blitzlampe: Warum sind die meisten Leiterbahnen auf den TOP Layer ( Rot ), das heisst du müsstest jede Fassung oder IC von oben festlöten, wäre sehr umständlich. Da am besten man den Buttom (Blau ) Layer zum löten verwendet wird entsprechend den Layer wechseln. Sind die Platinen Durchkontaktiert und mal getestet worden ?
Datum:
Avr Nix wrote: > @Blitzlampe: Warum sind die meisten Leiterbahnen auf den TOP Layer ( Rot > ), das heisst du müsstest jede Fassung oder IC von oben festlöten, wäre > sehr umständlich. Da am besten man den Buttom (Blau ) Layer zum löten > verwendet wird entsprechend den Layer wechseln. ??? Jede Bohrung ist gleichzeitig eine Durchkontaktierung und kann somit von beiden Seiten gelötet werden.
Datum:
>Jede Bohrung ist gleichzeitig eine Durchkontaktierung und kann somit von >beiden Seiten gelötet werden. na, ja für Profis sei das Löten wohl kein Problem, ich hatte meine Platine so geändert, das nur noch jede 2. Fassung von beiden Seiten gelötet werden braucht. Oder anders gesagt, genügend Platz für den Lötkolben da ist. Wigbert
Datum:
Angehängte Dateien:Natürlich sind die Platinen Durchkontaktiert, Die meisten Leiterbahnen sind übriegens auf der Seite der Leiterplatte wo nicht die IC´s sitzen. Es gehen nur wenige Leiterzüge unter den IC´s lang (BOTTOM Layer) Habe im Anhang noch mal das Layout gespiegelt wer damit besser zurechtkommt ist aber die selbe Platine.
Datum:
Wollte nicht deine Platine nieder machen, aber wenn es eng wird und du keine Präzisionfassung benutzt wird man mit dem löten Schwierigkeiten haben, da man nicht von oben Löten kann bzw kaum dran kommt. Wenn man auf top Layer Leitungen weg gehen und auf den Bottom layer gelötet wird hast du keine Verbindung. ....aber wenn alle Durchkontaktiert (hülse) sind sollte das nicht passieren Ich nehmen auch mal eine Platine. Wird der Spannungsregler nicht zu warm ?
Datum:
Angehängte Dateien:Kritik ist immer gern willkommen solange sie hilfreich ist. Kenne das Problem auch, wenn man Platinen bügelt muss man schon drauf achten wie und wo man die Via´s setzt weil es schnell passiert das man nicht mehr rankommt zum löten. Aber bei einer "richtigen" Platine sind alle Bohrungen durchkontaktiert und somit reicht es wenn man eine Seite verlötet. Die Platine lässt sich ohne Akrobatik löten und bestücken, das Bild im Anhang zeigt wo alles gelötet werden muss. Jeder grüne Punkt ist eine Lötstelle + die SMD Bauteile. Es muss nur diese Seite gelötet werden! Das Bild zeigt übrigens die Unterseite und die IC's Sitzen auf der anderen Seite. Der 7805 wird bei 12V Eigangsspannung und einem Laststrom von 0,1A ca. 46°C + Umgebungstemp warm. Wenn jemand, der die Schaltung schon aufgebaut hat, mal den Strom messen könnte wäre das super. Somit könnte man abschätzen wie hitzig es wird und ggf. noch gegensteuern.
Datum:
Angehängte Dateien:Hier nochmal beide Seiten der Platine.
Datum:
Angehängte Dateien:>Kritik ist immer gern willkommen solange sie hilfreich ist.
Stimmt.
Ich hatte damals die Sockelpins fürs Durchkontaktieren genutzt,
um Einzelstücke selbst fertigen zu können.
Industriell hergestellte Platinen haben natürlich Durchkontaktierungen.
Wenn es zu einer Sammelbestellung kommt, vielleicht kannst Du die
Stecker fürs Pollindisplay(wenn Bedarf) zulegen. Die gibt es nun mal
für ein paar Cent (zB.Farnell).
Wigbert
Datum:
Angehängte Dateien:Ich habe mal die Schaltung und das Layout kontrolliert, passt alles soweit, bis auf eine Kleinigkeit, die allerdings mein Fehler ist: Der CLK Eingang des FlipFlops das M/AC erzeugt, muss an Frame/FLM und nicht an LP/Load. Für die beiden Pollin LCDs ist das aber egal, denn die erzeugen dieses Signal intern selbst. Daher ist es mir bisher nicht aufgefallen, dass dies falsch war. Nur andere LCDs (wie z.B. Hitachi SP14Q001 oder das Sharp LCD das es noch bei Pollin gibt), benötigen dieses Signal. Den korrigierten Schaltplan habe ich mal angehängt. Ich würde den TXD Pin auch noch mit rausführen. Er wird zwar momentan nicht benötigt, aber falls man doch mal irgendetwas erweitert, (z.B. Zurücklesen der Daten), dann kann man ihn verwenden. Das Optorelais ist leider bei Pollin nichtmehr erhältlich und daher nur noch teuer/schwer zu bekommen. Das Pollin LCD besitzt einen ON/OFF Pin, daher ist ein Schalten der VLCD nicht unbedingt notwendig. Ein (Löt)Jumper um diesen zu überbrücken, wäre daher vielleicht sinnvoll.
Datum:
Angehängte Dateien:So habe den CLK auf FLM FRAME gelegt und einen Jumper zum überbrücken für das Optorelais hinzugefügt. Die UART Schnittstelle habe ich jetzt neu gemacht. Jetzt ist eine 4 polige, 2,5mm Raster Stiftleiste vorgesehen, mit folgender Belegung. Pin 1 -> RxD Pin 2 -> TxD Pin 3 -> GND Pin 4 -> RTS (BUSY) Habe die Displayschnittstelle jetzt auch mit 2,5mm Stiftleiste versehen, da die andere schwierig zu bekommen ist. Desweiteren sind die Signale jetzt beschriftet. @ Picht Die Displayschnittstelle habe ich extra mit der Stiftleiste gemacht, damit ist die Platine universell für viele Display´s und man kann Flachbandkabel direkt einlöten. Wer will kann sich immer noch eine kleine Adapterplatte mit einer passenden Buchse machen und diese auf die Stiftleiste Löten oder stecken.
Datum:
Wegen den RAM nicht alle sind sp breit es gibt auch die schmalen die wie ein ATMega 8 aussehen. könntest du noch eine Leiste Paralle zu einer Seite einbauen , sodas man beide Breiten einbauen kann, das wäre sehr Universell. Oder sonst müsste man extra eine Adapterplatine basteln, so könnte man den schmalen 28poligen Fassung oder den Breiten 28poligen Fassung nehmen.
Datum:
Avr Nix wrote: > Wegen den RAM nicht alle sind sp breit es gibt auch die schmalen die wie > ein ATMega 8 aussehen. könntest du noch eine Leiste Paralle zu einer > Seite einbauen , sodas man beide Breiten einbauen kann, das wäre sehr > Universell. Ja, das wäre sinnvoll. Die schnellen SRAMs sind nämlich alle nur in der schmalen Ausführung erhältlich. Für die langsamen RAMs muss die Software angepasst werden (lcd.c, Waitstates aktivieren).
Datum:
Angehängte Dateien:Ok, habe es hinzugefügt.
Datum:
So war heut nochmal bei Bilex und hab jetzt einen Preis von 8€ für folgende Platine
12 x LEITERPLATTEN (ergibt 24 einzelne Platinen) 2-Lagig Durchkontaktiert 100x160 mm Materialstärke: FR4 1.55mm; Oberfläche: Chemisch Gold(RoHs konform) Cu Außenlagen Enddicke: 70 µm; Lötstop: doppelseitig grun Positionsdruck: ohne Netto: 147.39 € MwSt: 29.48 € Brutto: 176.87 € Versand 14.00 € |
Verzinnt oder vergoldet macht im Preis kein unterschied genauso wie die Kupferstärke. Also hab ich mich für Gold entschieden, das lässt sich auch noch nach langer Zeit super löten. Also melder wer eine will, bin erst bei 6 Eurokarten.
Datum:
hallo Blitz Lampe, ich hätte gern 6 stück. mfg kay
Datum:
Ok, es haben sich verschiedene Leute gemeldet und ihr Interesse angemeldet. Vielen dank erstmal! Ich würde dann am WE, eventuell kommen bis dahin noch ein paar Bestellungen hinzu, Platinen ordern. Wenn es bei den 12 Platten bleibt wären es 8€ + Porto zu euch. Würde das mit der Post im gepolsterten Umschlag verschicken. Versandkosten fallen nur die von mir zu euch an. Würde mich mal bis zum WE schlau machen (wegen Porto) und euch dann am WE die Bankdaten und den Preis mailen. Will diese nicht unbedingt im Netz veröffentlichen nicht das mir die anderen 6*10^9 Leute auf der Erde auch noch Geld überweisen ;-) man weiß ja nie.
Datum:
Ich wär auch mit 2 Platinen dabei (hab nur ein Display, aber man weiß ja nie ;) )
Datum:
Ach so, habe jetzt nicht darauf geachtet, aber mache eine Schriftmarkierung was oben und was unten ist auf den Platinen.
Datum:
Angehängte Dateien:Habe heut noch die gewünschte Kennzeichnung der Seiten hinzugefügt. Hoffe das es so gemeint war. Ansonsten einfach anmeckern :-)
Datum:
Angehängte Dateien:Hoffe man erkennt es hier etwas besser. Im Top Layer steht "TOP + Bauteilseite" und im Bottom Layer habe ich "Bottom + Lötseite" eingefügt.
Datum:
Versuchs mal als png oder gif, das sollte besser lesbar sein, und kleinere Dateien erzeugen.
Datum:
>Versuchs mal als png oder gif, das sollte besser lesbar sein, und >kleinere Dateien erzeugen. Ist Falk im Urlaub ?
Datum:
Angehängte Dateien:Habe es als Eagle Datei und als als Bild ins das ZIP File gepackt.
Datum:
Ich bestelle drei Platinen (falls jetzt noch möglich). Es wäre jedoch zu überlegen, ob man auf dem Board noch eine Schaltung zur Erzeugung der HV Wechselspannung für die Hintergrundbeleuchtung vorsieht (sicher, dann sollte man einen Berührschutz haben, z.B. Einbau in ein Gehäuse). Und wer diese Schaltung nicht braucht, muss die Bauteile ja nicht einlöten. Ich habe folgende Schaltung getestet: http://www.elektronik-kompendium.de/forum/forum_en... Sie zieht etwa 300 mA bei 5 V Versorgungsspannung und bei angeschlossenem Display (nicht 12 V wie auf dem Bild). Ich habe die Schaltung etwas modifiziet: Widerstände 1K, Transistoren 2N3055, mehr "Rückkopplungswindungen", Kondensator überflüssig (ich verstehe prinzipiell den Zweck des Kondensators, aber bei meinen Tests ergab sich dadurch kein besserer Wirkungsgrad). Vielleicht könnte man den Wirkungsgrad aber noch mit einer ZVS Schaltung verbessern, die ich jedoch noch nicht getestet habe: http://img236.imageshack.us/img236/5286/flybackdri... Sie scheint zwar für einen Zeilentrafo konzipiert zu sein, dürfte sich aber auch für ca. 500 V Ausgangsspannung anpassen lassen (geeigneter Ferrtikerntrafo). Noch eine Frage: Hat jemand eine Ahnung, wie stark sich die Bildwiederholungsrate verringert, wenn man die 70 ns SRAMs von Reichelt benutzt und das Programm entsprechend anpasst ?
Datum:
Einen CCFL Inverter würde ich nicht auf die Platine machen. 1. Bekommt man diese günstiger gekauft, als man es selber bauen kann. 2. Es schwierig ist einen Trafo zu bekommen bzw selber zu wickeln. 3. Er die Verlustleistung am 7805 extrem in die Höhe treibt. 4. Weil der gekaufte Inverter oder ein ausgebauter sicher funktionieren. 5. Es nicht abzuschätzen ist ob die Störung des Wandlers die Funktion der Schaltung beeinflussen. 6. Kein Platz mehr ist.
Datum:
Florian K. wrote: > Noch eine Frage: Hat jemand eine Ahnung, wie stark sich die > Bildwiederholungsrate verringert, wenn man die 70 ns SRAMs von Reichelt > benutzt und das Programm entsprechend anpasst ? An sich garnicht, da sich der LCD Controller soviel Zeit nimmt wie er braucht. Allerdings benötigt ein Speicherzugriff dann 3 statt 2 Takte, was die CPU Auslastung auf >80% erhöht. Die Grafikbefehle werden dann entsprechend langsamer ausgeführt.
Datum:
Zum Thema fertige CCFL Inverter: Hier gibt es einen: http://www.lc-design.de/shop/de/k006u005s001.htm Allerdings kostet es erst wieder Versandkosten ... Die bei Pollin http://www.pollin.de/shop/detail.php?pg=NQ==&a=ODc... oder http://www.pollin.de/shop/suche_ergebnis.php?S_TEX... wären wohl auch geeignet, allerdings stört mich, dass man dann extra noch 12 V Versorgungsspannung braucht. Aber vielleicht kann man sie ja umbauen (Windungszahlen, Widerstände, Kondensatoren), so dass sie auch bei 5 V einen ausreichenden Output bringen ? P.S: Ich bestelle trotzdem 3 Platinen, auch wenn der CCFL Inverter darauf keinen Platz mehr hat.
Datum:
Der CCFL Inverter braucht für das Display braucht nicht umbedingt 12V, ich habe ein Inverter der für 12V ist für die Hindegrundbeleuchtung auf 7..8V laufen. Das sollte man ausprobieren.
Datum:
Hallo, habe soeben die Bestellung abgeschickt. Habe allen eine Mail geschrieben. Sollte ich einen vergessen haben einfach mir noch ne Mail schreiben. Laut Bilex sollen die Platten bis zum 20. gefertigt werden und dann müssten sie 3-4 Tage später bei mir eintreffen. Werde Sie dann umgehend an euch weiter leiten. !!!! Habe auch noch ein paar Platten über also wer noch eine will kann sich immer noch melden!!!!!
Datum:
Hallo falls noch verfügbar, würde ich 2 Platinen nehmen Rainer
Datum:
Hallo falls noch verfügbar, würde ich auch 2 Platinen nehmen Adalbert
Datum:
Hallo, habe heut eine Mail bekommen, die Platinen sollen am 26-27.01 bei mir einschlagen, werde sie dann umgehend an euch verschicken.
Datum:
Angehängte Dateien:Hallo, gestern sind die Platinen an euch raus. Hoffe das ihr sie bald bekommt. Habe eine mal fix aufgebaut um zu schauen ob alles soweit passt. Es sind noch 2 Stück über also wer noch eine oder beide will kann sich melden. Im Anhang ist der Funktionstest zu sehen.
Datum:
Ich hätte gerne die beiden Platinen. Habe dir eine Nachricht geschickt.
Datum:
@Blitzlampe: Danke, die Platinen sind angekommen. AVRNix
Datum:
Hallo, Welche Häkchen müssen in PonyProg gesetzt werden für die Schaltung/Platine von Blitzlampe? Danke für die Hilfe.
Datum:
Du musst den Atmega auf alle fälle auf 16MHz ext. Quarz stellen Schau dir mal die Seita an da findest du auch die Einstellungen für PonyProg. http://www.engbedded.com/cgi-bin/fc.cgi/?P_PREV=AT...
Datum:
Angehängte Dateien:Hallo zusammen, auf dem Display ist nur auf der rechten Seite ein Streifen Muster drauf. Woran kann das liegen, ich habe alle Lötstellen 3x neu verlötet? Was könnte das Problkem sein das nur die linke Hälfte OK Angezeigt wird und rechts streifen auftauchen? Danke
Datum:
Avr Nix wrote: > Was könnte das Problkem sein das nur die linke Hälfte OK Angezeigt wird > und rechts streifen auftauchen? Ich habe ehrlich gesagt nicht die geringste Vermutung woran das liegen könnte. Der Text sieht OK aus, auch auf der rechten Seite. Da es weder Software noch Hardware mäßig irgendwelche Unterschiede zwischen beiden Seiten gibt, ist das ganze sehr seltsam. Dazu kommt noch, dass jeder 2. Pixel anscheinend betroffen ist, aber die Pixel liegen ja gemeinsam zusammen mit den funktionierenden Pixel in einem Byte.
Datum:
Fängt die Störung bei einer Zweierpotenz (Bits/Bytes in der Zeile) an und wiederholt sich alle 8 Bits? Dann könnte eine irgendwie geartete Kopplung zwischen einem Adress- und einem Datenpin vom RAM bestehen. Adress/Datenpins untereinander und gegeneinander durchklingeln. Speichertestprogramm basteln. Korrekte Funktion vom Adresslatch testen. RAM und Adresslatch tauschen. Stützkondensatoren sind ja wohl überall drin? Wie sieht der Aufbau aus?
Datum:
Also ich habe die Platine von Blitzlampe und mehre RAM wie den W24M257AK-15 und dem Em51M256A-15P getestet alles das gleiche Ergebnis. Jetzt darf ich mal das Datenblatt suchen und schauen ob die überhaupt passen, was ich gedacht habe. Ich habe hier noch ein HM62256ALP-70G der passt doch ? Ich meine mich erinneren zu können das die von der PINs her stimmig sind.
Datum:
Mh anscheinend ist die PIN Belegung gleich. Em51M256 datenblatt: http://www.datasheetarchive.com/pdf-download/Datas...
Datum:
Der SRAM sollte eigentlich funktionieren. Aktivier mal testweise in der lcd.c in der void lcd_init(void) die Waitstates um ein Timingproblem auszuschließen.
Datum:
Hallo, Verändert sich die Störung, wenn du mit dem Finger an den Rahmen des Displays fast oder diesen mit Masse verbindest? Ich frage deshalb, weil bei mir ein Inverter wo solche Störungen auf der Spannungsversorgung erzeugt hatte, das ich auch Streifen im Display gesehen habe. Diese haben sich aber verändert wenn ich den Finger an den Rahmen gehalten oder mit Masse verbunden habe.
Datum:
Hallo Benedikt,
Noch eine andere Frage welche Zahl ist bei dir Grau und Hellgrau?
Und könntest du mal ein Beispiel in deiner PDF aufnehmen wie man ein
Rechteck und Kreis in den 4 Graustufen etc. zeichnet?
Und -
Wo soll ich Waitstates erhöhen? bzw. könntest du nicht eine passende HEX
posten? Da ich nicht mit C arbeite, Danke
void lcd_init(void)
{ cli();
wdt_disable();
MCUCR=(1<<SRE)|(0<<SRW10); // Enable XMEM !!! Die Null vor
dem SRW Bit durch eine 1 ersetzen, !!!
// !!! wenn der verwendete SRAM mehr
als 35ns hat !!!
OCR1A=10;
OCR1B=128;
TCCR1A=(1<<COM1B1)|(1<<COM1B0)|(1<<WGM10); // Enable PWM (Kontrast)
TCCR1B=1; // 8bit PWM
OCR0=RELOAD;
TCCR0=(1<<WGM01)|2; // 2MHz Timer Takt, CTC
TIMSK=(1<<OCIE0);
sei();
lcd_clear();
lcd_block(50,10,269,79,0,255);
lcd_block(60,20,109,69,64,255);
lcd_block(150,15,189,45,64,64);
lcd_block(180,40,219,75,128,128);
lcd_block(200,20,239,50,255,255);
lcd_string(10,120,PSTR("320x240 LCD Controller"),255,0);
lcd_string(15,140,PSTR("\xB8"" by Benedikt"),255,0);
wdt_enable(WDTO_250MS);
ENABLE_VLCD=1;
}
Datum:
Angehängte Dateien:Avr Nix wrote: > Noch eine andere Frage welche Zahl ist bei dir Grau und Hellgrau? Die Farben sind 8bit Werte, man kann jeden Wert senden, es werden aber nur die 2 MSB verwendet: 0, 64, 128, 192 sind also eine Möglichkeit für die 4 Graustufen. > könntest du nicht eine passende HEX posten? Ist im Anhang.
Datum:
Angehängte Dateien:Avr Nix wrote: > Und könntest du mal ein Beispiel in deiner PDF aufnehmen wie man ein > Rechteck und Kreis in den 4 Graustufen etc. zeichnet? Hab ein paar Beispiele eingebaut.
Datum:
Danke benedikt, aber hat nicht genutzt mit der Erweitung der Waitstate. und habe alle Lötreste beseitigt, bei Blitzlampe tat es doch auch die Platine. der HM62256ALP-70G würde auch mit deiner neuen HEX Funktionieren? Danke
Datum:
Ja, der sollte gehen. Allerdings ist die Software dann etwas langsamer.
Datum:
Hallo gibts irgendwann nochmal eine bestell aktion ? würde mitmachen die displays gibts ja noch
Datum:
@Benedikt: Es ist dir möglich einen kleinern Zeichensatz zu Integrieren? Gruss karl
Datum:
Möglich ist alles.
Datum:
machts du das auch ? gruss Karl
Datum:
Momentan habe ich dazu leider keine Zeit. Und ehrlich gesagt habe ich da auch wenig Bedarf daran, da das Display doch ziemlich groß ist. Die Software war eigentlich auch mehr als Basis für eigene Erweiterungen gedacht, so dass jeder selbst eigene Befehle implementieren kann. Dazu gibt es die ganzen Schnittstellen Funktionen wie lcd_setpixel(). Damit sollte sich eine eigene Schriftart schnell einbauen lassen.
Datum:
Angehängte Dateien:Hallo, bin heute auch dazu gekommen den Controller in Betrieb zu nehmen. An dieser Stelle nochmal vielen Dank an Benedikt für Schaltung und Software sowie Blitzlampe für die Platinen-Aktion.
Datum:
Hallo! Hat evtl. jemand noch so eine Platine für mich übrig? Ich habe nämlich das Gefühl, dass ich das mangels Schaltplanlesekünsten nicht so schnell auf Lochraster realisieren könnte... ;) Ich würde sie sowohl neu, als auch fertig bestückt nehmen, natürlich gegen entsprechende Bezahlung! Reciht eigentlich ein alter Inverter aus einem Notebook oder brauche ich da nochwas neues? Und ausserdem frage ich mich ob es eine komplette Bauteilliste gibt?? MfG
Datum:
Platine zum Abgeben hab ich leider keine mehr über. Auf Lochraster würd ich das ganze nicht Aufbauen wollen wäre mir zuviel Drahtverhau. Der Inverter aus dem Notebook sollte das Display zum leuchten bringen.
Bauteil Wert Device Package Description C1 100n C-EUC1206 C1206 CAPACITOR, European symbol C2 100n C-EUC1206 C1206 CAPACITOR, European symbol C3 100n C-EUC1206 C1206 CAPACITOR, European symbol C4 100n C-EUC1206 C1206 CAPACITOR, European symbol C5 100n C-EUC1206 C1206 CAPACITOR, European symbol C6 100n C-EUC1206 C1206 CAPACITOR, European symbol C7 100n C-EUC1206 C1206 CAPACITOR, European symbol C8 27p C-EUC1206 C1206 CAPACITOR, European symbol C9 27p C-EUC1206 C1206 CAPACITOR, European symbol C10 100n C-EUC1206 C1206 CAPACITOR, European symbol C11 100µ CPOL-EUE5-5 E5-5 POLARIZED CAPACITOR, European symbol C12 47µ CPOL-EUE5-5 E5-5 POLARIZED CAPACITOR, European symbol C13 100µ CPOL-EUE5-5 E5-5 POLARIZED CAPACITOR, European symbol C14 1n C-EUC1206 C1206 CAPACITOR, European symbol C15 10µ CPOL-EUE5-5 E5-5 POLARIZED CAPACITOR, European symbol C16 CPOL-EUE5-5 E5-5 POLARIZED CAPACITOR, European symbol D1 1N4148 1N4148 DO35-10 DIODE D2 1N4148 1N4148 DO35-10 DIODE D3 1N4148 1N4148 DO35-10 DIODE IC1 MEGA8515-P MEGA8515-P DIL40 MICROCONTROLLER IC2 74AC02N 74AC02N DIL14 Quad 2-input NOR gate IC3 74HC74N 74HC74N DIL14 Dual D type positive edge triggered FLIP FLOP, preset and clear IC4 74HC157N 74HC157N DIL16 Quadruple 2-line to 1-line data SELECTOR/MULTIPLEXER IC5 74AC573N 74AC573N DIL20 8-bit D latch BUS DRIVER IC6 62256P DIL28-6 MEMORY IC7 78XXS 78XXS VOLTAGE REGULATOR IC8 MC34063AP MC34063AP DIL08 JP1 JP1E JP1 JUMPER JP2 PINHD-1X4 1X04 PIN HEADER JP3 PINHD-1X12 1X12 PIN HEADER K1 AQV21SMD AQV21SMD DIL06SMD PhotoMOS Relay NAiS L1 470µ L-EU0204/7 0204/7 INDUCTOR, European symbol LED1 LEDCHIPLED_1206 CHIPLED_1206 LED Q1 CRYSTALHC49U-V HC49U-V CRYSTAL Q2 BC327 BC327 TO92 PNP Transistor R1 2,2k R-EU_M1206 M1206 RESISTOR, European symbol R2 47k R-EU_M1206 M1206 RESISTOR, European symbol R3 1 R-EU_M1206 M1206 RESISTOR, European symbol R4 47k R-EU_M1206 M1206 RESISTOR, European symbol R5 3,3k R-EU_M1206 M1206 RESISTOR, European symbol R6 330 R-EU_M1206 M1206 RESISTOR, European symbol R7 330 R-EU_M1206 M1206 RESISTOR, European symbol R8 100 R-EU_M1206 M1206 RESISTOR, European symbol R9 0 R-EU_0207/10 0207/10 RESISTOR, European symbol R10 0 R-EU_0207/10 0207/10 RESISTOR, European symbol R11 560 R-EU_M1206 M1206 RESISTOR, European symbol X2 W237-102 W237-102 WAGO SCREW CLAMP |
Datum:
Hallo! Schonmal vielen Dank für die Bauteilliste! Hat es was zu bedeuten, dass manchmal der Wert fehlt? Vielleicht findet sich ja noch jemand, der mir eine Platine schicken kann. Leider wäre eine einzelne oer 2 viel zu teuer... MfG
Datum:
Naja der Kondi C16 ist irgendwas zwischen 10µ und 47µ ich hab 22µ genommen. Der Speicher( IC6 ) muss Pinkompatibel zum Layout sein, ich hab den von Reichelt genommen. (steht weiter oben welcher das ist) Der IC7 ist ein 7805 im TO220. Q1 ist ein 16MHz Quarz. Led jenachdem was für eine Farbe man will. Ich hab sie gar nicht erst bestückt, weil sieht man nach dem Einbau sowieso nicht. JP1...JP3 sind Lötpads, die haben keinen Wert. Die Anbschlussklemme X2 auch nicht. http://www.platinenbelichter.de/ macht dir die Platte zum guten Preis allerdings ohne Lötstopp und keine Durchkontaktierung. Ist halt bissel mehr gelöte nötig dürfte aber gehen.
Datum:
Hallo! Wo bekommt man dieses AQV21? Ich versuche gerade alle Bauteile bei Pollin + Reichelt zusammen zu suchen, aber ein AQV21 gibt es dort nicht? Gruß, Kain
Datum:
Das Teil kannst du auch weglassen oder ersetzt es durch einen Jumper. Es dient nur dazu das man die Kontrastspannung ein- ausschalten kann.
Datum:
Hallo nochmal, Wenn ich es ersetze fallen K1 und R8 weg oder? (Ich beziehe mich auf den Schaltplan im angehängten PDF) Was ist R6? 1 Ohm? Wenn ja wieso? Reichen überall 1/4 Watt Widerstände und 16V Kondensatoren? Danke für eure Hilfe, Kain
Datum:
Angehängte Dateien:sry...der Anhang...
Datum:
Vul Kain wrote: > Wenn ich es ersetze fallen K1 und R8 weg oder? Ja. > Was ist R6? 1 Ohm? Ja. > Wenn ja wieso? Strombegrenzung für den 34063 > Reichen überall 1/4 Watt Widerstände und 16V Kondensatoren? Ja, solange nicht anders angegeben.
Datum:
Wollte mir den Controller jetzt auch mal nachbauen. Hab aber noch ne Frage zum Zuschalten von der Displayspannung. Irgendwo hieß es mal, man könne bei manchen Displays auf den OptoMosFet (bzw. aufs schalten überhaupt) verzichten. Muss ich jetzt bei diesen beiden Displays Pollin 120471 Pollin 120460 einen Schalter einbauen, oder kann ich ihn weglassen, weil die Displays ja einen DISPOFF eingang haben? Gruß, Sebastian
Datum:
Den Optomosfet kannst du bei den Displays weglassen.
Datum:
Sehr gut. Dankeschön.
Datum:
Jetzt hab ich doch noch ein Problem: Hab die Schaltung nach deinem Plan aufgebaut und auch alles nochmal überprüft, aber wenn ich einschalte ist bei mir das ganze Display nur gelb. Hab jetzt das weiß-auf-schwarz Display von Pollin. Das einzige was ich bisher festgestellt hab ist, dass die Kontrastspannung von -17V im Leerlauf auf -11 bei angeschlossenem Display zusammenbricht. Ist das normal? Hab die Schaltung für die Kontrastspannung so wie im ersten Plan aufgebaut. Nur halt den Mosfet hab ich nicht drin. Sebastian
Datum:
Hallo nochmal, ich komm jetzt zwar auf -17 bis -18 Volt Kontrastspannung (auf Masse bezogen), aber das Display ist immernoch einfach nur gelb. Im Datenblatt steht doch -22V bezogen auf die 5V Versorgungsspannung, also -17 Volt bezogen auf Ground. Sind gute 200mA auf der 5V-Versorgung für die gesamte Schaltung + Display normal? Für alle die's interessiert: Ich hatte die Versorgungsspannung am Spannungswandler nicht ausreichend gepuffert und zusätzlich auf meinen Versorgungsleitungen so viel Spannungsabfall, dass die ganze Schaltung nur noch mit gut 4 Volt lief. Sebastian
Datum:
Sebastian wrote: > aber das Display ist immernoch einfach nur gelb. Prüf mal nach ob die Signale vom AVR zum LCD wirklich richtig verdrahtet sind oder ob da irgendwo was vertauscht ist, oder ein Kurzschluss ist. > Sind gute 200mA auf der 5V-Versorgung für die gesamte Schaltung + > Display normal? Kommt auf den Stromverbrauch vom Speicher, den Wirkungsgrad des Spannungswandler usw. an. Ich komme auf 100-150mA, grob passt es also.
Datum:
Hab jetzt nochmal nachgemessen. Konnte aber weder Vertauschungen noch Kurzschlüsse finden. Mich irritiert auch das satte Gelb des Displays. Woher könnte das kommen? Sebastian
Datum:
Sebastian wrote:
> Woher könnte das kommen?
Das kommt daher, dass das Display nicht richtig angesteuert wird und
daher dauerhaft die volle Spannung sieht, anstelle von 1/240tel der
Zeit.
Datum:
Werde die schaltung morgen mit zu meinen Eltern nehmen, da hab ich ein Oszi. Ich denke damit komm ich schneller auf den Fehler. Danke schonmal soweit. Sebastian
Datum:
Oszi ist leider kaputt :-( Hab das Display aber trotzdem zum laufen gebraucht. Hatte nach dem alten Plan gelötet in dem zwei Signalnamen verdreht waren. Vielen Dank an Benedikt für dieses Tolle Projekt. Sebastian
Datum:
hallo, wäre es möglich das glcd über akkus zuversorgen. mfg
Datum:
Angehängte Dateien:Biete dafür auch 640x480 (2-Halbbilder) LCD Displays monochrom (ablesbar ohne Hintergrundbeleuchtung) an. Interface standard.
Datum:
>wäre es möglich das glcd über akkus zuversorgen.
wieso nicht? Wo siehst du das Problem? Du brauchst 5 Volt für die
Schaltung und etwas 150mA wenn du die Kontrastspannung aus dem Akku
erzeugst. Hintergrundbeleuchtung nicht mitgerechnet. Sollte halt nicht
grade ne Knopfzellen-reihenschaltung sein. Aber im Prinzip seh ich
nichts, was dagegen spricht.
Sebastian
Datum:
Hallo, ich werde diese Leiterplatten nachmachen lassen in blau. Natürlich mehrere, damit der Preis stimmt. Er wird 10€/Platte + 1€ Versand liegen für ca 20 Stück. Billiger wirds erst wieder ab 100. auf den Cent genau weiss ich das noch nicht, habe nur grob für 10 kalkukiert (1,0mm FR4, doppelseitig, durchkontaktiert, blau beidseitig, geschnitten, 5 AT) incl. Ritzen des Nutzens. Lieferzeit ca 10 Tage ab Bestellung. Falls jemand welche haben will möge er bitte eine e-mail an admin@der-scirocco.de senden die NUR folgenden Inhalt hat: Name Anschrift Telefon Anzahl ! Ich antworte mit meinen Kontodaten + Anschrift. Versand per Brief 1€. Nur Vorkasse. PS: Ich habe schon vor einem Jahr mal eine Sammelbestellung (HF Booster) gemacht, diejenigen (zB Benedikt) wissen, dass die Ware auch ankommt. Einsendeschluss ist der 1.5., dann geht die Bestellung raus, ich werde trotzdem ein paar mehr machen lassen als Reserve. Grafikdisplay wollen sicherlich viele haben zumal es einfach bedienbar ist. Vielleicht findet sich ja auch noch jemand, der die "wesentlichen" Bauteile (zb ICs, Quartz, Stecker) als Sammelpacks bestellt, damit nicht jeder sich die zusammensuchen muss. Benedikt.... kann bis dahin vielleicht die Software noch etwas verfeinert werden? zb "Zeichne Koordinatensystem" Funktion (Achsen, Teilstriche), Scrolling um eine Zeile für fortlaufenden Text? Gruss, Christian
Datum:
Hallo, ich werde die Platine noch um einen FPC Stecker erweitern für die Pollin Displays. Kann mir jemand sagen welcher der Eagle 5.0 Lib da passt (genauer Name und welcher Pitch)? Ich habe das Display nicht hier. Benedikt, stimmt die Reihenfolge der Pins für das Pollin? Nicht dass die nachher genau seitenverkehrt sind oder überkreuzt....
Datum:
Angehängte Dateien:Christian J. wrote: > ich werde die Platine noch um einen FPC Stecker erweitern für die Pollin > Displays. Kann mir jemand sagen welcher der Eagle 5.0 Lib da passt > (genauer Name und welcher Pitch)? Ich habe das Display nicht hier. In Eagle 4.x gibt es zumindest keinen passenden Stecker, keine Ahnung ob das mittlerweile drin ist. Ich habe mal ein Foto von dem Display angehängt. Die Kabel gehen auf der linken Seite vom Display raus, Pin 1 vom Anschlusskabel ist oben. Die Kontakte von dem Folienkabel liegen auf der Seite, auf der die Beschriftung auf dem Folienkabel ist (wenn man das Kabel also ausklappt nach links, dann auf der Vorderseite). Das Kabel hat ein Pitch von 1mm. Hier gibt es das Datenblatt von einem sehr ähnlichen Display: http://www.mark-products.com/pdf/g320x240/159/159%20spec.pdf Die Belegung passt, die Spannungen passen, nur scheint da ein Stecker anstelle des Folienkabels drauf zu sein. Ich würde auf die Platine noch einen ISP Anschluss für den mega8515 machen. Dann kann man leicht die Software an eigene Bedürfnisse anpassen. Die ganzen Schnittstellenfunktionen zum LCD Controller sind im Programm ja enthalten.
Datum:
Hallo Benedikt, leider versthe ich Deinen Text nicht ganz. Um ganz sicher zu gehen zeichne vielleicht die Belegung auf einem Foto des Kabels ein. Ich habe das Display grad hier in der Firma. Auf der platine sieht man eine kleine 2 neben dem Lötfeld. Bitte für Dumme mal erklären, ich möchte keine Fehler machen. Eagle 5 hat hunderte dieser Stecker mit dabei. Ein ISP Stecker würde den Rahmen sprengen, die Platte ist ja schon sehr dicht. Ich möchte die Größe nicht wesentlich verändern. Da ich keine Ahnung vopm Avr habe würde ich auch nicht wissen wo anschliessen. Bisher 3 Bestellungen.
Datum:
Christian J. wrote:
> Auf der platine sieht man eine kleine 2 neben dem Lötfeld.
Das ist der Rest der teilweise verdeckten 12. Oben ist Pin 1, unten Pin
12. Es stimmt also mit dem Datenblatt überein.
Datum:
Hi, also mit Hardware könnte ich aushelfen den Stecker hatte ich von Farnell, Rest sollte kein Problem sein. Ich wickle eigentlich alles ganz professinell ab. Beitrag "Re: [S] Leute die einen Logic Analyzer (MiniLA) bauen wollen" Ich hatte mal ein Adapter gebaut Beitrag "Re: Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen" Ich such die LIB des Steckers noch raus Wigbert
Datum:
@Christian J. (elektroniker68) ich hab noch mal wegen der LIB nachgeschaut, habe das nur mit der Hand geroutet, eine LIB ist aber schnell gemacht ISP sollte schon rauf, muss ja nicht , so wie bei mir, eine Pfostenbuchse sein @Benedikt wie schnell müssen die S-Rams nun wirklich sein , um den AVR nicht auszubremsen Wigbert
Datum:
Wigbert Picht-dl1atw wrote: > wie schnell müssen die S-Rams nun wirklich sein , um den AVR nicht > auszubremsen Das hängt hauptsächlich von der "OE\ Access Time" des SRAMs ab: Im Datenblatt vom mega8515, Seite 202, Tabelle 98, Punkt 10: Read Low to Data valid: max 1.0*tclcl-50ns. Bei 16MHz ist tclcl=62,5ns. Das SRAM darf daher maximal 12,5ns brauchen zwischen dem Anlegen des RD Impulses bis die Daten stabil sein müssen. Das von mir gerne verwendete IS61C256 Cache SRAM hat in der langsamsten 25ns Ausführung hier nur 9ns. Es ist also ausreichend schnell. Bei der Low Power Variante IS62C256 dagegen, hat selbst die 45ns Variante hier 25ns. Dies kann funktionieren, da die Werte jeweils die garantierten Maximalwerte sind, muss aber nicht. Es gibt Aussagen hier im Forum, dass selbst 70ns SRAMs ohne waitstates funktionieren. Ausprobiert habe ich bis 35ns (nur Cache SRAMs). Zusätzlich ist natürlich noch die Zugriffszeit wichtig: Das wäre Punkt 5 im Datenblatt: Address valid to RD Low: 1.0*tctc-10ns. Insgesamt ergibt sich dadurch eine Zeit von 2.0*tctc-20ns, also 105ns zwischen Adresse gültig bis Daten stabil, was eigentlich alle SRAMs die obige Bedingung erfüllen, auch erfüllen. Das Latch ist da meiner Meinung nach absolut unkritisch, da die Zugriffszeit ja im vergleich zu der OE Zeit des Speichers extrem groß ist. Ich verstehe bis heute nicht, warum Atmel da ein AHC573 empfiehlt.
Datum:
Hallo Wigbert, 12 Pins mit Pitch 1,0 reichen mir schon, die Lib gibt es. Senkrechter Stecker wohl am besten. Das ISP..... wer würde die Platine übernehmen, wenn ich das FPC drin habe? Müsste nochmal aufgerippelt werden dann. 4 Befestigungsösen wären schon sehr schön, dann kann man sie auf ein Demobrett schrauben. Oder sag mir einfach mal einer an welche Pins das ISP kommt und in welcher Reihenfolge. Ein paar Pfostenstecker dürften reichen. Dann wäre eine smd Variante für den Avr ja auch wohl besser denke ich. Also Tabelle: Pin xyz ---- ISP Pin 1 Pin .... usw. (Status: 4 Bestellungen)
Datum:
Vcc MOSI MISO SCK Reset GND Ist das so richtig? Kommt Leute, ich will gleich routen..... je schneller kriegt ihr die Platinen.
Datum:
Stimmt schon was du aufgeschrieben hast. Der Standard ISP Stecker ist ein 10 poliger Wannenstecker mit folgender Belegung. Wannenstecker ISP Signal Pin 1 MOSI Pin 2 VCC Pin 3 NC Pin 4, 6, 8 ,10 Gnd Pin 5 Reset Pin 7 SCK Pin 9 MISO
Datum:
Ach was ich noch sagen wollte, warum macht ihr keinen Bootloader auf den Atmega dann könnte man das Teil in der Platte neu bespielen und man könnte gleich die RX und TX Leitung der seriellen Schnittstelle nutzen. Wäre doch die einfachste Lösung oder?
Datum:
Nein, dann müsste noch ein Pegelwandler mit rein. Ich möchte da nicht zuviel rumdoktorn. Ich mache eine Pfostenleiste, Wannenstecker ist schon wieder zun gross und ich denke mal die meisten haben diese Programmierdapater auch selbst gebaut mit diesen kleinen Steckern.
Datum:
@Christian J. (elektroniker68) die Molex- Stecker, falls Du das Routen noch mal vergleichen willst http://de.farnell.com/molex/52271-1279/socket-ffc-... Wigbert
Datum:
Hi, also ich könnte so auf die Schnelle mit S-Rams IS61C256AL-12 oder AS7C256A-12 aufwarten @Benedikt wären die schnell genug, bin mir mit dem DBL nicht so sicher Wigbert
Datum:
Ja, die sind mehr als ausreichend schnell (12ns Zugriffszeit und 5 bzw, 3ns Output Enable).
Datum:
@Benedikt Dank Dir gut 0,80 Euro(Brutto) das Stück, allerdings in SOJ oder TSOP Ich glaub es gibt DIP/SOJ Adapter Wigbert
Datum:
Wigbert, ist leider nicht dabei und ich habe keinen Nerv den zu zeichnen, weil ich ewig nicht mehr mit dem Eagle Designs gemacht habe. Hast Du da eine Lib zu.? Ich wollte auch einen stehenden verwenden, habe Hirose in der Lib aber die gibts leider nicht bei Farnell mit dem Footprint.
Datum:
Christian J. (elektroniker1968) na, ja schlag ein von Digikey vor. Den kriege ich dann auch her Wigbert
Datum:
Bei Digikey sind keine Bilder dabei. Es gibt hunderte davon. Leider ebenso in der Eagle Lib. Du, ich habe das letzte Mal vor 4 Jahren mit Eagle gearbeitet V3.xx. V5.xx habe ich aber da ist zu viel Neues drin. Am Routen würde ich 3 Tage sitzen. Kann ich Dir das Board schicken und Du änderst das ab? Ich kann mir keine Fehler leisten. Zu ändern wären: - Alle ICs durch smd Bauteile ersetzen, spart viel Platz. Schnelles Ram gibts wohl auch nur als SO Gehäuseform, die DIPs sind aus der Mode. (den AVR gibts als PLCC glaube ich) - ISP Interface einfügen - FPC Stecker - smd LED vielleicht durch 3mm ersetzen, die hat jeder rumliegen.
Datum:
Folgendes, ich habe einen stehenden mit DIP Footprint: Hirose: FH21-12S-1DSA kannste den besorgen?
Datum:
Angehängte Dateien:Sähe dann so aus, also beide Stecker.... mal eben auf die Schnelle gemacht.
Datum:
So, ich habe die Änderungen drin, also ISP und FPC Stecker. Alles andere bleibt so. Bitte an blitzlampe er möge sich mal melden, da sind ein paar Sachen im Board die wohl versionsbedingt nicht "fassbar" sind. Ausserdem bin ich eine Null im Routen. Die Sache steht und fällt allerdings mit der Beschaffbarkeit des obigen FPC Steckers. (5 Bestellungen)
Datum:
Hirose: FH21-12S-1DSA Digikey: http://search.digikey.com/scripts/DkSearch/dksus.d... ist aber nicht senkrecht, seltsam? Ware wird nur auftragsbezogen beschafft, da erstmal nicht bezahlbar Wigbert
Datum:
Doch, der ist senkrecht :-) Die Pins hinten sind verdeckt. ist aber osolet, müsste man einen Ersatz für finden: http://search.digikey.com/scripts/DkSearch/dksus.d... Passt auch vom Footprint her Warten wir erstmal ab wie viele Bestellungen kommen. Die 10 müssen schon voll werden.
Datum:
achja , wird durchkontaktiert, ich war auf SMD aus Wigbert
Datum:
Hallo Christian, @ Christian J. > Warten wir erstmal ab wie viele Bestellungen kommen. Die 10 müssen schon > voll werden. Von mir wird auch noch ne Bestellung kommen, und ich hab ein paar Leute, die sich auch dafür interessieren. Ich hab aber noch nicht von allen eine Antwort bekommen. Momentan sind 4 Platinen sicher, es könnten aber noch 4 weitere hinzu kommen. Sobald ich die genaue Anzahl habe, schicke ich Dir ne Mail mit der offiziellen Bestellung und Anzahl. Im übrigen würde ich es bevorzugen, die ICs auf der Platine im DIL zu lassen. Denn das macht doch gerade den Charme der Platine aus. Die meisten dürften noch nen 8515 in der Bastelkiste haben, und ein altes Cache RAM findet sich auch ganz leicht. Also kann man die Schaltung mit minimalem Kostenaufwand aufbauen. In SMD würde für mich bedeuten, dass ich alles bestellen müsste, obwohl die meisten Teile schon da sind. Ich wär froh, wenn ich die mal verbrauchen könnte. Ausserdem lassen sich DIL ICs sockeln, was bei Modifikationen und weiteren Verbastelungen einfach viel mehr Spaß macht. Die ISP Signale noch rauszuführen wäre Spitzenklasse. Dabei würde es mir reichen, wenn einfach die Pins 1-8, Reset, Vcc und GND direkt neben dem DIL40 1:1 auf ein einreihiges Pfostenfeld gehen. Das braucht kaum Platz im Layout. Gruß und schonmal Danke für Deine Mühe Kai
Datum:
Hallo, ich habe alles auf DIL gelassen, nur kam neben dem Pfostenstecker noch ein FPC hinzu und eben der ISP. Bzgl Routen warte ich noch auf eine Rückmeldung vonn blitzlampe, weil das jemand machen soll der mehr Erfahrung hat als ich, es ist viele Jahre her bei mir. Einer generellen smd Lösung stehe ich aber offen gegenüber, vor allem wegen des Platzes, die Platine ist doch recht gross. Mal schauen, vielleicht gibts ja auch zwei Varianten. Ich halte das aber noch für ausbaufähig, da ich selbst mit Avr nichts am Hut habe und dafür auch keinerlei Werkzeuge habe müssten das aber andere machen. Die Doku ist noch verbesserungsfähig, vor allem das Laden von Grafiken sollte verbildlicht werden, vielleicht mit Beispiel dazu. Was mir noch nicht klar ist, wie das Uart Protokoll Befehlsende erkennt, wenn zB die Daten abreissen oder aus dem Takt kommen.
Datum:
Christian J. wrote: > Was > mir noch nicht klar ist, wie das Uart Protokoll Befehlsende erkennt, > wenn zB die Daten abreissen oder aus dem Takt kommen. Garnicht. Die Software erwartet exakt xs*ys Bytes an Bilddaten. Das ganze war eigentlich als Embedded LCD Controller gedacht, der parallel zur eigentlichen Software auf dem selben AVR läuft. Die UART Ansteuerung war mehr ein Beispiel um von extern Grafik auf das Display zu bekommen, daher ist das Protokoll sehr einfach gehalten.
Datum:
Meinste, Du kriegst da noch einen Timeout hin? Wenn das Host System zB resettet wird muss der Grafikcopntroller da ja irgendwie mitkriegen. Was ganz einfaches halt, zb wenn 100ms kein Byte zur Uart kam wird rückgesetzt.
Datum:
Das halte ich für keine gute Lösung, denn dann muss man andauernd sinnlose Daten schicken. Ich würde dann eher die Resetleitung an den Master klemmen und so den LCD Controller neustarten wenn der Master neustartet.
Datum:
Also spendieren wir noch einen Reset Pin am Uart Stecker.... (PS: Der Arm7 hat ein Flag, wenn in der Uart nichts mehr ankommt :-)
Datum:
Hi, Ich hätte folgenden Vorschlag: ich könnte bis Ende der nächsten Woche eine Digikey Bestellung rauszögern. Dann würden die FFC-Stecker Versandkostenfrei nach DL kommen. Das Beste wäre wohl, alle nach Christian J. zu schicken, und Christian legt sie bei Bedarf den Platinen bei. Ahnlich könnte man es, bei Bedarf mit S-Rams machen. Wigbert
Datum:
So, hab mir das mal angeschaut, kannst du eventuell mir mal das Bord zuschicken? Wenn du Bilder vom Layout hochlädst würde ich den TStop und BStop Layer ausblenden. Das AQV21 könnte man ja mal gegen einen Typ ersetzen welchen man noch bekommt bei Reichelt oder Conrad. Viele hatten mich nach Quellen für das Teil gefragt. Die Bohrung bei der Spule L1 ist von mir etwas ungünstig gesetzt wurden. bedingt duch das Gehäuse läst sich dort nur schwer ne schraube durchquetschen. Die Bohrung für die Alternativen Spulen Pads sind auch etwas klein ausgefallen.
Datum:
Hallo Lampe, ich sende Dir heute abend das Design zu wenn ich wieder zu Hause bin. Schaus Dir bitte nochmal an und route es. Eine Resetmöglichkeit muss aber unbedingt vorhanden sein als Synchronisationsmarke. Vielleicht lässt sich in der Software ja doch was machen, vielleicht mit dem Busy Pin, wenn der zB ab und zu mal als Eingang geschaltet wird. Dann kann der Host einen Reset mit Low Pegel erzwingen, ich denke nicht dass der Pin Schaden nimmt, wenn er ein paar Mikosekunden "gegen gepolt" ist. Ich würde allerdings nur ungern als Bauteillieferant agieren, da das dann ein Durcheinander gibt, oder aber der Stecker wird per se auf den Platinenpreis aufgeschlagen, die 1,90 sind ja nicht die Welt und ohne den ist es eine Frickelei. Ich denke aber, dass diese Projekt das Potential hat als kompletter Bausatz angeboten zu werden, das ist mit Abstand die günstigste Grafikdisplay Variante die ich je gesehen habe und wenn keine Kinderkrankheiten mehr auftauchen kann das ein Dauerbrenner werden. smd wäre natürlich noch schöner :-)
Datum:
Blitzlampe.,... schick mir bitte eine e-mail, damit ich Deine Mailadresse habe für das Layout!
Datum:
Wenn der Link stimmt sind so ein Stecker ca o,54 Euro Netto soll wegen den paar Kröten jeder noch eine Briefmarke von mir bezahlen? Aber macht wie Ihr denkt, wie gesagt, mein Angebot steht .... Ein Bausatz zusammenzustellen ist vom Gesamtwert und der Menge wenig attraktiv. Wigbert
Datum:
Wigbert, dann bestell doch einfach mal 25 und sende sie an mich. Geld übeweise ich Dir dann, lege jeder Platine einen solchen bei. Ok?
Datum:
Hallo, da ich leider ein 3 tage altes Backup zurückspielen musste und idiotischweise vergessen haben die Outlook Datendatei zu sichern, bitte ich alle, die sich gemeldet hatten für Platinen ihre Mail nochmal abzusenden. Tut mir leid, war aber nicht beabsichtigt. (Layout ist fertig zum Review!)
Datum:
Angehängte Dateien:Hier die Dateien für Eagle zum Durchschauen.
Datum:
Bitte um Rückmeldung, die Platine ist fertig !!! Wer kann ein Review machen ??? Bitte dringende Bitte an jene, die noch welche haben wollen ihre Mail nochmal zu senden, ich verschicke die Platine am Montag aber solange keine 10 voll sind lohnt sich das nicht.
Datum:
Angehängte Dateien:Hi,
Ich hab grad Eagle installiert, und schau mir das Layout mal an. Bei mir
ist es allerdings auch schon ein paar Jahre her, seit ich das letzte mal
was mit Eagle gemacht habe. Deshalb möchte ich erst mal nicht zu viel
versprechen.
Eine Sache ist mir aber auf den ersten Blick schon aufgefallen. Auf den
Top-Layer und auf dem Bottom Layer befindet sich eine gestricheltes
Rechteck, das einmal rund um die Platine läuft und teilweise mit
Leiterbahnen in Berührung kommt.
Da ich alle Lagen, die nichts mit Kupfer zu tun haben, ausgeschaltet
habe, fürchte ich dass das auch auf der Platine so sein wird. Diese
Strichellinie müsste man noch löschen, weil sie an manchen Stellen
Beinahe-Kürzschlüsse provoziert.
Gruß
Kai
Datum:
Angehängte Dateien:Soo,
Jetzt habe ich mich auch daran erinnert, wozu die gestrichelte Linie
war. Vergesst das letzte Posting, war Blödsinn. Wie gesagt Eagle ist
schon etwas länger her. Das sind natürlich die Masseflächen.
Ich hab mich nun ein wenig mit dem Layout beschäftigt und noch ein
bischen Kosmetik betrieben. Folgendes ist mir aufgefallen bzw. habe ich
geändert.
- Der Beschriftungsdruck von SV3 war vertauscht.
- Verschieben einiger Leiterbahnen, um ein paar Unterbrechungen der
Masse-Flächen zu beseitigen.
- Einfügen einer 8-Poligen Pfostenleiste an den Pins 1-8. Dann sind
diese ungenutzten Pins für Basteleien zugänglich. Wers nicht braucht,
muss es nicht einlöten.
Die Änderungen habe ich diesem Posting angehängt. Wär nicht schlecht,
wenn sich noch wer anders findet und nochmal drüber schaut.
Gruß
Kai
Datum:
Angehängte Dateien:Hallo, muss Dich leider enttäuschen, die DRC Schablone von Bilex findet da 26 Fehler (1 Kurzschluss), was Distanzen etc angeht. Ich habe die Platinenumrand absichtlich etwas erweitert, da muss Luft sein zum Rand zum Ritzen und Schneiden. Lade Dir bitte die .dru Datei von Bilex herunter oder nimm diese im Anhang und lass den DRC drüber laufen. Bilex nimmt nur fehlerfreie Platinen an. Lade dann Dein Board nochmal hoch.
Datum:
Hallo, wir haben fast 20 Platinen zusammen...... bitte alle nmochmal melden, die mir in den ersten beiden Tagen geschrieben haben und nicht auf der Liste stehen. Bisherige Besteller: O.Hagendorf (2) k. Hingst (8P + 10 Buchsen) M. Prader (1) L. Jentsch (1) W.Friedl-Grimm (1) zu jeder Platine kommt die FPC Buchse hinzu. Bitte die FPC Buchsen dann mal bestellen, mich kontaktieren wegen der Rechnung und mir diese dann bitte zusenden.
Datum:
Hi, >wir haben fast 20 Platinen zusammen ist doch schön der Link aus Beitrag "Re: Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen" sind wirklich die gewünschten FFC-Stecker? ich warte noch das Wochenende, wenn die Platinen bestellt werden, ist ja die genaue Stückzahl bekannt Wigbert
Datum:
Bestell den mal, wenn er nicht passt geht das auf meine Kappe. Schick mir mal ne Mail, damit die lieferadresse auf mich geht.
Datum:
führ mal ratsnest aus, dann wird aus dem rechteck eine lückenfüllende fläche ;)
Datum:
Angehängte Dateien:>Bestell den mal, wenn er nicht passt geht das auf meine Kappe
und dann?
ob mal jemand, der die brd.Datei geladen hat, den Stecker mit dem
gerouteten Stecker vergleichen kann.
stimmen sollte das schon.
Wigbert
Datum:
Angehängte Dateien:der Gerade, falsche Seite erwischt Wigbert
Datum:
@ Christian J. Mein DRC hatte keine Fehler gezeigt. Danke für den Tipp. Aber kein Problem, die meisten Fehler sind schon raus. Knifflig wirds mit den Abständen an den Platinenrändern. @ Hauke Radtki Ratsnest habe ich dann auch entdeckt. Musste mich erst wieder an das Eagle Look&Feel gewöhnen. Aber langsam kommt das verstaubte Wissen wieder ans Tageslicht. Mir ist aufgefallen, dass die Elkos alle 5mm Raster haben. Die Elkos die ich hier von Reichelt rumliegen habe, sind meistens im 2,5-er Raster. Bei den nicht allzu großen Werten auch verständlich. Ich versuch mal noch den Elkos ein zweites Rastermaß als Alternativbestückung beizubringen. Was haltet ihr davon der Schaltung noch einen Reset Taster zu verpassen? Könnte derweil schonmal jemand den Stecker mit dem gerouteten Stecker vergleichen? Ich schick nachher nochmal einen aktualisierten Stand. Gruß Kai
Datum:
Angehängte Dateien:Hi,
wie versprochen hier nun der aktuelle Stand.
Ich hab jetzt noch nen Reset Taster dazu gefummelt, und an den Elkos
sowie der Spule zusätzliche Pads für ein alternatives Rastermaß
eingefügt. Der DRC lief bei eben Fehlerfrei.
Da ich sicher auch Fehler mache, wers nett, wenn jetzt nochmal jemand
drüber schauen könnte.
Gruß
Kai
Datum:
Hallo, nimm bei der Drossel bitte auch 5mm Abstand. Ich habe hunderte davon hier und kann die beilegen, meine haben einen sehr kleinen Innenwiderstand, sind auf Ferrit gewickelt. Elkos ruhig alle auf 2,5mm, notfalls nimmt man eben Tantals. 5mm würde ich weglassen. Bitte das Layout dann heute noch schicken. Reset Taste braucht es wohl eher nicht, der Platz wird langsam eng.
Datum:
Kann eigentlih einer erklären, warum sich auf dieser Platine in der Freeware Version von Eagle manche Bauteile nicht verschieben lassen. Eagle hat mir jetzt ziemlich oft eine Meldung gegeben, dass diese Operation mit der Freeware-Version nicht möglich sei. Setzt man das Bauteil dann woanders hin, dann geht es. Die Platine ist doch nur 80x100 groß, dann müsste doch alles gehen?
Datum:
Ich war wohl einen Tick schneller.
- Reset Taster ist drin.
- Raster 2,5 bei Elkos auch.
- Raster 5mm bei Drossel auch.
Schau mal bitte ob es so passt, mir laufen grad die Augen über.
Aktueller Stand ist als DIP3.zip im obigen Posting.
Die Raster 2,5 und 5 mm könnten evtl. nicht ganz exakt stimmen, weil ich
die Lötaugen von Hand platziert habe, und die Bauteile sich alle an
einem unterschiedlichen Raster orientieren. Das war wohl nicht von
Anfang an richtig eingestellt, oder ist geändert worden. 0,1mm hin oder
her dürften aber bei den bedrahteten Bauelementen kein Problem sein.
Gruß
Kai
Datum:
Hallo, der Reset Taster ist zwar wegen der Äthetik nicht mein Fall aber man muss ihn ja nicht einbauen, Ich würde sagen wir lassen es jetzt so, wenn die Steckerfrage geklärt ist. Gefällt mir gut. PS: Vielleicht mal eine Eagle 5.x Vollversion besorgen :-) Ich habe bis heute noch nicht kapiert wie man Innenlagen routet, geschweige denn wie man das einstellt.
Datum:
Mit der Freeware-Version gehen soweit ich weiss Innenlagen gar nicht. Die Vollversion ist sicher nicht schlecht, aber für die wenigen Layouts zu denen ich privat noch Zeit finde, lohnt sich die Anschaffung nicht. Ich wollte mir eigentlich mal KiCAD genauer ansehen. Das ist OpenSource und somit ohne Einschränkungen und Eagle sehr ähnlich. Denn manchmal will man auch ne grössere Platine machen, auch wenn die Schaltung einfach ist. z.B. um Befestigungslöcher zu irgendwas passend zu setzen. Das wäre auch bei dieser Platine interessant gewesen. Dann hätte man die Platine so dimensionieren können, dass sie genau auf die Langlöcher des Displays passt. Bzgl. dem Taster: Ich hab halt den genommen, den ich schon da hab. Ausserdem ist er bei Pollin und Reichelt billig und leicht zu beschaffen. Ich werd ihn wahrscheinlich auch erst dann drauflöten, wenn ich vor habe an der Software rum zu stricken. Gruß Kai
Datum:
Hallo, ich weiss nicht, ob mein ARM7 stark genug ist um den reset Pull Up herunter zu ziehen, der Arm kann nur ~0,8mA pro Pin. Es wäre auf jeden Fall noch wichtig eine Synchronisation zu schaffen, damit das Protokoll nicht durcheinander kommt. Sowas hat jede gute Statemachine drin. Kann da jemand was per Software bauen? Ggf. ziehe ich dann statt dem Reset Pin einen anderen Pin zur Uart leiste, der intern zurücksetzt, wenn er low gezogen wird. Oder zB resettet die Uart wenn sie 100 Mal 0x00 bekommt oder irgendetwas anderes. Evtl ist ja noch ein Timer frei, der ~50ms nach dem letzten zeichen die Statemachine zurücksetzt. Warum? es muss vermieden werden, dass sich der Avr in einem undefinierten Zustand befindet, wenn nicht alle Zeichen kommen. Das ist zb immer der Fall, wenn jemand am Host System auf Reset drückt. Es gibt dann keine Chance mehr den Avr dazu zuu bewegen, dass er wieder auf Befehle wartet. Wie gesagt, das MUSS ein richtiges System drin haben, das gehört zu Statemachines dazu. 1. Timer überwacht Uart, kommt x ms kein zeichen mehr leert er Puffer etc und setzt zurück. Hat ARM automatisch, komt 3 Perioden kein Zeichen wird ein Flag gesetzt. 2. Ein Pin wird abgefragt, ist sehr zeitsparend. 3. Eine Befehlsfolge wird vereinbart, zB ein Kommando 0xff wird oft gesendet bis AVR mit 0xnn antwortet. Da wäre aber nicht so gut, weil ein TX Pin für den Host ausreichen soll, ein Display antwortet normalerweise gar nicht, bzw muss es nicht. meine bevorzugte Lösung: 1 Wenn eben möglich sollte uart auf 56700 hochgedreht werden.
Datum:
Wie wärs einfach den Tx-Pin mit rauszuführen? Dann kann man je nach bedürfnissen beliebig komplexe Bestätigungen zurücksenden bzw. über diesen Pin synchronisieren. Weils oben mal angesprochen wurde: Ich hab den Reichelt-Ram den Benedikt ziemlich am anfang mal genannt hat (hat glaub ich 70ns). Der läuft bei mir problemlos ohne Waitstates. Wie das bei einem anderen Exemplar ist kann ich natürlich nicht sagen. Sebastian
Datum:
Hallo, es gibt auch Leute die keinen Avr haben (zB ich :-) und es soll ja bei mir als ARM, PIC user auch laufen. Ein biriktionales Protokoll ist immer aufwendig, das mit der Busy leitung ist schon super, ein Tx, ein GND und eine Busyabfrage. Über die Busyabfrage könnte auch was laufen, wenn sie zB 10us auf Input geschaltet und gesampled wird, damit der Host dort resetten kann. Ich hoffe nur jemand kann das für mich irgendwann machen, da ich uzwar jemanden habe, der Avr bespielen kann aber mehr auch nicht. Wenn der reichelt läuft ist es doch gut. PS: Ich habe inzwischen auch eine smd Version (AVR als TQFP) fast fertig, die ist nur halb so gross. Nur die schwer zu beschaffenden Bauteile als bedrahtet belassen bzw nur dann smd wenn Platz gespart wird.
Datum:
Angehängte Dateien:Hier mal ein Entwurf, 80 x65mm
Datum:
Hallo, ich bitte alle Besteller eine Mail an admin@der-scirocco.de zu senden, die NUR folgende Angaben enthält: Betreff: Grafikcontroller Name; Vorname Lieferadresse Telnr (für Komplikationen) Anzahl Platinen. Ich bestelle erst wenn ich alle Daten habe und schicke die Kontodaten dann per Sammelmail raus. Die FPC Stecker sind fester Berstandteil der Lieferung, kosten 70c glaube ich. Gratis gibts die Spule mit dabei. Ich kann mit e-mails über kryptische Accounts ohne Name, ohne Adresse wirklich nichts anfangen. Gruss, Christian O.Hagendorf (2) k. Hingst (8P + 10 Buchsen) M. Prader (1) L. Jentsch (1) W.Friedl-Grimm (1) T.Kalbe (2)
Datum:
Bestellung von 20 Platinen ist gerade abgeschickt worden. Bitte jetzt auch die FPC Stecker bestellen.
Datum:
Habe auf 30 Platinen aufgestockt, da noch weitere Bestellungen kamen.... bitte 30 FPC Stecker bestellen, Ende nächster Woche sind die Platinen da!
Datum:
Bitte 32 FPC Stecker bestellen. Sonst geht es mit den Platinen nicht auf. Ich hab Christian gebeten bei meiner Bestellung noch zwei mehr dazu zu legen. Kai
Datum:
>Bitte 32 FPC Stecker
bis heut Abend kann die Steckeranzahl ja noch korrigiert werden
Wigbert
Datum:
Hallo, funzt der Inverter von Pollin an deren Displays? Die haben derzeit nur einen einzigen im Angebot für 4,95€ mit Lampe. Wird ja mal Zeit zu bestellen, nech? ;-)
Datum:
Ja, der Inverter sollte gehen. Eventuell muss man die Betriebsspannung etwas reduzieren, da der Inverter für längere Röhren (=mehr Spannung) ausgelegt ist. Ich betreibe die Displays immer mit der niedrigst möglichen Spannung, ab der die CCFL sauber zündet.
Datum:
Benedikt, danke für die Info. Schwingst Du Dich nochmal an den Code Deines Erfolgsprojektes wegen der notwendigen Synchronisation? Busy Pin etc? Bei mir gehts leider nicht, weil ohne Arme keine Kekse, AVR ist für mich kein Thema.
Datum:
Christian J. schrieb: > Schwingst Du Dich nochmal an den Code Deines > Erfolgsprojektes wegen der notwendigen Synchronisation? Busy Pin etc? Wenn du mir genau sagst was ich machen soll, kann ich es versuchen.
Datum:
Hi, irgendeine Möglichkeit, den Controller in den Idle State zu kriegen, d.h. wenn nach dem x.ten Byte der Strom abreisst aber y Bytes erwartet werden muss er raus wieder in den Empfang. Der Busy Pin liesse sich doch 10us auf Input schalten und auswerten, der kurze Kurzschluss macht es ja auch nicht.
Datum:
Wie weiter oben erwähnt: Etwas besseres als den Reset Pin rauszuführen fällt mir nicht ein. Eine weitere Möglichkeit wäre zwischen Daten und Befehlen zu unterscheiden (z.B. über ein bestimmtes Byte das vor einem Befehl gesendet wird. Allerdings muss man dieses dann, falls es zufällig ein Datenbyte ist, auch wieder extra kennzeichnen, was die Ansteuerung wiederum aufwendiger macht.) Bzw. eine Möglichkeit gibt es momentan schon: Worst case erwartet der Controller 255x255=65025 Bytes. Der Befehl 0 ist nop. Wenn man also 65025x 0 sendet, dann sollte der Controller wieder bereit sein für neue Befehle. Ich könnte das ganze noch auf 80x240=19200Byte begrenzen, dauert bei 57600Baud aber trotzdem noch 3,3s.
Datum:
Hi, mal für Dumme, war da nicht schon ein Busy Pin vorhanden, der den Datenfluss stoppt und was soll synchronisiert werden? Ok es gibt wohl keine Check Rückantwort, das alles richtig angekommen ist, wäre bei Einsatz eines Abgesetzten Displays vielleicht notwendig. Wigbert
Datum:
Wigbert Picht-dl1atw schrieb: > mal für Dumme, war da nicht schon ein Busy Pin vorhanden, > der den Datenfluss stoppt und was soll synchronisiert werden? Ja, den gibt es. Der stoppt die Datenübertragung wenn der Empfangspuffer überläuft.
Datum:
Leute, nicht so schwerfällig. Jedes Protokoll MUSS eine Möglichkeit bieten, dass es aus einemm fernen State zurück in den Idle State kommt. Die ganze Sache ist ja nichts anderws als eine Statemachine. Meinetwegen kann man das auch mit dem WDT machen, dass er aus einer Empfangsschleife rausgeht, wenn keine neuen Bytes mehr kommen, jedoch müssen natürlich die Inhalte des Sram unverändert bleiben. Timeout ca 100ms. Derzeit hängt der Avr unrettbar fest, wenn das Protokoll unterbrochen wird oder man sendet dermassen viel Müll rüber, dass selbst die Bitmap Funktion überläuft.
Datum:
Christian J. schrieb: > Meinetwegen kann man das auch mit dem WDT machen, dass er aus einer > Empfangsschleife rausgeht, wenn keine neuen Bytes mehr kommen, jedoch > müssen natürlich die Inhalte des Sram unverändert bleiben. Kann ich gerne einbauen, ist eine Sache von ein paar Sekunden. Aber wie gesagt: Ich finde die Lösung nicht gut, denn dann resettet der AVR ununterbrochen wenn keine Daten gesendet werden. > Derzeit hängt der Avr unrettbar fest, wenn das > Protokoll unterbrochen wird oder man sendet dermassen viel Müll rüber, > dass selbst die Bitmap Funktion überläuft. Das stimmt nicht: Wie oben geschrieben: Man muss einfach nur Daten senden, damit die Funktion die erwartete Anzahl bekommt. Wenn man nicht weiß wieviele, dann einfach 0en senden, denn die werden als Befehl ignoriert.
Datum:
Vielleicht ist es eine bescheuerte Idee, aber wie wäre die Anwendung des SLIP-Protokolls? Lg Michael
Datum:
Das geht in die oben erwähnte Richtung, dass es feste Werte gibt die einen neuen Befehl ankündigen, ähnlich STX/ETX. Soll ich das ganze auf solch ein Protokoll umbauen (ähnlich dem das ich bei meinem 640x480 Controller verwendet habe)? Also alle Daten die ankommen sind Bild oder Textdaten, erst wenn ein bestimmtes Zeichen erkannt wird (z.B. der Escape Code 27), dann wird der darauffolgende Wert als Befehl interpretiert. Um den Datenwert 27 zu senden ist dieser 2x hintereinander zu übertragen. Das ganze hat dann den Nachteil, dass man nicht dumm die Bilddaten übertragen kann, sondern alle Bytes auf den Wert 27 prüfen muss, und diesen dann doppelt einfügen muss. Dies empfand ich als ziemlich nervig.
Datum:
>Christian J. schrieb: >> Meinetwegen kann man das auch mit dem WDT machen, dass er aus einer >> Empfangsschleife rausgeht, wenn keine neuen Bytes mehr kommen, jedoch >> müssen natürlich die Inhalte des Sram unverändert bleiben. Benedikt K. schrieb: >Kann ich gerne einbauen, ist eine Sache von ein paar Sekunden. Aber wie >gesagt: Ich finde die Lösung nicht gut, denn dann resettet der AVR >ununterbrochen wenn keine Daten gesendet werden. Ohne jetzt die Sourcen bzw. das Protokoll genau zu kennen, aber was spricht dagegen den WDT erst dann zu aktivieren, nachdem das erste Byte empfangen wurde und wieder zu deaktivieren, wenn alle Kommandos abgearbeitet wurden? Dann is ein einfacher Neueinstieg möglich, sollte ein Kommando abgebrochen werden und der ständige Reset wird vermieden, wenn der Host gerade keine Kommandos sendet.
Datum:
Ohne jetzt die Sourcen bzw. das Protokoll genau zu kennen, aber was spricht dagegen den WDT erst dann zu aktivieren, nachdem das erste Byte empfangen wurde und wieder zu deaktivieren, wenn alle Kommandos abgearbeitet wurden? --- Wenn der Avr einen solchen WDT hat, der sich abschalten lässt wäre das eine gute Lösung. Das Protokoll sollte einfach bleiben, so dass jeder damit umgehen kann.
Datum:
Angehängte Dateien:Ich habe mal den besagten Timeout eingebaut. Allerdings nicht global über den WDT, sondern nur lokal in der Schleife die die Bilddaten empfängt. Bei allen anderen Befehlen hängt das ganze also weiterhin, was meiner Meinung nach nicht schlimm ist, denn für die restlichen Befehle reichen worst case 8 nops. Notfalls kann ich das aber noch einfügen, es macht den Code halt etwas unleserlich und bläht diesen etwas auf. Im LCD Interrupt wird eine Variable runtergezählt, und sobald diese 0 erreicht wird die Empfangsschleife für Bilddaten verlassen und mit den normalen Befehlen/Daten weitergemacht. Dies hat den Vorteil, dass sich auf dem Display nichts verändert, da der Controller ja weiterläuft und nicht neu startet. Das Timeout ist momentan auf 1s eingestellt, kann aber zwischen etwa 1/100 bis 3s verändert werden. Die nächste Frage wäre dann noch die Baudrate: 57600 bei 16MHz ist grenzwertig (2,1% Fehler). Im 2x Modus reduziert sich der Fehler auf 0,8%, allerdings gefällt mir der 2x Modus aufgrund der 1x Abtastung nicht sonderlich, da hierdurch alles fehleranfälliger wird. Hier gibt es nun mehrere Alternativen: - andere (höhere?) Baudrate, wie 62,5kBaud, 125kBaud, 250kBaud, 500kBaud usw. - 18,432MHz Quarz für etwas mehr Rechenleistung und alle Standardbaudraten, dafür aber etwas außerhalb der Specs. - 2x Modus nehmen und fertig.
Datum:
Hallo, lass mal die Baudrate so, die anderen kann ich nicht einstellen. Mist, habe mein LPC2368 Board grad geschossen, der Proz ging in einer Rauchwolke auf ;-(((((((( Wird wohl dauern ein neues aus China zu kriegen.
Datum:
Das Verückte ist, dass er noch auf der Uart seinen Text ausgibt aber binnen 1s so heiss wird, dass man ihn nicht mehr anfassen kann.
Datum:
Info: Der LP Hersteller hat noch bis morgen Urlaub und daher noch nicht geantwortet. Es sind bisher 4 Zahlungen eingegangen. Danke dafür.
Datum:
Zwischenstand: Das Geld ist von allen bis auf einen eingetroffen. Leider habe ich bisher kein Feedback von Bilex-lp.com erhalten, auch auf Nachfrage nicht. Die Firma habe ich mir empfehlen lassen aber ich denke, dass es manchmal besser ist ein paar Euro mehr zu bezahlen und in Deutschland fertigen zu lassen statt in Rumänien. Die haben nicht mal eine Telefonnummer. Ok, das Geld habe Sie natürlich auch noch nicht. Erst Ware dann Kohle. Ich habe denen Frist gesetzt, danach werde ich woanders fertigen lassen. Ob es bei den 11,50€ dann bleibt weiss ich jedoch nicht.
Datum:
Es fehlen noch die Überweisungen von Michael Prader Wolfgang Friedl-Grimm Bitte nachholen. Bilex hat sich gemeldet, Platinen werden morgen eingestielt. Es werden 10 Stück Überhang werden, sind also noch welche zu haben. Wie steht es mit den Steckern? Benedikt, wärest Du vielleicht so nett und würdest mit einen programmierten AVR senden mit der neuen Software? Ich überweise Dir die Kosten dann sofort.
Datum:
Christian J. schrieb: > Benedikt, wärest Du vielleicht so nett und würdest mit einen > programmierten AVR senden mit der neuen Software? Kann ich machen, sag mir mal die genauen Parameter für Baudrate usw. die du haben möchtest. Vermutlich wäre es aber besser wenn du dir einen einfachen Programmer baust (die einfachen bestehen im Prinzip nur aus nem Stecker für den LPT), da ich davon ausgehe, dass es doch mal noch die ein oder andere Softwareänderung geben wird.
Datum:
Hi, ich hab 33 Stecker bei Digikey bestellt, da sie auch schon bezahlt sind, kann ich die Stückzahl nicht mehr erhöhen. Müsste Anfang der Woche in DL eintreffen. Wigbert
Datum:
Benedikt, bauen wollte ich gar nichts, fertig kaufen ist besser. Gibt es sowas wie Flashmagic + Programmierstecker fertig zu kaufen, also ohne grossen Aufwand die Dinger bespielen?
Datum:
Hallo, leider gibt es mit Bilex Probleme. Die verlangen Vorkasse und dazu bin ich nicht bereit, da diese Firma nicht in Deutschland ist und das auch sehr unüblich ist. Bezahlung erst wenn Ware geprüft wurde, das ist meine Vorstellung aus dem Geschäftsleben. Sollte ich mit denen nicht übereinkommen werde ich einen anderen Hersteller suchen, etwas beta-layout weil ich mit denen schon vor 15 Jahre gute Erfahrungen gemacht habe.
Datum:
Hallo Christian, besteht noch die Möglichkeit an Platinen und LCD-Stecker ranzukommen ? Gruß Jürgen
Datum:
Update: Mit Bilex nach Rümänien telefoniert und den Deal klar gemacht. Kohle ist überwiesen. Ja, es sind noch 10 Stück übrig. Bitte so verfahren, wie oben beschrieben.
Datum:
Angehängte Dateien:@Christian > Sollte ich mit denen nicht übereinkommen werde ich einen anderen > Hersteller suchen, etwas beta-layout weil ich mit denen schon vor 15 Jahre > gute Erfahrungen gemacht habe. Hallo Christian, Solltest Du den Hersteller wechseln, dann möchte ich die Gelegenheit nutzen und noch ne kleine Layout-Änderung einbringen. Mein Kollege, der Layouter ist, meinte: Es könnte evtl. mit den 10mil-Abständen Probleme geben. Um ungewollte Brücken zu vermeiden habe ich deshalb die Design-Rules mal auf 15mil verschärft, und die sich daraus ergebenden Fehler beseitigt. Die geänderten DRC-Rules habe auch beigelegt. Vor dem Ausführen der Ratsnest Funktion sollten diese geladen werden. Hier der neue Platinenstand. DRC ist jetzt wieder fehlerfrei. Gruß
Datum:
> Update: Mit Bilex nach Rümänien telefoniert und den Deal klar gemacht. > Kohle ist überwiesen. Kann man denen die neue BRD-Datei trotzdem noch geben?
Datum:
Habe sie hingeschickt aber keine Ahnung, ob das noch geht. Ist ein bisschen spät und ob das jetzt den Unterschied macht? Die Platine wäre ok sagten die. 8 Platinen sind noch übrig, zwei weitere Besteller kamen hinzu.
Datum:
Christian J. schrieb: > bauen wollte ich gar nichts, fertig kaufen ist besser. Gibt es sowas wie > Flashmagic + Programmierstecker fertig zu kaufen, also ohne grossen > Aufwand die Dinger bespielen? Es gibt so ziemlich alles zwischen schnell und selbstgebaut bis hin zur teuren, industrietauglichen Lösung: http://www.mikrocontroller.net/articles/AVR_In_Sys... Ob 10mil oder 15mil sollte eigentlich egal sein. Wenn die mit 10mil Probleme haben, dann wäre der Laden schon lange pleite. 8mil sollte heutzutage jeder Platinenhersteller können.
Datum:
Kannst Du mir einen Link zu einer Fertigplatine geben die ich bestellen kann, RS232 oder so? Software gleich dabei. Klingt doof aber icb will mich damit nicht befassen, aufbauen etc, es nur benutzen für diesen einen Zweck.
Datum:
Christian J. schrieb: > Kannst Du mir einen Link zu einer Fertigplatine geben die ich bestellen > kann, RS232 oder so? Software gleich dabei. Klingt doof aber icb will > mich damit nicht befassen, aufbauen etc, es nur benutzen für diesen > einen Zweck. Hier mal ein Link, ist


























