Forum: Projekte & Code Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen


von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

So könnte das ganze aussehen, wenn es aufgebaut ist und läuft.

von Thorsten (Gast)


Lesenswert?

Sehr beeindruckend. Danke fürs posten.

Gruß

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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

von Thorsten S. (whitenoise)


Lesenswert?

@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

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

Wirklich beeindruckend Benedikt,

toll das Farbenspiel mit dem "schwarzen" (ist es doch wohl) Display.

Wigbert

von Benedikt K. (benedikt)


Lesenswert?

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.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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.
1
mx = mittelpunkt X
2
my = mittelpunkt Y
3
4
x=mx
5
oldx = x-1
6
y=my+radius
7
while(x < mx+radius) {
8
 
9
 drawPixel(x,y) //rand zeichnen
10
 if (x != oldx) { //x != alter postion, sonst haben wir schon gemalt!
11
  oldy = y //y sichern
12
  while( y > my ) { //sind wir schon am mittelpunkt?
13
     y--; //nach unten gehen
14
     drawPixel(x,y) //pixel zeichnen
15
  }
16
  y=oldy //y wieder herstellen
17
 }
18
 oldx = x //altes x speichern um "doppelmalen" zu verhindern falls
19
          //sich x in dieser iteration nicht ändert
20
 x = newXKoord(x) //neue X berechnen
21
 y = newYKoord(y) //neue Y berechnen
22
}
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.

von Thomas P. (pototschnig)


Lesenswert?

Was ist das für ein controller-loses Display?

Mfg
Thomas Pototschnig

von Benedikt K. (benedikt)


Lesenswert?

Pollin: 120460 (mechanisch und elektrisch identisch zu 120471).

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

Hallo Benedikt,

>Bei der nächsten Version ist das aber drin.
Wirst Du die Hardware verändern?

Wigbert

von Benedikt K. (benedikt)


Lesenswert?

Nein, nur die Software.

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Ja, genau so. Die Zeilen und Spaltenzählung beginnt aber C typisch bei 
0.

von Sven (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Als SRAM findet irgendein schneller 32k x 8 SRAM mit 10-35ns Verwendung. 
Sowas hat Reichelt nicht.
Daher kann man in der lcd.c den RAM Zugriff ausbremsen. Dann kann man 
auch langsamere mit bis zu 90ns verwenden. Das wäre dann z.B. 62256-80 
von Reichelt.

von Sven (Gast)


Lesenswert?

Ok, danke. Dann würde dieser hier passen :

http://de.farnell.com/1271827/halbleiter/product.us0?sku=INTEGRATED-SILICON-SOLUTIONS-IS61LV256AL-10JLI

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

von Stefan E. (sternst)


Lesenswert?

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?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Stefan E. (sternst)


Lesenswert?

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!

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Kleines Update:
Jetzt mit Routinen um einen (gefüllten) Kreis zu zeichnen.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@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

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

war wohl bisher der erste Nachbauer,
ansonsten:

ohne Worte.

Wigbert

von Benedikt K. (benedikt)


Lesenswert?

Habe ich da was im Schaltplan vertauscht, oder hattest du was falsch ?

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von ChrisLiebig (Gast)


Lesenswert?

@ Wigbert Picht

Darf man fragen um welches Display es sich genau handelt? Eine genaue 
Bezeichnung wäre echt Klasse!

von Gerhard (Gast)


Lesenswert?

@ Wigbert

kannst du das Layout veröffentlichen?

Gerhard

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

stimmt, ist nirgends erwähnt

von Pollin
Best.Nr. 120 471

Wigbert

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

Gerhard wird demnächst kommen,
muss nach ein paar Schönheitsfehler abändern

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Andreas K. (a-k)


Lesenswert?


von Benedikt K. (benedikt)


Lesenswert?

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).

von Andreas K. (a-k)


Lesenswert?

Das Datenblatt ist in dem Pollin-Downloadpaket auch drin (in "Daten").

von Jens (Gast)


Lesenswert?

@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.

von Andreas K. (a-k)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von ChrisLiebig (Gast)


Lesenswert?

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?

von Andreas K. (a-k)


