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


von Sebastian (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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

von Sebastian (Gast)


Lesenswert?

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

von gast (Gast)


Lesenswert?

hallo,
wäre es möglich das glcd über akkus zuversorgen.

mfg

von Christian J. (Gast)


Lesenswert?

Hallo,

da ich von AVR keine Ahnung habe, diesen nicht programmieren kann etc 
(ich mache nur noch ARM7), wäre es möglich eine Platine mit fertig 
programmiertem AVR zu bekommen, so dass ich diese als Black Box mit der 
Uart meines ARM7 System verbinden kann?

Gruss,
Christian

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Biete dafür auch 640x480 (2-Halbbilder) LCD Displays monochrom (ablesbar 
ohne Hintergrundbeleuchtung) an. Interface standard.

von Sebastian (Gast)


Lesenswert?

>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

von Christian J. (elektroniker1968)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

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)

von Christian J. (elektroniker68)


Lesenswert?

Vcc
MOSI
MISO
SCK
Reset
GND


Ist das so richtig?

Kommt Leute, ich will gleich routen..... je schneller kriegt ihr die 
Platinen.

von Blitzlampe (Gast)


Lesenswert?

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

von Blitzlampe (Gast)


Lesenswert?

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?

von Christian J. (elektroniker68)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@Christian J. (elektroniker68)
die Molex- Stecker, falls Du das Routen noch mal vergleichen willst

http://de.farnell.com/molex/52271-1279/socket-ffc-fpc-smt-1mm-12way/dp/1079952?_requestid=295205

Wigbert

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Ja, die sind mehr als ausreichend schnell (12ns Zugriffszeit und 5 bzw, 
3ns Output Enable).

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@Benedikt
Dank Dir

gut 0,80 Euro(Brutto) das Stück, allerdings in SOJ oder TSOP

Ich glaub es gibt DIP/SOJ Adapter

Wigbert

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

Christian J. (elektroniker1968)
na, ja
schlag ein von Digikey vor. Den kriege ich dann auch her


Wigbert

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Christian J. (elektroniker1968)


Lesenswert?

Folgendes, ich habe einen stehenden mit DIP Footprint:

Hirose: FH21-12S-1DSA

kannste den besorgen?

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Sähe dann so aus, also beide Stecker.... mal eben auf die Schnelle 
gemacht.

von Christian J. (elektroniker1968)


Lesenswert?

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)

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

Hirose: FH21-12S-1DSA

Digikey:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=HFF12T-ND

ist aber nicht senkrecht, seltsam?

Ware wird nur auftragsbezogen beschafft, da erstmal nicht bezahlbar

Wigbert

von Christian J. (elektroniker1968)


Lesenswert?

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.dll?Detail&name=609-1939-ND

Passt auch vom Footprint her

Warten wir erstmal ab wie viele Bestellungen kommen. Die 10 müssen schon 
voll werden.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

achja , wird durchkontaktiert, ich war auf SMD aus

Wigbert

von Kh L. (loeter)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (elektroniker1968)


Lesenswert?

Also spendieren wir noch einen Reset Pin am Uart Stecker....
(PS: Der Arm7 hat ein Flag, wenn in der Uart nichts mehr ankommt :-)

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Blitz L. (blitzlampe)


Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

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

von Christian J. (elektroniker68)


Lesenswert?

Blitzlampe.,... schick mir bitte eine e-mail, damit ich Deine 
Mailadresse habe für das Layout!

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Christian J. (elektroniker68)


Lesenswert?

Wigbert,

dann bestell doch einfach mal 25 und sende sie an mich. Geld übeweise 
ich Dir dann, lege jeder Platine einen solchen bei.

Ok?

von Christian J. (elektroniker1968)


Lesenswert?

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

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hier die Dateien für Eagle zum Durchschauen.

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

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

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

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

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

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.

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

Bestell den mal, wenn er nicht passt geht das auf meine Kappe.
Schick mir mal ne Mail, damit die lieferadresse auf mich geht.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

führ mal ratsnest aus, dann wird aus dem rechteck eine lückenfüllende 
fläche ;)

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

>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

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

der Gerade,
falsche Seite erwischt

Wigbert

von Kh L. (loeter)


Lesenswert?

@ 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

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

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

von Christian J. (Gast)


Lesenswert?

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.

von Kh L. (loeter)


Lesenswert?

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?

von Kh L. (loeter)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Kh L. (loeter)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hier mal ein Entwurf, 80 x65mm

von Christian J. (elektroniker1968)


Lesenswert?

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)

von Christian J. (elektroniker1968)


Lesenswert?

Bestellung von 20 Platinen ist gerade abgeschickt worden. Bitte jetzt 
auch die FPC Stecker bestellen.

von Christian J. (elektroniker1968)


Lesenswert?

Habe auf 30 Platinen aufgestockt, da noch weitere Bestellungen kamen.... 
bitte 30 FPC Stecker bestellen, Ende nächster Woche sind die Platinen 
da!

von Kh L. (loeter)


Lesenswert?

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

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

>Bitte 32 FPC Stecker

bis heut Abend kann die Steckeranzahl ja noch korrigiert werden

Wigbert

