www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI & LC-Touch-Display


Autor: Leif-Thore (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen liebe Leute...

Ich habe da ein Problem mit einem AT89C51CC03 und dem eDIP240-7 von 
Electronics Assembly... Ich versuche das Display über den SPI-Bus 
anzusteuern... Wenn ich die Datenübertragung so tätige wie im Anhang, 
dann zeigt mir das Display dauerhaft nur Striche an...

siehe hier: http://shoku.de/upload/LC-Display.jpg

Das Datenübertragungsprotokoll habe ich nach dem Datenblatt gestaltet...

siehe hier: http://lcd-module.de/deu/pdf/grafik/edip240-7.pdf

Eigentlich sollte ein Strich von links oben, nach rechts oben gezeichnet 
werden. Wie in dem Bild zu sehen ist, tut das Display dies leider 
nicht... Da ich ziemlicher neuling auf dem Gebiet bin, weiß ich auch 
leider nich wie ich Daten empfangen und auswerten kann, die das Display 
zurücksendet...

ich würde mich wirklich freuen wenn ihr mir helfen könnt, mein kopf 
qualmt langsam schon und ich habe geschätze 3,5millionen internetseiten 
durchstöbert ^^

Ich arbeite mit Jens File Editor und Atmel Flip, falls dies für 
irgendjemanden wichtig ist...

Mit freundlichem Gruß
Leif-Thore Preuß

Autor: ROFL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan?

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die beschaltung aus dem Datenblatt des Displays für SPI-Bus habe ich auf 
Lochraster zusammengebaut...

CPOL, CPHA und DPON liegen auf LOW...

CLK Ruhezustand ist damit LOW
Übernahme soll bei 1. Flanke geschehen
und das MSB soll zuerst übertragen werden...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leif-Thore wrote:
> Eigentlich sollte ein Strich von links oben, nach rechts oben gezeichnet
> werden. Wie in dem Bild zu sehen ist, tut das Display dies leider
> nicht...

SPI-Takt auf max 100kHz runter setzen (z.B. entsprechende Anzahl NOPs 
einfügen).


Peter

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kriege ich raus wieviele nop's einzusetzen sind? bzw. was bewirkt 
ein nop ? kann man pauschal sagen, 1 nop entspricht so und soviel hz 
oder wie auch immer? mit nops habe ich noch nie gearbeitet...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt nicht am Takt^^....dieses Problem hatten wir auch einmal mit 
dem gleichen Display...führ mal einen HW Reset durch ich glaub so haben 
wir es damals gelöst...ich frag nochmal nach wie wir es damals gelöst 
hatten...

MFG

Autor: ROFL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DORD auch auf LOW?

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja klar meinte DORD habe versehentlich DPOM geschrieben... DORD ist auf 
LOW

Autor: ROFL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube auch, dass
        CLK=1;
        CLK=0;
zu schnell ist.

5us sollten zwischen der high und der low flanke sein, damit du auf der 
sicheren seite bis.
-> mit dem oszi mal nachmessen.

Autor: ROFL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man kann die clock z.B. auch so schon mal etwas "symmetrischer" machen:

    for (mask=0x80; mask; )
       {
        if (data_out & mask) MOSI=1;
        else MOSI=0;
        CLK=1;
        mask>>=1;
        CLK=0;
       }

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
komme leider erst morgen auf arbeit an das OSZI... werde dann mal bilder 
machen und sie euch hochladen... was mich halt sehr wundert ist, dass 
das display für jeder SPI_OUT aufruf ein zeichen in form eines Striches 
auf dem display anzeigt... 13 spi_out aufrufe, 13 striche... wie ich den 
ACK bzw. NAK auslesen kann habe ich auch noch nicht auf die reihe 
bekommen... habe halt die minimalsten grundkenntnisse von C damit man 
damit zurecht kommt... über jede weiter hilfe z.b. auch mit den nops, 
wäre ich dankbar...

p.s. ROFL ich habe das so umgebaut wie du vorgeschlagen hast, verändert 
hat sich nicht viel :)

danke schonmal für die schnellen antworten...

Autor: Tim R. (vref)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wolltest doch sicherlich das Beispiel aus dem Datenblatt 
ausprobieren:
$11 $0A $1B $44 $4C $1B $47 $44 $00 $00 $EF $7F

was du an das Display schickst ist allerdings:
$11 $0A $1B $47 $4C $1B $44 $47 $00 $00 $EF $7F

suche den Unterschied ;-)

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der kleine schnitzer ist im aktuellen quelltext schon behoben... es gibt 
trotzdem keinen unterschied... weiterhin striche...

Autor: Tim R. (vref)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Schnitzer ist gut.
Falsches Kommando könnte man dazu auch sagen... ;-)
Ich hoffe du hast auch alle 3 falsche Bytes berichtigt:

$11 $0A $1B $44 $4C $1B $47 $44 $00 $00 $EF $7F
            ^^^         ^^^ ^^^

Probier doch auch mal einfachere Kommandos aus. z.B. ESC D S

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
werde ich morgen mal ausprobieren... habe jedoch auch die beobachtung 
gemacht, dass es egal ist was ich sende, auch wenn ich nur einen wert 
sende, zeigt er mir den strich... aber wie gesagt werde es morgen 
nochmal probieren einfachere befehle zu senden...

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe heute mal mit dem Oszi nachgemessen, der Slaveselect und der 
Takt sind wunderbar... auf der Datenleitung wird jedoch nur müll in form 
eines Taktes ausgegeben... werde nachher mal nen foto erstellen gibt 
gleich erstmal frühstück ^^

Autor: Leif-Thore (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
soo bilder vom oszi sind ungünstig, ich habe es aber jetz durch direkten 
anschluss an den Bus soweit hinbekommen, dass die datenleitung mir nen 
sauberen clock rausgibt... die Daten die das display empfängt bzw. 
ausgibt sind jetzt keine striche mehr sondern hyroglyphen

siehe hier: http://shoku.de/upload/LGIM0015.jpg

den quellcode habe ich ebenfalls abgeändert, ich habe ihn einmal mit dem 
wait ausprobiert und einmal ohne wait, ausser das die zeichen schneller 
auf dem display erscheinen ist kein unterschied zu erkennen... falls 
jemand noch ne idee hat ich wäre dankbar...

mfg Leif-Thore

Autor: Leif-Thore (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn es etwas doofes an der forensoftware gibt, dann ist es sehr 
wahrscheinlich die tatsache das die posts immer zu doof verrutschen.. 
push

Autor: Tim R. (vref)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> soo bilder vom oszi sind ungünstig, ich habe es aber jetz durch direkten
> anschluss an den Bus soweit hinbekommen, dass die datenleitung mir nen
> sauberen clock rausgibt...

???
Verstehe nicht was das heissen soll.
ALLE Signale müssen sauber sein.

Hast du / kannst du dir ein 4 Kanal-Speicheroszi leihen?
Trigger mal Singleshot auf fallende CS und guck dir die CLK und MOSI 
Signale an ob es dem entspricht, was das Display erwartet. Zumindest das 
erste Byte (0x11) sollte auf dem Oszi gut ablesbar sein.

Evtl. hast du auch ein Pegelproblem.
Welchen Pegel erzeugt dein uC? Das Display erwartet minimum 0.6*VCC 
(vermutlich 0.6*5V=3.0V) als High Pegel. Selbst 3.3V uC IO-Pegel wären 
da schon fast knapp...

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]
  • [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.