Lesenswert?

Apropos Datasheet: Laut Sharp ist schon der kleinste Überschwinger am 
Eingang jenseits der Spezifikation. Ist nämlich nur 80-100% Vdd 
zulässig. ;-)

von Andreas K. (a-k)


Lesenswert?

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).

von Benedikt K. (benedikt)


Lesenswert?

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/320240_lcd_4bpp_sch.jpg

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.

von ChrisLiebig (Gast)


Lesenswert?

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?

von Andreas K. (a-k)


Lesenswert?


von Andreas K. (a-k)


Lesenswert?

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.

von ChrisLiebig (Gast)


Lesenswert?

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?

von Andreas K. (a-k)


Lesenswert?

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.

von ChrisLiebig (Gast)


Lesenswert?

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?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Andreas K. (a-k)


Lesenswert?

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.

von Andreas K. (a-k)


Lesenswert?

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?).

von Andreas K. (a-k)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

Und selbst dann sind es immer noch -23V und keine +23V...

von jens (Gast)


Lesenswert?

@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!

von Benedikt K. (benedikt)


Lesenswert?

DISP ist ONOFF, Yd ist Frame. Die restlichen Bezeichnungen passen zu 
denen im Schaltplan.

von CC (Gast)


Lesenswert?

Hallo,

kann mir jemand einen passenden CCFL Inverter empfehlen?

von Andreas K. (a-k)


Lesenswert?

Beispielsweise Pollin 700 637 und 700 638. Sind für 12V Betrieb.

von Frager (Gast)


Lesenswert?

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?

von Michael S. (micha-s)


Lesenswert?

Wie siehts denn mit nem fertigen Layout aus? Hat da jemand schon was 
fertiges?

von Layout (Gast)


Lesenswert?


von kay (Gast)


Lesenswert?

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

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

und am HC74 Pin 8 an 12

Wigbert

von kay (Gast)


Lesenswert?

ja am hc74 pin8 und pin12 sind verbunden

kay

von Gast (Gast)


Lesenswert?

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?

von Benedikt K. (benedikt)


Lesenswert?

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.

von kay (Gast)


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von kay (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von kay (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Nicht ganz:
Die X Koordinaten bestehen aus 2 Bytes, da die Breite mit 320 Pixeln 
nicht in ein Byte passt.

von kay (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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).

von kay (Gast)


Lesenswert?

danke erstmal für die hilfe,
werd mich dann mal einarbeiten
danke
mfg
kay

von Sven K. (Gast)


Lesenswert?

@Benedikt:

Müsste das nicht so heissen ? Also 1 und 16 vertauscht ?

29
0
1
10
16
1
50
0
255

Gruß Sven

von Benedikt K. (benedikt)


Lesenswert?

Ja, stimmt. Da hab ich die 2 Zeilen vertauscht.

von Alexander S. (agentbsik)


Lesenswert?

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

von kay (Gast)


Lesenswert?

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

von kay (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von kay (Gast)


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Kay B. (newbie)


Angehängte Dateien:

Lesenswert?

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

von kay (Gast)


Lesenswert?

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

von kay (Gast)


Lesenswert?

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

von Tobias H. (hse)


Lesenswert?

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

von rudi (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

> 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):
1
void glcd_writechar(unsigned short xpos, unsigned char ypos, unsigned char c, unsigned char tcol, unsigned char bcol)
2
{  unsigned char i,j;
3
  for (i=0; i<8; i++)
4
  {  for (j=0; j<6; j++)
5
    {  if (pgm_read_byte(&font6x8[c][i])&(32>>j))
6
        lcd_setpixel(xpos+j,ypos+i,tcol);
7
      else
8
        lcd_clrpixel(xpos+j,ypos+i,bcol);
9
    }
10
  }
11
}

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.

von Tobias H. (hse)


Lesenswert?

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 ;)

von Sachich N. (dude) Benutzerseite


Lesenswert?

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!

von Benedikt K. (benedikt)


Lesenswert?

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.html#faq_reg_usage

> 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.

von Alexander S. (agentbsik)


Angehängte Dateien:

Lesenswert?

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/Fotos%20&%20Videos/Kontrast.ASF

(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.)

von Benedikt K. (benedikt)


Lesenswert?

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.

von Alexander S. (agentbsik)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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%20Improvements%20for%20STN%20LCD.pdf

von Alexander S. (agentbsik)


Lesenswert?

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

von Alexander S. (agentbsik)


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Alexander Sewergin wrote:
> Muss ich diese c. Files irgendwo einbinden?

Ja und die .S auch.

von Nils (Gast)


Angehängte Dateien:

Lesenswert?

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...

von Benedikt K. (benedikt)


Lesenswert?

Ja, die Ansteuerung ist möglich.

von Nils (Gast)


Lesenswert?

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??

von Benedikt K. (benedikt)


Lesenswert?

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.

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Wieso lädst du den Zähler immer wieder neu innerhalb der Schleife?
Das brne und das dec stehen auch an komplett falschen Stellen.

von Kay B. (newbie)


Lesenswert?

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:

von Benedikt K. (benedikt)


Lesenswert?

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.
1
ldi ZL, low(2*BMP)
2
ldi ZH, high(2*BMP)
3
4
ldie XL, low(ramstart)
5
ldie XH, high(ramstart)
6
7
ldi r16, count
8
9
Loop:
10
  lpm temp, Z+
11
  st X+, temp
12
  dec r16
13
  brne Loop

von Kay B. (newbie)


Lesenswert?

werd das morgen mal versuchen

danke nochmals
mfg
kay

von Kay B. (newbie)


Angehängte Dateien:

Lesenswert?

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?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Kay B. (newbie)


Lesenswert?

egal wie ich die lese-schleife schreibe,es kommt wiegeseagt nur 
pixelsalat raus

schade das das nicht funktioniert

mfg
kay

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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/

von Kay B. (newbie)


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Probier das mal

von Kay B. (newbie)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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)

von Nils (Gast)


Lesenswert?

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.) ?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Kay B. (newbie)