von Christian J. (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Michael P. (praderbz)


Lesenswert?

Vielleicht ist es eine bescheuerte Idee, aber wie wäre die Anwendung des 
SLIP-Protokolls?

Lg
Michael

von Benedikt K. (benedikt)


Lesenswert?

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.

von O. H. (ohagendorf)


Lesenswert?

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

von Christian J. (Gast)


Lesenswert?

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.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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.

von Christian J. (elektroniker68)


Lesenswert?

Info: Der LP Hersteller hat noch bis morgen Urlaub und daher noch nicht 
geantwortet. Es sind bisher 4 Zahlungen eingegangen. Danke dafür.

von Christian J. (elektroniker68)


Lesenswert?

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.

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

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

von Christian J. (elektroniker68)


Lesenswert?

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?

von Christian J. (elektroniker68)


Lesenswert?

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.

von Juergen G. (Gast)


Lesenswert?

Hallo Christian,

besteht noch die Möglichkeit an Platinen und LCD-Stecker ranzukommen ?

Gruß Jürgen

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

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

von Kh L. (loeter)


Lesenswert?

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

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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_System_Programmer


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.

von Christian J. (elektroniker1968)


Lesenswert?

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.

von Bernd S. (drchip)


Lesenswert?

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 genau für das 320x240.

http://www.bue.de/produkte-und-dienstleistungen/mt-gr.html

Das MT/GR S Board

Bernd

von Christian J. (elektroniker1968)


Lesenswert?

Hallo Bernd,

die kenne ich, die gibts auch von Electronic Assembly, kosten so runde
180€ und beliefern auch keine Privatleute. Es gibt ohnehin nichts, was 
es nicht gibt, wenn man bereit ist das zu bezahlen. Ob es das Hobby wert 
ist sei dahingestellt. Das von Benedikt ist schon korrekt und vor allem 
Open Source.

Ich meinte nur den Programmer für den AVR.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@Christian J. (elektroniker1968)
>Die Stecker sind leider auch noch nicht hier

kein Problem, Proformarechnung hast Du, nach Zahlungseingang
verschicke ich die Ware

Wigbert

von Christian J. (elektroniker1968)


Lesenswert?

Habe ich da was verpasst? Ich habe keine e-mail hier mit einer Rechnung. 
Bitte sende diese nochmal an admin@der-scirocco.de.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@Christian J. (elektroniker1968)
schon geschehen.

Wigbert

von Nichtbezahler (Gast)


Lesenswert?

> Mit Ausnahme eines Nichtbezahlers haben alle bezahlt,
> Der Nichtbezahler hat dann leider Pech gehabt.
Das Geld ging letzte Woche Mittwoch raus. Also gib mal den Banken noch 
etwas Zeit, es eilt ja nicht da du offensichtlich auch noch keine Ware 
bekommen hast.

Bitte den Namen oben editieren und unkenntlich machen.

von Benedikt K. (benedikt)


Lesenswert?

Da der Beitrag nicht mehr editiert werden kann, habe ich diesen mal 
gelöscht, hier ist der Inhalt mit dem Namen unkenntlich gemacht:

Christian J. schrieb:
> Update:
>
> Mit Ausnahme eines xxx haben alle bezahlt, xxx hat dann leider
> Pech gehabt.
>
> Die Platinen sind leider noch nicht da, finde ich schon etwas heftig, da
> die 5 AT garantieren. Die Stecker sind leider auch noch nicht hier
> angekommen, Adresse hatte ich aber geschickt.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

Überweisung des Nichtbezahlers ist jetzt da, kam gestern wohl noch rein. 
Ich werde denen mal Druck machen, dass die liefern.

von Gassst (Gast)


Lesenswert?

ob das alles was wird???????????????

von Sebastian (Gast)


Lesenswert?

Hallo,

hab dem Code ne Erweiterung zum entprellen einer Tastenmatrix 
hinzugefügt.
Ich denke zum Debuggen ist das dann super. Display und Taster mal 
schnell an ein Projekt unkompliziert über die UART anschließen - dürfte 
einiges vereinfachen.
Ist für eine 2*4 Matrix, also 8 Taster. Der entprellte Zustand wird bei 
jedem Wechsel über UART ausgegeben. 2*4 Tasten, weil ich die anderen 2 
Pins wahrscheinlich noch brauch, 8 Taster für mich reichen und der 
Aufwand für eine neunte Taste bei 3*3 unverhältnismäßig hoch gewesen 
wäre. Außerdem müsste man sich bei mehr als 8 Tastern schon wieder 
gedanken über das Interface machen.

Ich würde das gerne hier online stellen. Hatte aber etwas probleme 
Benedikts Sourcen im AVR Studio (mit gcc) als Projekt zu öffnen. 
Dementsprechend schaut das ganze momentan sehr wild aus.
Wenn mir jemand erklärt, wie das zueg sauber öffnen kann stell ich meine 
Sourcen gerne hier rein.

Sebastian

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Ich musste gerade feststellen, dass die neueren Versionen von WinAVR
12Bytes mehr Stack verschlingen als die 2007er Versionen. Somit lag der
komplette worst case SRAM Verbrauch bei 518 Bytes was in ungünstigen
Situationen (der Timer Interrupt tritt auf, während eine Box gezeichnet
wird und er befindet sich gerade in der Set Pixel Routine) zu Problemen
führt.
Daher habe ich int main(void) __attribute__((OS_main)); dem Code 
hinzugefügt, um das Sichern der Register vor dem Aufruf von main zu 
unterdrücken. Damit werden 15 Bytes eingespart, so dass nun wieder ein 
klein wenig mehr Platz im SRAM ist.

Die älteren Versionen von WinAVR können damit nichts anfangen, daher 
wird dieses Attribut mit einer Warning ignoriert. Dies macht aber 
nichts, denn bei denen reicht der RAM auch so.

Im Zweifelsfall kann man den Stack hiermit prüfen:
Beitrag "StackViewer (RAM Rechner) für WinAVR"
Damit sollte mit der 20090313 Version ein Wert von 503 Bytes rauskommen.

von Sebastian (Gast)


Lesenswert?

/** Size of the circular receive buffer, must be power of 2 */
#define UART_RX_BUFFER_SIZE 250

Passt doch nicht ganz zam, oder? Power of 2 heißt doch 2-er Potenz, 
demnach wäre 128 und 256 möglich. Nachdem 256 zu groß ist also 128. Oder 
sind hier tatsächlich vielfache von 2 gemeint?

von Benedikt K. (benedikt)


Lesenswert?

Die Kommentare passen nicht mehr ganz. Das ganze war mal die UART Lib 
von Peter Fleury, mittlerweile ist allerdings nicht mehr viel von dem 
eigentlichen Grundgerüst davon übrig geblieben, da ich alles etwas an 
meine Bedürfnisse angepasst habe (so wie z.B. das Hardware Handshaking 
wenn der Puffer voll wird). Jetzt sind damit auch beliebige UART 
Puffergrößen möglich.

von Gast (Gast)


Lesenswert?

In uart.h (62)heißt es:
1
/** Size of the circular receive buffer, must be power of 2 */
2
#define UART_RX_BUFFER_SIZE 256

Wo steht denn diese 250?

http://en.wikipedia.org/wiki/Power_of_two

von Benedikt K. (benedikt)


Lesenswert?

Das war eine Version die ich wieder gelöscht habe, da mir kurz darauf 
eingefallen ist, dass ich diesen Trick mit den Registern vor main machen 
kann, und so nicht den UART Empfangspuffer zu verkleinern brauche.

von Sebastian (Gast)


Lesenswert?

In der aktuellen Version (die von heute) steht genau an der Stelle ein 
Puffer von 250 Byte. Aber Benedikt hat das ja schon geklärt.

Aber nochwas: Wenn ich die aktuelle Version durch StackView schicke 
bekomm ich immer 483 Byte Ramverbrauch. Sowohl mit der Comilierten 
version von Benedikt als auch wenn ich es selbst mit Version 20090313 
compiliere.

Sebastian

von Benedikt K. (benedikt)


Lesenswert?

Was für eine Optimierung hast du eingestellt?
-0: geht nicht, da zu wenig Flash
-1: 513
-2: 503
-3: 484
-S: 469

Der Stackverbrauch alleine schwankt also zwischen 75 und 119 Bytes. Das 
finde ich schon recht heftig.
Ich verwende meinst -2 da die -S ab und zu dazu tendiert anstelle von 
Inline lieber eine Bibliotheksfunktion aufzurufen, auch wenn dies sehr 
viel langsamer ist.

von Sebastian (Gast)


Lesenswert?

Hab das Makefile benutzt, das im zip dabei ist, also O2. Aber auch wenn 
ich die ELF aus dem zip durch StackViewer schicke komme ich auf 483 
Byte.

von Benedikt K. (benedikt)


Lesenswert?

Zeigt das Programm zufällig irgendwelche Errors oder Warnings an?
Falls nein, poste mal bitte die erzeugte calltree.txt.
Eigentlich müsste nämlich das selbe rauskommen.

Ich habe mal die verschiedenen Optimierungsstufen verglichen:
-0 ist eindeutig das schlechteste, ist klar.
-1 ist etwas besser aber auch noch suboptimal.
-s, -2 und -3 sind geschwindigkeitsmäßig ähnlich. Die lcd_init (die auch 
das Begrüßungsbild erzeugt) benötigt bei allen Varianten 207,8 +/-0,1ms. 
Dies dürfte vor allem daran liegen, dass die häufig verwendeten 
Funktionen in Assembler geschrieben sind, und daher bei allen Varianten 
identisch sind.
Der Geschwindigkeitsvorteil der -2 Version wird ziemlich durch das 
vermehrte sichern der Register kompensiert, so dass die -s Version 
aufgrund des geringeren Stack Verbrauchs die beste sein dürfte.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@ Christian J. (elektroniker1968)
Dank Dir, die Stecker sind per DHL zu Dir unterwegs.

Wigbert

von Sebastian (Gast)


Lesenswert?

Ich denke es hat sich erledigt. Ich hatte die version mit 250 Byte UART 
Fifo runtergeladen. Hab mir die Zip also genau zum falschen Zeitpunkt 
gezogen. Dass du das zip nochmal aktualisiert hast ist mir erst jetzt 
aufgefallen. Kann jetzt nicht sagen, was ich mit der neuen Version an 
Ram-Verbrauch bekomme, weil ich hier kein Studio/gcc hab, aber ich denke 
mal es sollte dann passen.

Sebastian

von Benedikt K. (benedikt)


Lesenswert?

Trotzdem ist es seltsam. Diese Version hatte ich auf exakt 511 Bytes 
getrimmt. Bei 483 Bytes wären die 12 Bytes zusätzlich nämlich egal.

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Fehlermeldungen gibts keine. Hab jetzt mal das Projekt wie ichs im 
Studio compiliert hab angehängt. Ist die version mit 250 Byte UART FIFO. 
Im Zip sind außerdem die Calltree und die StackView-version mit der ich 
das erzeugt habe, damit man auch alles nachvollziehen kann.

Ich denke aber, das register-sichern vor der Main zu unterdrücken 
schadet keinesfalls. Erst recht wenn jemand erweiterungen schreiben will 
und nicht wirklich über den Ram nachdenkt.

Was mir grad noch auffällt: Kann es sein, dass du deine Version vom 
StackViewer noch nicht online gestellt hast? Bekomme nämlich auch bei 
der aktuellen LCD-Version mit 256Byte UART FIFO nur 475 Byte 
Ram-Verbrauch.

Sebastian

von Christian J. (elektroniker1968)


Lesenswert?

Könnte mal jemand die letzte Version der Software online stellen? Ich 
weiss immer noch nicht wie ich einen programmierten Chip kriege :-(

Ach ja: Die Platinen sind seit dem 13.5. unterwegs nach Auskunft von 
Bilex. Kann sich ja nur noch um Tage handeln, bis die eintrudeln. 
Erfreulichweise sind auch alle Zahlungen da.

Es sind noch 4 Platinen übrig.

von Benedikt K. (benedikt)


Lesenswert?

Die Software ist hier:
http://www.mikrocontroller.net/attachment/51086/lcd_con_320x240.zip

Den Chip schicke ich heute weg, ich musste erstmal passende 
Luftpolsterumschläge besorgen, da ich mit normalen Briefumschlägen bei 
so dicke Sachen schlechte Erfahrungen gemacht habe.

von Christian J. (elektroniker1968)


Lesenswert?

Hi,

dann sende mir auch Deine Kontodaten per e-mail. Die Stecker sind heute 
schon angekommen, danke für den schnellen versand.  Leider passen sie 
nicht auf das Kabel...... :-(

Quark.... Die Schuhe passen wie angegossen :-)

Versand geht los, sobald ich die Platinchen endlich habe.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Tata...... die Post war da !

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Es wächst und gedeiht, leider noch nicht alle Bauteile zusammen....

Der Elko rechts verdeckt leider etwas das Bohr-Loch, denke ich werde die 
Platinen nochmal einstampfen und neue machen lassen, sowas geht ja gar
nicht ;-)

PS: Es sind noch 3 Platinen zu haben, jedoch ohne FCP Stecker. Die
sind alle.

von Benedikt K. (benedikt)


Lesenswert?

Ich würde die Platine so nicht in Betrieb nehmen:
Der mega8515 steckt falsch rum drin.

von Christian J. (elektroniker1968)


Lesenswert?

Das war nur fürs Foto. Inbetriebnahme natürlich wie immer ohne ICs, 
durchmessen der Spannungen und dann erst die ICs rein.

Für welche RAM Zeit sind die Delays denn eingestllt? Ich habe nur noch 
uralte SRAM hier, vermutlich so 8 Jahre alt. Keine Ahnung ob die 
funktionieren.

Ach ja, es gibt noch einige Punkte:

- R8 hat 1 Ohm?
- Ein Kondensator in der Liste hat keinen Wert
- Kann der Ladekondesator der Spg.pumpe 100uF sein? Grössere passen 
leider nicht rein.
- Kann ich auch eine 180uH Spule nehmen? 470uH scheint mir etwas viel zu 
sein. Von den 180uH habe ich hunderte, die kann ich beilegen.
- Kann der 100 Ohm Widerstand am BC327 auch 150 Ohm sein? Warum sind die 
Werte an der Basis so klein? Bei mir liegen die immer im Kiloohm 
Bereich.
Glaube der ist auch überflüssig, bei den kleinen Strömen hätte man den 
internen Transistor nehmen können.

Mich wundert nur, dass kein Poti frü Kontrast da ist, lässt der sich 
einstellen?

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:
> Für welche RAM Zeit sind die Delays denn eingestllt? Ich habe nur noch
> uralte SRAM hier, vermutlich so 8 Jahre alt. Keine Ahnung ob die
> funktionieren.

Die Delays sind für die schnellen RAMs, die ich auch empfehlen würde. 
Dein RAM scheint 120ns zu haben, das dürfte etwas zu langsam sein. 
Abgesehen vom Bildinhalt sollte die Schaltung aber dennoch 
funktionieren.

> - R8 hat 1 Ohm?
> - Ein Kondensator in der Liste hat keinen Wert
> - Kann der Ladekondesator der Spg.pumpe 100uF sein? Grössere passen
> leider nicht rein.

Auf welchen Schaltplan bezieht sich das?

> - Kann ich auch eine 180uH Spule nehmen? 470uH scheint mir etwas viel zu
> sein. Von den 180uH habe ich hunderte, die kann ich beilegen.

Ja, sollte gehen.

> - Kann der 100 Ohm Widerstand am BC327 auch 150 Ohm sein?

Ja. Die Werte sind alle eher unkritisch. Nur der Spannungsteiler der die 
Ausgangsspannung des 34063 einstellt sollte in etwa das gleiche 
Verhältnis haben wie die angegebenen Werte.

> Warum sind die
> Werte an der Basis so klein? Bei mir liegen die immer im Kiloohm
> Bereich.

Weil der Transistor schnell schalten soll um einen hohen Wirkungsgrad zu 
erzielen. Desweiteren fließen bei 330 Ohm gerade mal etwa 13mA 
Basisstrom.
Bei ein paar 100mA Spitzenstrom sind die auch notwendig.

> Glaube der ist auch überflüssig, bei den kleinen Strömen hätte man den
> internen Transistor nehmen können.

Der interne Transistor ist ein NPN Darlington. Der hat also >1V 
Spannungsabfall. Das sind alleine >20% bei 5V die hier verloren gehen. 
Der externe PNP hat dagegen wenige 100mV Spannungsabfall.

> Mich wundert nur, dass kein Poti frü Kontrast da ist, lässt der sich
> einstellen?

Per Software (Befehl 15).

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

danke. Es gibt aber ein problem: Der DC/DC Wandler arbeitet nicht. Ich 
habe alle ICs draussen und nur den Wandler Chip Drin. Ausgang: 0V. 
Feedback Eingang auch 0V. Transistor hat an der Basis 5V.

Muss der AVR drin sein, damit der arbeitet?

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:
> danke. Es gibt aber ein problem: Der DC/DC Wandler arbeitet nicht. Ich
> habe alle ICs draussen und nur den Wandler Chip Drin. Ausgang: 0V.
> Feedback Eingang auch 0V. Transistor hat an der Basis 5V.

Mess mal die Spannung an Pin 4 vom 34063.
Der Ausgangselko dient wenn er leer ist als Brücke zu GND um den 34063 
zu Starten. Wenn der Elko zu klein ist (<10µF) dann startet der 34063 
nicht.

> Muss der AVR drin sein, damit der arbeitet?

Ja. Ohne den ist der Feedback Eingang offen und die Spannung schießt 
nach oben. Testweise kann man C7 in diesem Schaltplan kurzschließen um 
das zu umgehen.
http://www.mikrocontroller.net/attachment/44475/lcd_320x240.gif

von Christian J. (elektroniker1968)


Lesenswert?

Pin 4 ist -1.25V gegen Eingangs-Masse. Der Elko hat 100uF

C7 habe ich entfernt, da ich den für überflüssig hielt, hatte nicht 
gesehen, dass der nicht parallel zu amdern war. Da scheint auch der 
Fehler zu liegen. Tja, nicht so gut. Hoffentlich verlange die Leute 
jetzt nicht ihr Geld zurück, denn der muss nun per Hand eingefügt 
werden. Kann aber direkt auf zwei smd Pads gesetzt werden, mechanisch 
sehr einfach.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Also, hier das Bild, wo der 10uF hinmuss. Direkt auf die smd 
Widerstandspads löten, zwischen dem 47k und +5V.

Starten tut er leider immer noch nicht. Mist!

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:
> Pin 4 ist -1.25V gegen Eingangs-Masse. Der Elko hat 100uF

Wenn -1,25V anliegen, dann läuft die Schaltung doch.

Das hier ist die richtige Version, oder?
http://www.mikrocontroller.net/attachment/50561/DIP4.zip

Prüf mal R5. Wenn der fehlt, dann kommen nur -1,25V raus.

> C7 habe ich entfernt, da ich den für überflüssig hielt, hatte nicht
> gesehen, dass der nicht parallel zu amdern war. Da scheint auch der
> Fehler zu liegen.

Der ist nur für die PWM notwendig: Der glättet das PWM Signal mit R1 und 
erzeugt so eine Spannung mit etwa 0-5V (bzw. etwas darunter). Um diesen 
Wert lässt sich die Ausgangsspannung verschieben.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe DIP3 machen lassen, da DIP4 zu spät nachgereicht worden ist. 
Der hat nur 15mil statt 10mil Abstände. Macht aber nichts.

So, wir haben jetzt ein problem und Du kannst verstehen, dass ich nervös 
werde, da die Leute funktionierende Platinen erwarten. Der Chip läuft, 
den brauche ich nur in meine Lochraster zu stecken, wo er herkam aber da 
ist er ein Aufwätswandler.

Widerstände etc sind drin, alle auch richtige Werte. Transistor 
testweise getauscht. Den 10uF habe ich nachgefügt, war kein Thema.

Und er läuft eben nicht. Es stehen -1.25V an statt der -20 o.ä.. Da ich 
mich blind auf eine richtige Schaltung verlassen habe stelle ich die 
hier nochmal ein, damit jeder nachschauen kann, ob da was nicht richtig 
ist ausser dem 10uF. Die Platinen sind einwandfrei.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hier mal das erste Foto....

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Und hier von gegenüber.... mit dem 10uF auf den beiden Pads.

Ich finde da kein Problem. Auf dem Oszi ist auch deutlich zu sehen, dass 
der Schaltet, ebensoo die Spulenschwingung, der Duty Cycle ist sehr 
klein.

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:


> Und er läuft eben nicht. Da ich mich blind auf eine richtige Schaltung
> verlassen habe stelle ich die hier nochmal ein, damit jeder nachschauen
> kann, ob da was nicht richtig ist ausser dem 10uF. Die Platinen sind
> einwandfrei.

Es sollte eigentlich funktionieren, und es tut es ja auch teilweise. 
Wenn 0V oder irgendwas positives an Pin 4 anliegen würde, würde die 
Schaltung nicht gehen, aber du hast ja -1,25V gemessen.

Wenn an Pin 4 -1,25V anliegen, müssen an Pin 5 0V anliegen: Der 34063 
regelt auf +1,25V an FB gegen seinen Massepin.
Wenn das alles passt, dann muss es an R5 liegen:
Liegen an R4 0V oder +5V an, dann bildet dieser einen Spannungsteiler 
mit R5, so dass die Spannung an Pin 5 kleiner wird und der 34063 daher 
die Spannung hochdreht, also negativer macht.

von Christian J. (elektroniker1968)


Lesenswert?

Du bist schon genial :-) Pin 5 hat vollen Masseschluss. Auf den unbest. 
Platinen aber nicht. Ich suche grad noch.....

