Forum: Mikrocontroller und Digitale Elektronik Dot-Matrix-Display (SPI) mit µController AT89C5131A Ansteuern?


von Kajee e. (kajee)


Lesenswert?

Hallo,

Ich möchte für meine Projektarbeit was sehr gewagtes probieren.
Mein ziel ist es ein Display (oder mehrere, ist ja nicht viel mehr 
arbeit) anzusteuern.

von der schule bekomme ich einen µController geliehen mit dem ich diese 
aufgabe erledigen kann.

das problem ist für mich, dass bei dem SPI display mir schwer fällt zu 
verstehen wie genau es ablaufen soll. Wikipedia meint dass man 4 pins 
benötigt. ein signal das daten sendet, empfängt,takt und eines, welches 
für den Multiplex nötig ist (slave select). das mit dem takt sollte ich 
bequem realisieren, die daten auf die richtige leitung zu bekommen auch, 
multiplex schaff ich auch.

Aber was für daten das display fressen will, versteh ich nicht.

Dieses Display möchte ich steuern:

http://www.reichelt.de/DOG-LCD-Module/EA-DOGS102W-6/3/index.html?;ACTION=3;LA=2;ARTICLE=101653;GROUPID=3007;artnr=EA+DOGS102W-6;SID=12UK4KQ38AAAIAAGq3GYIcf72c1bace8b1d9ce6a16d69a9bed41e

Der µC mit dem ich es angesteuert bekommen will ist auf einem board 
dran, welches keinen namen hat.
klingt bekloppt, aber die boards waren extra angefertigt

der µC heisst Atmel AT89C5131A

mein lehrer hatte bedenken wegen der 12Mhz taktung, weil es völlig 
überlastet wäre für 4 displays inklusive verarbeitung und Duplex RGB 
leuchten.

Denkt ihr dass wär ein problem? immerhin behalten die displays ihre 
zustände bis zur nächsten beschreibung und man kann sie dadurch inaktiv 
schalten, falls nicht gebraucht.

falls es nicht gehen sollte bietet mein lehrer meiner projektgruppe und 
mir einen µC der mit 900MHz arbeitet, aber ich will ihn nicht die mühe 
machen, wenn es nicht nötig ist.

ich hab nicht auf gross und kleinschreibung geachtet, da ich von der 
schule aus schreibe und wir in die Pause müssen^^ ich hoffe ihr könnt 
mir das verzeihen

vielen dank für jeden sinnvollen beitrag

: Gesperrt durch User
von QUAX (Gast)


Lesenswert?

Hi,

zunächst brauchst Du die Datenleitungen SCK und MOSI und CS. MISO nur, 
wenn Du Daten aus dem Display zurücklesen möchtest (meist überflüssig).
Die befehle, die das Display versteht, findest Du im datenblatt. Wenn 
Dein µC ein SPI-interface hat, übernimmt dies die Serialisierung der 
Daten und die Steuerung. 12 Mhz macht kein Problem. Bei mehreren 
displays werden an alle SCK und MOSI gelegt und über CS (Chip Select) 
wird das Display ausgewählt, mit dem kommuniziert werden soll. Die RGB 
Steuerung ist meines Erachtens schnickschnack und könnte mit HC595 
bewältigt werden.

Gruß
QUAX

von QUAX (Gast)


Lesenswert?

Sorry der AT89C5131A hat ein SPI-Interface.
QUAX

von QUAX (Gast)


Lesenswert?

Ach ja, falls (hoffentlich) keine Vorgabe für die Software besteht, 
würde ich Dir C mit dem freien (kostenlosen) C-Compiler SDCC empfehlen.
GRuß
QUAX

von Kajee e. (kajee)


Lesenswert?

wir haben µvision 4 für die realisierung in C.

das problem ist dass die vorgefertigten header und .c dateien einfach 
schreklich geschrieben wurden udn so unübrsichtlich verschachtelt sind 
dass selbst mein programmier-lehrer schimpfworte in den mund nahm :)

ich häng mal eine .c datei an, die wir auf der herstelerseite gefunden 
haben.
die funktion void lcd_send() ist unser erstes problem (ich bin mir 
sicher es werden noch wegen dieser durchfallsyntrax weiter probleme 
entstehen, weswegen wir profis brauchen)