Lesenswert?

hallo,
 ich hätte Interresse

mfg

von Max (Gast)


Lesenswert?

Hallo,

hat wer 2 von diesen Winbond S-Rams abzugeben??

Dann hätte ich auch interesse an einer Platine

MFG Max

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

@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 ?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Picht (Gast)


Lesenswert?

>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

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

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 ?

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

Hier nochmal beide Seiten der Platine.

von Picht (Gast)


Angehängte Dateien:

Lesenswert?

>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

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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).

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

Ok, habe es hinzugefügt.

von Blitz L. (blitzlampe)


Lesenswert?

So war heut nochmal bei Bilex und hab jetzt einen Preis von 8€ für 
folgende Platine
1
12 x LEITERPLATTEN   (ergibt 24 einzelne Platinen)
2
2-Lagig Durchkontaktiert
3
100x160 mm
4
Materialstärke: FR4 1.55mm;
5
Oberfläche: Chemisch Gold(RoHs konform)
6
Cu Außenlagen Enddicke: 70 µm;
7
Lötstop: doppelseitig grun
8
Positionsdruck: ohne
9
  
10
Netto:  147.39 €
11
MwSt:    29.48 €
12
Brutto: 176.87 € 
13
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.

von Kay B. (newbie)


Lesenswert?

hallo Blitz Lampe,
ich hätte gern 6 stück.
mfg kay

von Blitz L. (blitzlampe)


Lesenswert?

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.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ich wär auch mit 2 Platinen dabei (hab nur ein Display, aber man weiß ja 
nie ;) )

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Ach so, habe jetzt nicht darauf geachtet, aber mache eine 
Schriftmarkierung was oben und was unten ist auf den Platinen.

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

Habe heut noch die gewünschte Kennzeichnung der Seiten hinzugefügt. 
Hoffe das es so gemeint war.
Ansonsten einfach anmeckern :-)

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

Hoffe man erkennt es hier etwas besser.

Im Top Layer steht "TOP + Bauteilseite" und im Bottom Layer habe ich 
"Bottom + Lötseite" eingefügt.

von Benedikt K. (benedikt)


Lesenswert?