von Benedikt K. (benedikt)


Lesenswert?

Funktionierts jetzt?

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

also, meine Platine war nicht mehr zu retten, ich habe den Masseschluss 
nicht gefunden und die Leiterbahn N$48 Stück für Stück aufgeschnitten. 
Er war dann am IC Fuss aber nicht zu sehen und ich habe eine Stereolupe 
hier. Ich werde das morgen mit Fädeldraht verdrahten, heute keine Lust 
mehr.

Ich habe die anderen Platinen auch untersucht, sie haben alle keinen 
Masseschluss dort. Jedoch sollte jeder seine genau unter der Lupe 
anschauen oder auch durchpiepsen. Das geht sehr schnell. Diese grosse 
Masseflächen haben auch ihre Nachteile.

Ich rede nochmal mit Bilex, ob die mit 10min nicht überfordert waren. Er 
hat das Layout ja, da kann er notfalls auch 15 Mil einstellen, Eahle 
wird er wohl haben.

von Christian J. (elektroniker1968)


Lesenswert?

-30 V sind es jetzt im Leerlauf. Dürfte passen.

Gute Nacht.

von Christian J. (elektroniker1968)


Lesenswert?

Nachwort:

Ich habe alle Platten nochmal durchgepiepst an dieser Stelle und eine 
weitere mit Kurzschluss gefunden. Ich habe durch Zufall ausgerechnet 
eine der beiden erwischt. Optisch nicht zu sehen, freikratzen half auch 
nicht. Es ist absolut unmöglich zu sagen, ob weitere zur Masse hin 
existieren. Ich möchte auch das Risiko nicht eingehen, dass mir die 
Platten wieder zugeschickt werden und das Geld verständlicherweise 
eingefordert wird.
Es ist sehr schwer so etwas später zu finden, besonders wenn sie 
bestückt sind. Perfekte Lösungen sind leider nicht möglich, ich bin 
keine Firma, die sowas vorher ausführlich testen kann.