Vielen dank für die verdammt schnelle antwort dieses forum beginnt mir 
sehr zu gefallen :)

ach ja das display ist ein dotmatrix display, einfarbig. wir dachten in 
farbe wär es uns zu extrem^^

dass der atmel controller einen spi controller enthält, würde ja 
heissen, dass wir die mitgelieferten .h und .c dateien gar nicht 
brauchen oder? dann würden wir es ja direkt die vom atmel header aus 
programmieren können

von Thomas K. (muetze1)


Lesenswert?

Anhang vergessen?

von Kajee e. (kajee)


Angehängte Dateien:

Lesenswert?

tut mir leid :D

von QUAX (Gast)


Lesenswert?

Also µVision4 , na denn mit KEIL wirds für Euch spaßig, wie Ihr schon 
bemerkt habt, das debuggen könnte weitehelfen die Sourcen zu verstehen 
...
die .h und .c braucht Ihr , hat nix mit SPI zu tun, naja fast nix ...
Sicher, dass das beispiel zum LCD passt?

Gruß
QUAX

von QUAX (Gast)


Lesenswert?

Das Datenblatt ist Dein Freund:

http://www.lcd-module.de/deu/pdf/grafik/dogs102-6.pdf

Gruß
QUAX

von spess53 (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Kajee eeeeeee schrieb:
> Dieses Display möchte ich steuern:
>
> http://www.reichelt.de/DOG-LCD-Module/EA-DOGS102W-...

Ich verstehe nicht, warum Anfänger immer denken, programmieren sei 
Pipifax.
Und damits richtig schön schwer wird, nimmt man gleich ein Grafik-LCD.

Du mußt Dir erstmal alle Zeichen aus Pixeln zusammen basteln. Und das 
ganze vielleicht noch für verschiedene Schriftgrößen.
Na dann viel Spaß dabei. Wieviel Jahre hast Du nochmal dafür eingeplant?


Wenn Du aber reale Chancen haben willst, auch etwas fertig zu stellen, 
nimm ein Text-LCD, z.B.: EA DOGM162-A.


Peter

von Peter D. (peda)


Lesenswert?

Kajee eeeeeee schrieb:
> das problem ist dass die vorgefertigten header und .c dateien einfach
> schreklich geschrieben wurden udn so unübrsichtlich verschachtelt sind
> dass selbst mein programmier-lehrer schimpfworte in den mund nahm :)

Was habt ihr denn vorher so programmiert, wenn ich mal fragen darf?

Dein Beispielcode sieht doch super aus und ist sogar kommentiert.
Nur hat der 8051 keine PORTs A,B,C,D, sondern 0,1,2,3.


Peter

von Kajee (Gast)


Lesenswert?

ja wir haben alle unterlagen gesammelt, jedoch weiss ich eben nicht wie 
man grafiken machen kann wo man unterschiedliche texte einbringen kann.

zumal ich eigentlich mit meinen gruppenmitgliedern keine amateure sind 
sondern informatiker, aber eben angehende.

was wir bis jetzt so alles geschafft haben?

auf normalen PCs haben wir c und c++ sehr intensiv erlernt

µcontroller haben wir seid diesen september an der schule und wir können 
grade eben alle c befehle die es mit sich bringt, den integrierten 
textbasierten LCD auf dem board nutzen, 7segment, assembler haben wir 
auch vom grundstoff durch.

die Ports kann man ja im header umdefinieren, das werd ich noch machen.

und dass es jahre dauern soll bezweifle ich. Ich vermute wenn wir den 
"bogen" raus haben, sind wir auch schon fertig, da wir ansonsten kaum 
was machen müssen.

von Peter D. (peda)


Lesenswert?

Kajee eeeeeee schrieb:
> falls es nicht gehen sollte bietet mein lehrer meiner projektgruppe und
> mir einen µC der mit 900MHz arbeitet

Es geht in jedem Fall mit dem 8051.
Der Flaschenhals wird eher das LCD selber sein. Videos wirst Du daher 
auch mit 900MHz nicht abspielen können.


Peter

von Peter D. (peda)


Lesenswert?

