Forum: Mikrocontroller und Digitale Elektronik Serialles LCD Display - Ansteuerproblem


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen AT90S8515 und versuche über PortB ein 4-Pin LCD Display
(WD-C080-1P [von pollin.de])anzusteuern. Habe die Belegung so gewählt:

SI:PINB0 - Daten schreiben
SK:PINB1 - Daten clock
SO:PINB2 - Daten lesen
CS:PINB3 - Device select

Bitte die Daten des LCDs aus dem 3 seitigen pdf Manual entnehmen. ich
habe dann ein Testprogramm (test.c) geschrieben. Ich bekomm es aber
einfach nicht hin, dass mir etwas angezeigt wird.

Mach ich was falsch ?

Bitte um Hilfe.

Daten sind als Anhang zu finden.

Gruss

Michael

von Josef (Gast)


Lesenswert?

Ohne Code schwierig

Josef

von Michael (Gast)


Lesenswert?

der code ist in dem angehänten ZIP file dabei (test01.c)

von Josef (Gast)


Lesenswert?

Würde zuerst CS immer auf low (high) geben (direkt an Spannung) , um die
Anzeige dauernd zu aktivieren. Als nächstes würde ich Clock und die
Daten nicht gleichzeitig schalten. Zuerst die Datenleitung setzen,
warten und dann einen sauberen Clockimpuls geben (high / wait low).
Ob  7 oder 8 Datenbits getaktet werden bin ich mir auch nicht sicher.
(Testen mit AVR Studio) Danach würde ich mit einem günstigen
Logikanalyser (ZB. von ELV MLAB100) das Clocksignal und das Datensignal
aufnehmen. Zur besseren Sichtbarmachung würde ich die
Zeitkonstanten erhöhen.



Josef

von Michael (Gast)


Lesenswert?

Hallo,

das mit der "Zeitdehnung" hab ich schon versucht. Da schaltet er alle
Signale soweit wie gewünscht. Ich glaube die Signale sind bei der
Geschwindigkeit nicht richtig im mükrosekunden Takt geschlatet.
das Problem liegt irgendwie an der zeit, die die einzelenen Befehle
schon schlucken.

Also er taktet von 7 bis 0 (das sind 8) und laut manual sollen ja auch
8 geschikkt werden.

Aber mir fällt grad was ein: könnt ich da nicht die RS232 Schnittstelle
verwenden ?

von Kai M. Tegtmeier (Gast)


Lesenswert?

@Josef:

Bin zur Zeit grad auf der Suche nach einem günstigen Logikanalysator.
Konnte den von Dir beschriebenen MLAB100 bei ELV nicht finden. Kannst
Du da noch ein paar weitere Informationen geben?!?

Vielen Dank im Voraus!

Kai M. Tegtmeier

von Josef (Gast)


Lesenswert?

Wenn es von der Anzeige unterstütz wird - schon. Aber du brauchst ja ein
Clocksignal und das uterstützt die RS232 nicht.


Josef

von Michael (Gast)


Lesenswert?

Hallo,

reichen die 8 MHZ dazu überhaupt aus. Wären 0,125 mükrosekunden. sollte
ja langen, um zu takten.

Aber ich kann bei der Taktflanke der clock nicht warten und dann das
Datenbit setzen, denn ich hab dann nur 200 nanosekunden zeit. Die muss
man schon zusammen setzen.

von Josef (Gast)


Lesenswert?

Mini-Logic-Analyzer MLA 1000

    Der Mini-Logic-Analyzer MLA 1000 bietet umfangreiche Möglichkeiten
zur Überprüfung von komplexen Vorgängen in der Digitaltechnik. Mit
Abtastraten von 50 µs - 3 s können bis zu 8 Kanäle gleichzeitig in
Echtzeit erfasst und auf einem PC-Bildschirm dargestellt werden.
      Bezeichnung: Anzahl: Preis:
 Mini-Logic-Analyzer MLA 1000 Komplettbausatz inkl. Software
Artikel-Nr.: 68-469-48
    79,95 €

von Josef (Gast)


Lesenswert?

Wenn du ein Datenblatt hast, kann ich mir das Timing ansehen.

Am besten du setzt das Datenbit, wartest kurz, gibst einen Clockimpuls,
wartest - und das 8 mal - nicht 7 mal !


Josef

von Michael (Gast)


Lesenswert?

hallo,

das pdf im anhang ist das einzigste was dabei ist. Ist alles in dem
separaten ZIP im ZIP...

von Josef (Gast)


Lesenswert?

geht leider nicht mit dem pdf

von Michael (Gast)


Lesenswert?


von Josef (Gast)


Lesenswert?

Meldet sich die Anzeige mit der Firmware ? Startzeit 250 ms
berücksichtigt ? Die Anzeige arbeitet mit SPI/Microwire.
Diese Schnittstelle haben die AVR Controller on Board.
Die würde ich nehmen. Mittels Software glaube ich nicht, daß du SPI
simulieren wirst können (Timinprobleme, sehr komplex).
Ansonsten würde ich das Testprogramm mit der LPT1 verwenden.


Josef

von Michael (Gast)


Lesenswert?

hallo

oh die haben SPI on board ? ich bin noch relativ neu auf dem
AVR-Gebiet...na dann schau ich mir das natürlich mal an ....

Das Testprogramm mit der LPT1 is ja nur für den PC, aber ich brauch es
ja an einem AVR.

Danke für die Hilfe.

Gruss

Michael

von Ronny Schulz (Gast)


Lesenswert?

Also hast Du es überhaupt richtig angeschlossen? Im Code benutzt Du
PORTB-OUT und PORTD-IN. Hier ganz oben sieht das ganz anders aus.

Dann schreibst Du nur 7 Bit anstatt 8, soweit ich das richtig sehe.
Außerdem solltest Du hiernach noch 2ms warten:

outp(0x08,PORTB); //cs high

Des weiteren solltest Du den SK erst dann auf High setzen, wenn das
Signal richtig steht. Deshalb lege einfach Dein Datenbit an SI an,
warte mindestens 200ns, lege dann den SK an und warte mindetens weitere
200ns, nimm SK und SI weg und warte so lange das mit den gesamten
Zeiten eben mindestens 1us um ist. Ich würde es eher versuchen überall
500us zu warten. Damit müsste das eigentlich locker klappen.

Und noch ein TIPP: Die Wartesachen geht mit ASM wesentlich genauer und
einfacher. :)

von Michael (Gast)


Lesenswert?

hallo,

danke für die vielen Anregungen und die Hilfe. Ich habs geschafft. Hab
mir aus der avrlib die SPI Funktionen angesehen und siehe da SPI geht.
Leider hab ich erst nach 1h rausgefunden, dass CS also SS nicht richtig
gesetzt wird in der avrlib. aber jetzt geht es.

Danke

gruss

Michael

von Kai M. Tegtmeier (Gast)


Lesenswert?

@Josef:

Habs jetzt gefunden! Vielen Dank für die Info und ein schönes
Wochenende wünscht

Kai M. Tegtmeier

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.