Ich habe daher Bilex gebeten auf deren Kosten neue Platten zu machen mit 
15mil Abstand und wenn sie das nicht hinkriegen ohne Masseflächen. Da 
sie im Ausland sitzen kann man eh nichts machen von hier aus.

Ich hätte lieber 20€ bei Beta zahlen sollen und eine elektrische Prüfung 
mit dazu, diese Billiglohnländer haben immer ihre Tücken.

Sollte Bilex das ablehnen kann ich nur hoffen und bitte jeden, die 
Platten vorher Punkt für Punkt gegen Masse durchzupiepsen. Ich habe noch 
2 Überhangplatten extra. Bis auf den Elko, der wie oben gezeigt 
eingelötet wird sind sie soweit ok.

Mir tut das sehr leid aber das konnte ich nicht vorher wissen.

mfg
Christian

von Sebastian .. (zahlenfreak)


Angehängte Dateien:

Lesenswert?

So, habs jetzt selbst hinbekommen, die Sourcen halbwegs sauber als 
Projekt zu öffnen, daher jetzt auch die versprochene Version mit 
Tastenmatrix.

Ich verwende das ganze als Ein-Ausgabe-einheit für ein Gerät, könnte mir 
das aber auch zum debuggen recht praktisch vorstellen.

Der Code ist für eine 2*4 Tastenmatrix. 3*3 bräuchte zwar nicht mehr 
pins, der Aufwand in Software wäre aber deutlich größer. Die anderen 
zwei Pins die noch frei sind werde ich wohl auch noch brauchen, daher 
nur 2*4.

