Forum: FPGA, VHDL & Co. LC-Display ansteuern in VHDL


von Micha (Gast)


Lesenswert?

Hallo,
ich habe hier das ALTERA CycloneII Development Board.
Mit dem Board wurde auch ein LCD geliefert: SC1602D

Ich versuche nun schon länger, dieses ordentlich anzusteuern. Bislag
ohne nennenswerten Erfolg.

Weiß jemand wie das funktioniert?

Altera bietet leider kaum Hilfestellung oder ich habe sie immer noch
nicht entdecken können... ??

Gruß

von Micha (Gast)


Lesenswert?

ach so: das ganze soll mittels VHDL geschehen.

von schlumpf (Gast)


Lesenswert?

Datenblatt vom Display lesen.. Da wird genau beschreiben, wie man es
ansteuert. Welche Befehle in welcher Reihenfolge kommen müssen und wie
man dann die Daten in das Display bekommt, wie es initialisiert wird
etc...

Dann musst halt das ganze mittels FSM nachbilden (Datenleitungen, R/W,
mit allen zeitlichen Zusammenhängen) und könntest so z.B. ASCII-Zeichen
aus einem RAM auf dem Display darstellen.
ist insgesamt sicher nicht schwer, aberr aufwändig. An deiner Stelle
würd ich echt in Erwägung ziehen, das über nen Mini-NIOS in Software zu
lösen.

von MIcha (Gast)


Lesenswert?

hi, danke für die Hinweise. Im Datenblatt konnte ich bislang nur die
Pinbelegung und die technischen Daten finden. Eine "Anleitung" konnte
ich noch nicht ganz finden.

Was ist denn ein Mini-NIOS?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ist das ein Grafik-Display oder ein Text-Display? Reicht das interne RAM
des FPGA aus, oder muß noch extern angebaut werden - falls es ein
Grafikdisplay ist.
NIOS ist soweit ich weiß ein Mikroprozessor der in FPGAs untergebracht
wird.

von breti (Gast)


Lesenswert?

Hi,

also für das Xilinx Spartan3e Starterkit gibt es ein fertiges Modul für
das edk auf der Website. Natürlich nutzt dir das so als Modul wenig, da
du ja Altera benutzt. Alledings ist der eigentliche LCD Code in VHDL
geschrieben und liegt dem zip bei. Da könntst Du Dir sicherlich einiges
abschauen.

Man kann das Beispiel hier herunterladen (Connect LCD to MicroBlaze
Using an OPB Customer Peripheral):
http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm

Wenn Du das Zip entpackst, dann findest Du dort ein Unterverzeichnigs
pcores/hdl/vhdl
Dort liegt der VHDL Code.

Das Display am Starterkit wird übrigens mit 4Bit Datenbreite
angesprochen.

Gruß,
Thomas

von Jan (Gast)


Lesenswert?

Hallo Micha,
versuchs mal hiermit, ich hoffe das passt auf dein Display. Habe ich
gerade bei einem kurzen Ausflug in Google gefunden. Zumindest passt die
Bezeichnung:

http://rasteq.com/pdf/sc1602b.pdf#search=%22SC1602D%20timing%22

Dort ist eigentlich sehr genau beschrieben, wie das Display anzusteuern
ist. Scheinbar gitb es einen ganzen Befehlssatz. Zuerst muss das Display
 jedoch initialisiert werden, wie auf Seite 14 beschrieben. Ich denke
damit wärst du fürs erste beschäftigt :)

In diesem Sinne. Gutes gelingen.
Gruß, Jan

von breti (Gast)


Lesenswert?

Ach ja,

ich sollte vielleicht noch erwähnen, dass Dein Display (genau wie das
auf dem Starterkit) beide HD44780 kompatibel sind. Daher sollte der
VHDL Code von Xilinx bei Dir auch funktionieren.

Gruß,
Thomas

von schlumpf (Gast)


Lesenswert?

Mit nem Mini-NIOS meinte ich einfach einen NIOS in
Minimalkonfiguration.
Der NIOS ist ein speziell für Altera-FPGAs entwickelter uC-Core.
Das Datenblatt für das Display hast ja jetzt von Jan bekommen und somit
kannste loslegen ;-)
Ich würd es aber nach wie vor so machen, dass ich das Ding über nen
Mikrocontroller ansteuern würde.

von T.M. (Gast)


Lesenswert?

Ne einfache Statemachine reicht da völlig zu. Ich weiss nicht, ob da ein
uC-Core lohnt. Ausser man braucht ihn eh noch für was anderes.


T.M.

von schlumpf (Gast)


Lesenswert?

@T.M.
Kommt drauf an, was du damit machen willst...
Wenn du natürlich nur das Timing machen willst, dann geb ich dir recht,
aber wenn du die komplette Initialisierung etc machen willst, dann
reicht dir eine einfache Statemachine nicht mehr aus. Du hast
unterschiedliche Zeiten, musst dir eine Component schreiben, die die
Daten aus dem Ram holt, die dargestellt werden sollen etc...
Also wenn du z.B. sich ändernde Messwerte auf dem Display darstellen
willst udn das rein in VHDL realisieren willst, dann hast schon ein
bisschen was zu tun...

von T.M. (Gast)


Lesenswert?

Ja das mit den Messwerten seh ich ein.

Es kommt halt drauf an, was man machen will. Ich hatte das mal für nen
kleines Projekt entwickelt, wo ich von einem im FPGA befindlichen
Miniprozessor die Daten auf dem Display darstellen wollte. Ich hab das
dann mit 3 FSM realisiert: Initialisierung, Zeichen schreiben & Zeile
wechseln. Ging eigentlich ganz gut.

Ich hab nur ein "Problem" damit, dass jedesmal nach einem uC-Core
gerufen wird. Da verliert man ja gerade die ganzen Vorteile eines FPGA
in Sachen Parallelität wieder.


T.M.

von Jürgen Schuhmacher (Gast)


Lesenswert?

"Ich hab nur ein "Problem" damit, dass jedesmal nach einem uC-Core
gerufen wird. Da verliert man ja gerade die ganzen Vorteile eines FPGA
in Sachen Parallelität wieder."

Einen uC braucht man dafür wirklich nicht. Ich würde das RAM im Altera
als dp-Ram abbilden (Register) und hinten ein fsm dranhängen, die das
lolevel-Timing bewerkstelligt.

von MIcha (Gast)


Lesenswert?

HI,
danke für die vielen Beiträge,
Vor allem der Link von Jan hat mich weitergebracht!

Gruß Micha

von Konstantin (Gast)


Angehängte Dateien:

Lesenswert?

Versuch es mal hiermit.

Grüsse

Konstantin

von Konstantin (Gast)


Lesenswert?

Die VHDL Datei ist natürlich für das o.g. Display :-)

Konstantin

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.