Kajee schrieb:
> den integrierten
> textbasierten LCD auf dem board nutzen

Und habt Ihr das auch durchschaut, wie das LCD funktioniert?

Oder habt Ihr nur ne fertige Lib reingepappt. Das kann ja sogar meine 
Omi und dabei lernt man nichts.


Peter

von Peter D. (peda)


Lesenswert?

Kajee schrieb:
> Ich vermute wenn wir den
> "bogen" raus haben

Das Ziel sollte sein, den "Bogen" raus zu haben, wie man ein Datenblatt 
liest und anwendet.
Deine Fragen lassen ahnen, daß Du weder das Datenblatt des LCD noch des 
MC angeschaut hast.


Peter

von Kajee (Gast)


Lesenswert?

wollt ihr nun mich einfach runter machen, weil ich hilfe brauche?

von Kajee (Gast)


Lesenswert?

sry für doppeltpost

peter der lehrer hat uns einfach eine funktion genannt die wir wie 
printf();
beim programmieren von normalen pcs nutzten. was da passiert wurde uns 
leider nicht genannt. aber genau da brauch ich ja hilfe, wobei die 
meisten leute hier ausser motzen nichts beitragen wollen.

von QUAX (Gast)


Lesenswert?

Hmm, die meisten hier haben a bisserl studiert denen sollte man nicht 
auf den "Sack" gehen sondern auch ein bisserl lernen wollen, was in dem 
Fall heisst: Zeit investieren. Ich hab Probleme das Deutschkauderwelsch 
zu verstehen, sorry.

Viel Spass noch, Dir und Deinen Mitstreitern vielleicht nennt Euch der 
Lehrer auch gleich die Lösung, dann bleibt Zeit zum "Simmsen".

Gruß
QUAX

von Kajee (Gast)


Lesenswert?

Tut mir leid ich steh heute ein wenig unter zeitdruck. ich versuche mal 
mehr auf meine aussprache zu achten.

von Peter D. (peda)


Lesenswert?

Kajee schrieb:
> wollt ihr nun mich einfach runter machen, weil ich hilfe brauche?

Nein.

Ich wollte nur darauf hinweisen, daß es bei der MC Programmierung nicht 
reicht, eine fertige Lib aufzurufen, sondern daß man auch verstehen muß, 
was diese Lib macht.

In der Regel sind nämlich die Libs nicht so portabel, wie bei einem PC, 
wo die Hardware immer gleich ist, sondern man muß einige Anpassungen 
vornehmen. Und das geht eben nicht, wenn man die Lib nur als Black-Box 
ansieht.

Wie schon gesagt, der LCD-Code sieht recht gut aus, darauf kann man 
aufbauen. Da sind bestimmt auch noch Header und Zeichensätze dabei 
gewesen.

Daß Du mit dem Code nicht klarkommst, liegt bestimmt daran, daß Du nicht 
in die Datenblätter geschaut hast. Im Datenblatt des MC findest Du das 
SPI und im Datenblatt des LCD die Kommandos und die Adressierung des 
Bildspeichers.


Peter

von Kajee (Gast)


Lesenswert?

wie gesagt ich hab immernoch alle unterlagen, jedoch weiss ich IMMERNOCH 
nicht wie ich die grafiken und texte in zusammen auf die scheibe 
bekomme.

von Peter D. (peda)


Lesenswert?

Wenn Du gar keinen Ansatzpunkt hast, dann ist die Aufgabe eindeutig zu 
schwer für Dich.
Dann mußt Du eben erstmal die Grundlagen lernen.
Also LED blinken, 7-Segment Anzeige, UART, SPI, Text-LCD.
Aber selber geschrieben, ganz ohne fremde Libs.

Die Treiber für spezielle Hardware selber zu schreiben, ist Alltag bei 
der MC-Programmierung. Du hast ja kein Windows auf dem MC laufen.


Peter

von Kajee (Gast)


Lesenswert?

Ach vergisst es! ich habs satt! closed die scheisse einfach und zeigt 
dass ihr fürs helfen nicht fähig seid! ich frag einfach in einem forum 
wo man den tatsächlichen sinn eines forums erkannt hat. So ein scheiss 
ist mir echt zu dumm

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dem Kinde kann geholfen werden.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.