Die 4 Spalten müssen an PB0-PB3, die 2 Zeilen kommen an PB4 und PB5. 
Pullups sind nicht nötig, da die internen aktiviert sind. Gleichzeitig 
kann man 2 Tasten drücken. Wer mehr will muss noch Dioden in die Matrix 
einfügen.

Der Debuggte Tastenzustand wird bei jeder Änderung über die UART 
gesendet. Also z.B. Taste 0 Drücken --> 0x01 über UART, Taste 0 wieder 
loslassen --> 0x00 über UART

Der komplette von mir zugefügte Code ist über define herausnehmbar. Wenn 
er drin ist, braucht er 3 Byte im Ram. Sollte also noch reinpassen.

Sebastian

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Hier mal eine neue Version mit einer modifizierten Graustufenerzeugung 
(abschaltbar in der param.h).
In dieser Version wird das Flimmern von großen Graustufenflächen stark 
reduziert. Dafür wird der Kontrast der Graustufen ein wenig schlechter.
Durch das geringere Flimmern kann man die Framerate auf 70-75Hz 
reduzieren was mehr Rechenleistung für die Grafikfunktionen zur 
Verfügung stellt.

von Christian J. (Gast)


Lesenswert?

Kannst Du den USBProg für den Avr empfehlen, damit ich mir das künfti 
selbst brennen kann? Ich komme ja wohl nicht drumherum.

von Sebastian .. (zahlenfreak)


Angehängte Dateien:

Lesenswert?

Sag mal Benedikt, magst du mich nicht? Wenn du die neue Version ne halbe 
Stunde ehr veröffentlicht hättest, hätt ichs mir sparen können, meine 
Sourcen nochmal zu kopieren.

Naja, hab jetzt meine Tastenmatrix in die neueste Version eingebaut. 
Also sowohl der GrayMod als auch Tastenmatrix, beides natürlich in der 
param.h abschaltbar.


Zum USBProg: Ich verwend ihn schon die ganze Zeit und bin soweit ganz 
zufrieden. Gibt aber teilweise schon Probleme, bis das ding mal läuft. 
Da du ja sowieso nicht viel mit AVRs machen willst, sondern nur dieses 
Projekt flashen willst (oder?) ist der USBProg wohl übertrieben. Ich 
würd einen Programmer für den Parallelport empfehlen. Kommt mit einem 
Bustreiber aus und war zumindest bei mir problemlos inbetrieb zu nehmen. 
Und die Kosten sind auch vernachlässigbar.

Sebastian

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Nee, Avr ist nicht meine Welt, nur hex File oder elf brennen was ihr 
bastelt und gut ist es :-)

Fügt sich aber harmonisch in die Landschaft ein, Benedikts kleines 
Kunstwerk :-)

von Sebastian .. (zahlenfreak)


Lesenswert?

Um hin und wieder ein fertiges Projekt zu flashen reicht ein 
Parallelprogrammer allemal. Brauchst halt einen Parallelport dafür, den 
hat ja heute auch nicht mehr jeder.

Schau dir mal das hier an:
http://www.mikrocontroller.net/articles/STK200

Sebastian

von Christian J. (elektroniker1968)


Lesenswert?

Benedikt?

Was muss in die Uart rein, damit ich einen String ausgeben kann? Deine 
Doku ist da etwas unklar?

Also "Hallo Welt ausgeben"? geht das buchstabenweise oder gibt es einen 
Befehl für den ganzen String?

Das verstehe ich nicht ganz in der Doku:

30 Ziel
Wert
Zeichen aus erweitertem Zeichensatz schreiben.
Ziel = 0: Benutzerdefiniertes Zeichen 0-15 schreiben
Ziel > 0: ASCII Zeichen 0-255 schreiben

32-255 Buchstaben an Cursorposition zeichnen, Cursor erhöhen

Wie schnell zieht die Busy Leitung rauf oder runter? Kann ich die sofort 
nach dem Sendebefehl abfragen? Ach ja, geht die auf Low oder High?

von Benedikt K. (benedikt)


Lesenswert?

Der 30 Befehl wird eigentlich nur benötigt um Sonderzeichen mit einem 
ASCII Code <32 zu schreiben. Normalen Text kann man ganz normal senden, 
denn alles >=32 wird als Text betrachtet.

Busy wird bei jedem empfangenen Byte neu ausgewertet. Wenn Busy aktiv 
wird sind noch 32 Bytes im Puffer. Busy ist high aktiv. Solange es Low 
ist kann man also gefahrlos mindestens 32 Bytes schreiben.
Dies dient dazu, dass man z.B. nur einmal vor jedem Befehl prüfen muss.

von kay (Gast)


Lesenswert?

hallo,
schau doch einmal etwas weiter oben da ist doch alles zielich genau 
beschrieben
zb. einen string ausgeben
befehl ist "17" Textcursor auf (x,y) setzen
X zählt in 8 Pixel Schritten, Y in Zeilenschritten
17  X0  Y0  ;zeile 0 , spalte 0

einfach eine tabelle anlegen zb.
zeile_1:  .db"hallo welt",0
diese tabelle auslesen (wie man eine tabelle ausliest weist du 
hoffentlicht) vorher natürlich 17 senden dann 0 dann nochmal 0

um diesen text oben links anzeigen zulassen
die befehle sind gut in der doku beschrieben

ich mache die nur mit Makros

von Christian J. (elektroniker1968)


Lesenswert?

Hi,