Versuchs mal als png oder gif, das sollte besser lesbar sein, und 
kleinere Dateien erzeugen.

von Hugga Bugga (Gast)


Lesenswert?

>Versuchs mal als png oder gif, das sollte besser lesbar sein, und
>kleinere Dateien erzeugen.

Ist Falk im Urlaub ?

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

Habe es als Eagle Datei und als als Bild ins das ZIP File gepackt.

von Florian K. (makrocontroller)


Lesenswert?

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_entry.php?id=13083&page=1&category=all&order=time
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/flybackdriverandrineriji7.jpg
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 ?

von Blitz Lampe (Gast)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Florian K. (makrocontroller)


Lesenswert?

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=ODc2ODY0OTk=
oder
http://www.pollin.de/shop/suche_ergebnis.php?S_TEXT=700638&ts=0
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.

von nix (Gast)


Lesenswert?

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.

von Blitz L. (blitzlampe)


Lesenswert?

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!!!!!

von Rainer D. (dl1auz)


Lesenswert?

Hallo
falls noch verfügbar, würde ich  2 Platinen nehmen
Rainer

von Adalbert (Gast)


Lesenswert?

Hallo
falls noch verfügbar, würde ich auch 2 Platinen nehmen
Adalbert

von Blitz L. (blitzlampe)


Lesenswert?

Hallo,

habe heut eine Mail bekommen, die Platinen sollen am 26-27.01 bei mir 
einschlagen, werde sie dann umgehend an euch verschicken.

von Blitz L. (blitzlampe)


Angehängte Dateien:

Lesenswert?

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.

von Johannes M. (johannesm)


Lesenswert?

Ich hätte gerne die beiden Platinen. Habe dir eine Nachricht geschickt.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

@Blitzlampe: Danke, die Platinen sind angekommen.

AVRNix

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Hallo,
Welche Häkchen müssen in PonyProg gesetzt werden für die 
Schaltung/Platine von Blitzlampe?

Danke für die Hilfe.

von Blitzlampe (Gast)


Lesenswert?


von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Mh anscheinend ist die PIN Belegung gleich.

Em51M256 datenblatt:
http://www.datasheetarchive.com/pdf-download/Datasheet-028/DSA00491389.html

von Benedikt K. (benedikt)


Lesenswert?

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.

von Blitzlampe (Gast)


Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

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;
}

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Ja, der sollte gehen. Allerdings ist die Software dann etwas langsamer.

von Sikipaa (Gast)


Lesenswert?

Hallo
gibts irgendwann nochmal eine bestell aktion ?
würde mitmachen die displays gibts ja noch

von karl (Gast)


Lesenswert?

@Benedikt:

Es ist dir möglich einen kleinern Zeichensatz zu Integrieren?

Gruss
karl

von Benedikt K. (benedikt)


Lesenswert?

Möglich ist alles.

von karl (Gast)


Lesenswert?

machts du das auch ?

gruss
Karl

von Benedikt K. (benedikt)


Lesenswert?

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.

von Johannes M. (johannesm)


Angehängte Dateien:

Lesenswert?

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.

von Maximilian K. (langerhans)


Lesenswert?

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

von Blitz L. (blitzlampe)


