mikrocontroller.net

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


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach so: das ganze soll mittels VHDL geschehen.

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MIcha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: breti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/r...

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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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=%22SC1602...

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

Autor: breti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MIcha (Gast)
Datum:

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

Gruß Micha

Autor: Konstantin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Versuch es mal hiermit.

Grüsse

Konstantin

Autor: Konstantin (Gast)
Datum:

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

Konstantin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.