alles klar, ich frickel grad mit dem Arm7 herum... nach einer Dose Faxe 
Pils vielleicht nicht mehr ganz so sinnvoll :-)
1
void GDisplay_Init()
2
{
3
  uint8_t i;
4
5
  // Den Busy Pin einstellen:
6
7
  PINMODE4 &= ~(0x03 << (2*BUSY_PIN));  // Pull Ups auf Busy Pin P2.2 einschalten
8
  PINSEL4 &= ~(0x3 << (2*BUSY_PIN));  // Busy Pin als GPIO definieren
9
  // Busy Pin P2.2 auf Eingang (=0) stellen (PINSEL4: Bits 4:5 = 00
10
  FIO2DIRL &= (0x01 << BUSY_PIN);
11
12
  // UART einschalten
13
  uart1_init (28800);
14
  uart1_put (12);    // Display löschen
15
  uart1_put (1);    // Cursor auf 0,0
16
  //while (BUSY_GET_IN()==0);
17
18
  sprintf(gdisp_buf,"Hallo Welt");
19
  GDisplay_Print();
20
21
}
22
23
void GDisplay_Print()
24
{
25
......

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich stelle grad fest, dass sich die Rectangles gegenseitig 
überschreiben, auch wenn die Füllfarbe 0 ist. Gibt es eine "transparent" 
Farbe, so dass sich gegenseitig schneidende Rectangles machbar sind?

von Benedikt K. (benedikt)


Lesenswert?

Nein, bisher zumindest nicht.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

habe es jedenfalls ausführlich mit dem Arm7 System getestet und werde 
heute abend mal anfangen eine TextScoll Funtion zu programmieren, wie 
auf einem Terminal. Dann Koordinatensysteme, wobei ich noch nicht weiss, 
wie ich da eine Art Smooth Scroll realisieren soll. Jedenfalls sind die 
Möglichkeiten schier unbegrenzt. Klasse Sache Benedikt! Du solltest das 
mit in den Shop nehmen als Bausatz.

von Christian J. (elektroniker1968)


Lesenswert?

Hi,

könntest Du diesen Befehl vielleicht mit etwas erklärendem Leben füllen? 
Ich rätsel da immer noch herum.

Ich habe ein s/w Bild (1bpp) mit einer Auflösung von 211x144 Pixeln. 
Abgelegt in 8Bit Datenbytes in einem Array mit der Grösse 3798 Bytes 
(211x144 / 8 = 3798)

16 0xAA = Befehlswort
X,Y = Startkoordinaten Bildecke oben links?
XS,YS  = da verliessen sie mich. 211x144?


Textzitat:

X
Y
XS
YS
Modus
Daten…

Bild an Position (x,y) mit Auflösung (xs,ys) laden. Auf diesen Befehl 
folgen xs*ys (*2) Bytes mit Bilddaten. x und xs zählen Bytes (Nibbels). 
x hat daher den Bereich 0-79 (0-159), xs den Bereich 1-80 (1-160). y und 
ys zählen Zeilen. y hat daher den Bereich 0-239, ys den Bereich 1-240.
Modus schaltet zwischen 1bpp (0) und 2bpp (1) um.
0xAA dient nur als Sicherheitsbyte, damit nicht versehentlich dieser 
Befehl (z.B.
aufgrund eines Übertragungsfehlers) ausgeführt wird.

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:

> Ich habe ein s/w Bild mit einer Auflösung von 211x144 Pixeln. Abgelegt
> in 8Bit Datenbytes in einem Array mit der Grösse 3798 Bytes (211x144 / 8
> = 3798)

Nicht ganz. Da in X Richtung immer ganze Bytes übertragen werden, ist 
dein Bild 27x144 Bytes = 3888 Bytes groß.

> D.h. ein Bild kann nicht grösser sein als 255 Pixel?

Doch, du überträgst Byte Anzahlen. Maximal könnte ein Bild 255*255 Byte, 
also 2040x255 Pixel groß sein.

> 16 0xAA = Befehlswort
> X,Y = Startkoordinaten Bildecke oben links?

Ja, wenn das Bild z.B. an 0,0 soll dann 0,0.
Wenn es an 16,20 soll, dann 2,20 (da Bytes=8Pixel) in x Richtung.

> XS,YS  = da verliessen sie mich. 211x144?

27, 144 da 27 Bytes pro Zeile und 144 Zeilen.

Das Vielfache von 8 Pixeln in x Richtung ist eine Einschränkung aber mit 
der kann man leben, denke ich.
Im 4 Farbmodus sind es immer 4 statt 8 Pixel.

Ich habe das ganze bewusst etwas "merkwürdig" gewählt, aber das hat den 
Vorteil dass die xs und ys Werte direkt die Anzahl an Bytes 
repräsentieren. Somit kann man weniger beim Umrechnen falsch machen.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hmmm..... mein VW Käfer sieht noch etwas abgeschnitten aus. So ganz 
einfach ist das nicht. Habe auf 208x144 verkleinert. Scheint alles 
richtig und doch ist er verschoben.

Die Datenbytezahl ist übrigens vom sizeof Befehl, sie war oben richtig. 
Soviel Bytes waren im Array drin für 211x144.
1
uart1_put(16);            // Kommando
2
  uart1_put(0xaa);
3
  uart1_put(0); uart1_put(0);      // Position
4
  uart1_put(26); uart1_put(144);    // Position
5
  uart1_put(0);
6
7
  for (i=0;i<size;i++)
8
  {
9
    while BUSY_GET_IN();
10
    uart1_put(*(ptr++));
11
  }
12
13
// Füllbytes zur Vorsicht
14
15
  for (i=0;i<300;i++)
16
  {
17
    while BUSY_GET_IN();
18
    uart1_put(0);
19
  }

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Also, da ist noch was strubbelig, wenn ich keine 1000 NOPs vorher und 
nachher sende macht er mir das Bild schwarz und verschoben.

von Benedikt K. (benedikt)


Lesenswert?

Was mir seltsam vorkommt ist, dass der Versatz mitten im Bild anfängt.
Das sieht so aus, als wenn da irgendwie ein paar Bytes verloren gehen, 
warum auch immer.

von Christian J. (elektroniker1968)


Lesenswert?

Verloren geht da nichts, ich frage Busy ab und benutze einen ausreichend 
grossen Fifo Puffer für die Uart.

Die erwarteten Bytes stimmen aber exakt, danach geht er in die 
Hauptschleife, der nächste Befehl der Text ausgeben soll wird sofort 
erkannt.

Ich arbeite dran......

von Christian J. (elektroniker1968)


Lesenswert?

Ok, Entwarnung..... der Arm7 war beim Aufstarten wohl etwas schnell 
dabei und hat dem Display keine Zeit gelassen zu initialisieren. Passt 
jetzt alles, ohne Füllbytes.

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

Hi,

Ich seh grad, dass auf den Platinen der Bestückungsdruck auf der 
Unterseite fehlt, und auf der Oberseite nur die Bauteilwerte, aber nicht 
die Referenzierungsnummer, enthält. Um bei der Bestückung, insbesondere 
der SMD-Bauteile, die Identifizierung der Bauteile zu erleichtern, habe 
ich nochmal zwei zusätzliche Ansichten aus Eagle exportiert. Darin ist 
die Referenzierungsnummer der Bauteile in rot gehalten.

Hier die erste Datei ...

Gruß

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

... und hier die zweite Datei

von Kh L. (loeter)


Angehängte Dateien:

Lesenswert?

... und hier ist nochmal ein Schaltplan ohne die lästigen Kringel um die 
Pins :-)

von Christian J. (elektroniker1968)


Lesenswert?

Kai H. schrieb:
> Hi,
>
> Ich seh grad, dass auf den Platinen der Bestückungsdruck auf der
> Unterseite fehlt, und auf der Oberseite nur die Bauteilwerte, aber nicht

Aus Kostengründen, das Kleinzeugs war es nicht wert.

> die Referenzierungsnummer, enthält. Um bei der Bestückung, insbesondere