Lesenswert?

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.
1
Bauteil Wert       Device          Package      Description                                                    
2
C1      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
3
C2      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
4
C3      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
5
C4      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
6
C5      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
7
C6      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
8
C7      100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
9
C8      27p        C-EUC1206       C1206        CAPACITOR, European symbol                                     
10
C9      27p        C-EUC1206       C1206        CAPACITOR, European symbol                                     
11
C10     100n       C-EUC1206       C1206        CAPACITOR, European symbol                                     
12
C11     100µ       CPOL-EUE5-5     E5-5         POLARIZED CAPACITOR, European symbol                           
13
C12     47µ        CPOL-EUE5-5     E5-5         POLARIZED CAPACITOR, European symbol                           
14
C13     100µ       CPOL-EUE5-5     E5-5         POLARIZED CAPACITOR, European symbol                           
15
C14     1n         C-EUC1206       C1206        CAPACITOR, European symbol                                     
16
C15     10µ        CPOL-EUE5-5     E5-5         POLARIZED CAPACITOR, European symbol                           
17
C16                CPOL-EUE5-5     E5-5         POLARIZED CAPACITOR, European symbol                           
18
D1      1N4148     1N4148          DO35-10      DIODE                                                          
19
D2      1N4148     1N4148          DO35-10      DIODE                                                          
20
D3      1N4148     1N4148          DO35-10      DIODE                                                          
21
IC1     MEGA8515-P MEGA8515-P      DIL40        MICROCONTROLLER                                                
22
IC2     74AC02N    74AC02N         DIL14        Quad 2-input NOR gate                                          
23
IC3     74HC74N    74HC74N         DIL14        Dual D type positive edge triggered FLIP FLOP, preset and clear
24
IC4     74HC157N   74HC157N        DIL16        Quadruple 2-line to 1-line data SELECTOR/MULTIPLEXER           
25
IC5     74AC573N   74AC573N        DIL20        8-bit D latch BUS DRIVER                                       
26
IC6                62256P          DIL28-6      MEMORY                                                         
27
IC7                78XXS           78XXS        VOLTAGE REGULATOR                                              
28
IC8     MC34063AP  MC34063AP  DIL08                                                                       
29
JP1                JP1E            JP1          JUMPER                                                         
30
JP2                PINHD-1X4       1X04         PIN HEADER                                                     
31
JP3                PINHD-1X12      1X12         PIN HEADER                                                     
32
K1      AQV21SMD   AQV21SMD        DIL06SMD     PhotoMOS Relay NAiS                                            
33
L1      470µ       L-EU0204/7      0204/7       INDUCTOR, European symbol                                      
34
LED1               LEDCHIPLED_1206 CHIPLED_1206 LED                                                            
35
Q1                 CRYSTALHC49U-V  HC49U-V      CRYSTAL                                                        
36
Q2      BC327      BC327           TO92         PNP Transistor                                                 
37
R1      2,2k       R-EU_M1206      M1206        RESISTOR, European symbol                                      
38
R2      47k        R-EU_M1206      M1206        RESISTOR, European symbol                                      
39
R3      1          R-EU_M1206      M1206        RESISTOR, European symbol                                      
40
R4      47k        R-EU_M1206      M1206        RESISTOR, European symbol                                      
41
R5      3,3k       R-EU_M1206      M1206        RESISTOR, European symbol                                      
42
R6      330        R-EU_M1206      M1206        RESISTOR, European symbol                                      
43
R7      330        R-EU_M1206      M1206        RESISTOR, European symbol                                      
44
R8      100        R-EU_M1206      M1206        RESISTOR, European symbol                                      
45
R9      0          R-EU_0207/10    0207/10      RESISTOR, European symbol                                      
46
R10     0          R-EU_0207/10    0207/10      RESISTOR, European symbol                                      
47
R11     560        R-EU_M1206      M1206        RESISTOR, European symbol                                                                                                             
48
X2                 W237-102        W237-102     WAGO SCREW CLAMP

von Maximilian K. (langerhans)


Lesenswert?

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

von Blitz L. (blitzlampe)


Lesenswert?

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.

von Vul Kain (Gast)


Lesenswert?

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

von Wigbert (Gast)


Lesenswert?

Conrad,
AQV212

Wigbert

von Vul Kain (Gast)


Lesenswert?

gibt es keine alternativen von reichelt oder pollin?
wegen einem IC extra bei conrad zu bestellen scheint mir recht 
schwachsinnig^^

von Blitz L. (blitzlampe)


Lesenswert?

Das Teil kannst du auch weglassen oder ersetzt es durch einen Jumper. Es 
dient nur dazu das man die Kontrastspannung ein- ausschalten kann.

von Vul Kain (Gast)


Lesenswert?

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

von Vul Kain (Gast)


Angehängte Dateien:

Lesenswert?

sry...der Anhang...

von Benedikt K. (benedikt)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Den Optomosfet kannst du bei den Displays weglassen.

von Sebastian (Gast)


Lesenswert?

Sehr gut. Dankeschön.

von Sebastian (Gast)


Lesenswert?

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

von Sebastian (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.