Weil Eagle bei 2 Platinen auf einer Seite neue Namen vergibt, die 
fortlaufend gezählt werden.

In dem Schaltplan fehlt auch der 10uF Elko am DC/DC Wandler, den ich 
verschludert habe, er aber unbedingt rein muss.

Habe schon die nächste Generation fertig, ganz ohne smd und eine nur smd 
:-) Letztere ist noch wesentlich kleiner, fast die Hälfte. Ok, BF 0602 
habe ich mal ausgelassen, die kriege ich nicht mal mehr mit einer 
Pinzette zu fassen.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hier nochmal die Stelle, wo der 10uF Tantal reinkommt, + zur LED hin.

von Christian J. (elektroniker1968)


Lesenswert?

Benedikt?

habe Deinen neuen Code mit 56700 baud gebrannt und stelle fest, dass die 
Grafik verzerrt wird. Um das zu beheben muss ich ein 150us delay 
einbauen. Die Abfrage des Busy funktioniert technisch aber wirkt hier 
irgendwie nicht. Ich glaube 56700 sind doch etwas überdreht ;-) Das 
Flimmern ist aber schön weg.
1
while BUSY_GET_IN();
2
uart1_put(16);      // Kommando Bitmap schreiben
3
uart1_put(0xaa);
4
5
  // Position festlegen
6
  uart1_put((uint8_t)x_pos /8);
7
  uart1_put((uint8_t)y_pos);
8
  // Bildgrösse festlegen
9
  uart1_put(29);//(uint8_t)(x_pixel/8));
10
  uart1_put(238);//(uint8_t)y_pixel);
11
  // SW Grafik 1 BPP
12
  uart1_put(0);
13
14
  for (i=0;i<size;i++)
15
  {
16
    while BUSY_GET_IN();
17
    uart1_put(*(ptr++));
18
    delay_us(1,150);
19
  }
20
21
  uart1_put(0);
22
  uart1_put(0);
23
    uart1_put(0);

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Probier mal diese Version aus.
Wenn die funktioniert, dann wars die Pause beim Einschalten.
Falls nicht, dann baue mal vor dem Senden des Bildes eine Pause von z.B. 
100ms ein. Falls es immer noch nicht geht, ist der Fehler bei 57600 Baud 
doch zu hoch (58824Baud -> 2,1%).
Ich habe schon Bilder mit 250kBaud ohne Busycheck gesendet, da sollte 
der Controller also 57600Baud spielend schaffen.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich habe da noch andere Probleme geefunden bei der Textausgabe, die auch 
"abgeschnitten" wurden, chaotische Zeichen usw (Fehler?). Es fehlten 
auch einfach Zeichen zwischendrin. Seit ich den 28800er Chip wieder drin 
habe läuft alles wieder.

Kannste vielleicht die Doku mal erweitern? Da fehlt auch noch der Kreis.

Ach ja, bei meiner Version lassen sich Rechtecke nicht ausfüllen, die 
bleiben immer weiss innen und überschreiben andere Pixel auch nicht, 
egal welche Farben ich einstelle.

Flashen ist derzwei schwierig, mein Arbeitskollege hat den Brenner 
unterm Schreibtisch versteckt :-)

von Benedikt K. (benedikt)


Lesenswert?

Christian J. schrieb:

> Kannste vielleicht die Doku mal erweitern? Da fehlt auch noch der Kreis.

Ist schon lange drin:
http://www.mikrocontroller.net/attachment/35222/320x240_Grafik.pdf

> Ach ja, bei meiner Version lassen sich Rechtecke nicht ausfüllen, die
> bleiben immer weiss innen und überschreiben andere Pixel auch nicht,
> egal welche Farben ich einstelle.

Kann nicht sein, denn auf dem Startbild funktioniert es auch und das 
sind die selben Funktionen.

von Winfried (Gast)


Lesenswert?

Hallo Benedikt,

ich verfolge den Thread schon eine ganze Weile und bin begeistert, was 
Du da auf die Beine gestellt hast. Da ich jetzt Verwendung dafür hätte, 
habe ich mir ein Display besorgt. Der Aufbau erfolgte ohne Probleme. 
Allerdings habe ich nur einen SRAM mit 128x8 (25nS) von Samsung im DIP 
Gehäuse.
Jetzt das Problem. Nach einem Neustart wird alles normal dargestellt. 
Nach ca. 15-20 Sekunden gibt es dann mehr und mehr Pixelfehler. Die 
Adressen 15 und 16 habe ich unbeschaltet gelassen. (Ich war mir auch 
nicht sicher ob ich sie auf GND oder Vcc legen soll) Weiterhin habe ich 
noch einen nicht negierten Chip Enable, den ich auf Vcc gelegt habe. Was 
könnte die Ursache sein ?

von Benedikt K. (benedikt)


Lesenswert?

Häng die ungenutzten Adressen an GND oder Vcc, dann sollte das Problem 
gelöst sein.

von Winfried (Gast)


Lesenswert?

Danke,
werde ich morgen ausprobieren.

von Christian J. (elektroniker1968)


Lesenswert?

Benedikt,

wenn ich das richtig sehe ist noch viel Platz im Ram. Wäre es möglich 
dieses in Codepages zu unterteilen, so dass eine neue Grafik im 
Hintergrund aufgebaut  und dann übergeblendet wird? Ich stelle mir so 
einen Befehl Codepage-Select(1..n) vor.

von Benedikt K. (benedikt)


Lesenswert?

Theoretisch ja. Ein Bild benötigt 9600Byte. Zur Vereinfachung der 
Software verwende ich aber 16kByte für ein Bild. Durch die Graustufen 
verdoppelt sich dieser Wert und füllt somit das ganze SRAM.
Wenn man also die Graustufen rausnehmen würde, würde es reichen.

von Christian J. (elektroniker1968)


Lesenswert?

Hi, tja, Graustufen geht bei mir leider nicht :-( Die Rechtecke bleiben 
weiss. Der Rahmen lässt sich aber in der Farbe einstellen.

Bastle grad an einem Scolling des Textpuffers, weiss nur nicht ob das 
ruckelfrei abgeht, wenn ich 800 Zeichen neu schreibe und das Scrolling 
in einem internen Puffer vornehme. meine Write Befehle greifen auf 
diesen zu und ich sende immer nur das veränderte Bild an das Display, 
wenn sich die Quersumme einer zeile geänder hat.

Aufruf:

GDisplay_Draw_Filled_Rectangle(10,10,GD_X_MAX-10,GD_Y_MAX-10,100,255);

Routine
1
char GDisplay_Draw_Filled_Rectangle(uint16_t x1,   // Ecke unten links
2
               uint16_t y1,       // Ecke unten links
3
               uint16_t x2,       // Ecke oben rechts
4
               uint16_t y2,       // Ecke oben rechts
5
               uint8_t fill_color,   // Füllfarbe 0..255
6
               uint8_t frame_color)  // Rahmenfarbe 0..255
7
{
8
9
  // Bei Bereichsüberschreitung aussteigen
10
  if ((x2 > GD_X_MAX) || (y2 > GD_Y_MAX))
11
    return 0;
12
13
  uart1_put (GDCMD_DRAW_RECTANGLE);    // Kommando Rechteck zeichnen
14
15
  uart1_put (x1);              // Untere linke Ecke
16
  uart1_put (x1>>8);
17
    uart1_put (GD_Y_MAX - y1);
18
19
  uart1_put (x2);              // Obere rechte Ecke
20
  uart1_put (x2>>8);
21
    uart1_put (GD_Y_MAX - y2);
22
23
    uart1_put (fill_color);
24
  uart1_put (frame_color);

von Sebastian (Gast)


Lesenswert?

Hallo Christian,

hab auch schon über so eine erweiterung nachgedacht. Ich hatte mir 
überlegt, einen größeren Ram zu nehmen und Adressleitungen der höchsten 
Adressen dann über GPIO-Pins des Displaycontrollers zu steuern. Man 
hätte dann einen Befehl mit dem man den Teil festlegt, in den 
geschrieben wird, und einen, mit dem man sagt, wo gelesen wird.
Genau dafür hab ich auch die 2 Pins bei meiner Tastenmatrix 
freigehalten. Dadurch, dass ich das 4-fache an Speicher verbauen würde, 
könnten sogar auch die davon profitieren, die jetzt schon ne fertige 
Platine haben: Mit Chip-Stacking werden zwei 32k-Rams gestapelt und die 
CS-leitungen kommen (über Freiluftverdrahtung) an die Portpins. Man 
hätte dann zwar nur 2 Bilder, aber immerhin.

Um die Vorfreude jetzt wieder etwas zu dämpfen: Ich brauch die 
erweiterung momentan nicht. Ich weiß auch nicht, ob ich sie überhaupt 
brauche oder ob mir die Performance so reicht. Bis ich das brauche ist 
es sicher noch ein paar Wochen oder Monate hin. Wenn vorher was draus 
wird war's reiner ehrgeiz. Momentan hab ich noch nichtmal den Ram.

Sebastian

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Die Idee mit den mehreren Speicherseiten hatte ich vor kurzem auch mal,
hatte diese aber nicht weiter verfolgt. Da aber anscheinend Bedarf daran
besteht, wieso also nicht.

Hier mal eine erweiterte Version:
Man kann in der param.h zwischen 4 Graustufen und 2 Farben, also SW
umschalten.

Weiterhin kann nun nahezu der gesamte Speicher genutzt werden
(128x240Bytes=30kByte). Bei Graustufen bringt das nicht allzu viel, da
steht dann eine virtuelle Bildgröße von 512x240 zur Verfügung.
Bei 2 Farben dagegen, kann ein Bild mit bis zu 1024x240 Pixel
dargestellt werden (angezeigt wird natürlich nur ein 320x240 Ausschnitt
davon).
Wofür man das verwenden kann, keine Ahnung, seit kreativ...
Da in 1024 Pixel allerdings 3x das komplette Bild reinpasst, kann man im
Hintergrund ein Bild an eine Stelle außerhalb des sichtbaren Bereiches
laden und danach auf diesen Bereich umschalten.
Zum Einstellen der Position in 8 Pixel Schritten dient der Befehl 28.
Genauere Infos dazu stehen in der Anleitung.

Getestet habe ich diese Version nur mal schnell rund um das Laden von
Bildern rund um Befehl 28, also keine Garantie dass alles fehlerfrei
läuft.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

also das mit den grauen Bitmaps haut irgendwie nicht hin. Ich habe beim 
Grafikconverter alle Einstellungen ausprobiert, es wird nur Murks 
dargestellt.

Wir haben:

Nulltransform
Floyd Steinberg
Graustufen Verfahren
Schwellwert Verfahren.

Und unten die Einstellungen für die Anzahl Farben, da habe ich 4 stehen 
und habe Schwellwertverfahren ausgewählt. Die Datei ist doppelt so gross 
wie die s/w Datei, d..h. es werden auch doppelt so viele Bytes 
übertragen. Aber da läuft er aus dem Ruder.

Idee?

Oder hat mal jemand eine Graubild Datei mit Pixelgrößenangabe zum 
testen?

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hier das Proggi.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Probier das mal aus:
Das ist das komplette Bild, inklusive aller Befehle. Du musst also nur
das komplette Array an das LCD senden.
Auflösung: 240x240, 2bpp

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Und hier das gleiche nur gedithered.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@ Benedikt K. (benedikt) (Moderator)

mal so zwischendurch als Ponyprog Fan:

im letzen Code(Fusebits) wird -Boden ; -Bodlevel programmed
wäre dann der AVR nicht < 4V inaktiv. Warum stellest Du dann 4V noch
mal extra ein? (geht bei Ponyprog wohl nicht)


Schönen Feiertag noch


Wigbert

von Benedikt K. (benedikt)


Lesenswert?

Wigbert Picht-dl1atw schrieb:
> im letzen Code(Fusebits) wird -Boden ; -Bodlevel programmed
> wäre dann der AVR nicht < 4V inaktiv.

Ja.

> Warum stellest Du dann 4V noch
> mal extra ein? (geht bei Ponyprog wohl nicht)

Das was darunter steht sind die Klartextbedeutungen der oben 
eingestellten Bits. Die am häufigsten benötigten Einstellungen habe ich 
in meinen Programmer einprogrammiert, so dass ich nicht immer die Bits 
zusammenklicken muss, sondern ich wähle z.B. int 8MHz und BOD auf 4V 
aus, er setzt die passenden Bits, und die schreibe ich dann in den AVR.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

es klappt, ich hatte nur vergessen, dass man bei Grau /4 teilen muss und 
nicht durch 8.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@Benedikt K. (benedikt) (Moderator)

Dank Dir,
interessanter Programmer(vorprogrammiert?) Wo finde ich sowas?

Ach,ja wäre es möglich, die Hex mit aktivierter
Grayscale(4 Graustufen)von Dein "Lcd_con_320x240 Mod.zip"
reinzustellen.
Sorry, mach ja sonst nur was in Bas...

Danke....


Wigbert

von Benedikt K. (benedikt)


Lesenswert?

Wigbert Picht-dl1atw schrieb:

> interessanter Programmer(vorprogrammiert?) Wo finde ich sowas?

Ist Marke Eigenbau, eine Weiterentwicklung von einem AT89Sxxxx ISP 
Programmer, da es damals nichts billiges an ISP Fertiggeräten gab.
AvrStudio sollte aber eine ähnliche Funktion bieten um die Fusebits 
einzustellen.

> Ach,ja wäre es möglich, die Hex mit aktivierter
> Grayscale(4 Graustufen)von Dein "Lcd_con_320x240 Mod.zip"
> reinzustellen.
> Sorry, mach ja sonst nur was in Bas...

Welche Baudrate soll ich einstellen?

von Christian J. (Gast)


Lesenswert?

38400 ist die, die bei mir im dauerfeuer funzt ohne dass es zu Verlusten 
führt. 56700 klappte nicht, der Busy Pin reagiert einfach nicht, ich 
frage den immer vor jedem Byte ab was ich sende.

Naja, vielleicht bin ich auch nur zu blöde. So jetzt aber raus nach 
draussen, Spitzenwetter.

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@ Benedikt

>Welche Baudrate soll ich einstellen?

56K7 wäre wohl in der mainc. definiert.
Ich dachte wir bleiben dabei ?

muss aber wirklich nicht sofort sein und gebe Christian recht:

>So jetzt aber raus nach draussen, Spitzenwetter.


Wigbert

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Hier die hex Datei der neuen Version mit Graustufen und 57600Baud

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

@ Benedikt

Dank Dir, trotz so schönem Wetter so hilfreich. Toll.

Wigbert

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.