Hallo Gemeinde,
ich versuche seit einigen Tagen den DOGL128W-6 LCD der Firma
Electronik-Assembly anzusteuern, leider ohne Erfolg.
Ich habe mit einem Logik-Analysator direkt an den Pins des LCD's die
Pegel gemessen. Nach meiner Auffassung kommen da auch genau die
Hexa-werte die ich zur Initialisierung brauche an, nur leider gibt der
Display nichts von sich und da ich leider aus dem Display nichts
auslesen kann, weis ich nicht ob es jetzt an meiner Programmierung liegt
oder am Display selbst....
Der Display wurde vor ca. einem Monat mit der vom Hersteller
Vertriebenen Fassung am PC überprüft un lief ohne Probleme! Also möchte
ich einen fehlerhaften Display nahezu ausschließen.
Ich denke eher, es muss irgend etwas generelles sein, was ich falsch
mache:-/ ich weis nur leider nicht was. Vielleicht könnt Ihr mir bei
diesem Problem helfen.
Zu dem Programm: Ich habe eine Beispieldatei von Ti umgemodelt um Fehler
z.B. in der SPI init auszumerzen. Ich übertrage die Hexa-Werte alle
einzeln um zwischendurch besser anhalten zu können, leider hat mir das
bis jetzt nicht wirklich etwas gebracht.
Das ungenutzte und dann automatisch gesetzte RX-Buffer-Flag fetze ich
vor jedem Senden zurück, so dass es daran nicht liegen kann(hoffe ich)
Ich habe auch schon versucht, nach jedem gesendeten wert CS auf '1'
und/oder A0 auf '1' zu setzen. Leider hat das auch nichts geholfen...
Ich hoffe Ihr habt noch die eine oder andere Idee?!
Danke schon mal und viele Grüße
Christian
Vergleiche doch mal die Initialisierung am PC mit der, die Du hier
machst -- mit Deinem Logikanalysator solltest Du schnell die
Unterschiede sehen können.
Hallo Rufus,
ich mache die Initialisierung, die der Hersteller in dem Datenblatt
vorgibt. Deswegen wundert es mich ja, das es nicht funktioniert... Oder
Reden wir aneinander vorbei?
Christian D. schrieb:> Oder Reden wir aneinander vorbei?
Du schriebst, daß Du einen funktionierenden Testaufbau mit einem PC
hast. Nimm den, häng Deinen Logikanalysator da dran und sieh Dir an, ob
sich das, was der anzeigt, von dem unterscheidet, was Du an Deinem nicht
funktionierenden Aufbau mit dem MSP430 misst.
Es geht also nicht darum, das Geschreibsel in den --meiner Ansicht nach
recht schrecklichen-- EA-Datenblättern zu interpretieren, sondern ein
laufendes und ein nichtlaufendes System auf Unterschiede zu untersuchen.
Das hilft dann eventuell auch, den bei EA-Datenblättern immer
vorhandenen Interpretationsspielraum einzugrenzen.
Hallo Christian,
auf der Supportseite von EA gibt es ein Beispiel für die Initialisierung
auf einem MSP430. Schau dir den Code doch mal an, vlt findest du damit
ja das Problem.
Wenn das so einfach wäre... leider habe ich den Adapter nicht hier und
auch nicht die Möglichkeit wieder an diesen zu kommen. Es geht mir eher
um die Fragen:
wird das SPI richtig genutzt, ich wundere mich etwas über die einzelnen
"Taktblöcke", ist das normal so? Kommt das vom Hardware SPI?
Ich befürchte ja immer noch, dass ich irgendeinen generellen Fehler
mache, weis aber leider nicht weiter, mit dem PC-Modul wollte ich nur
sagen, dass das LCD-Modul in Ordnung ist
Christian D. schrieb:> ich wundere mich etwas über die einzelnen> "Taktblöcke", ist das normal so? Kommt das vom Hardware SPI?
Die SPI-Schnittstelle erzeugt nur dann ein Taktsignal, wenn sie Daten zu
übertragen hat, insofern ist das normal.
> Ich habe eine Beispieldatei von Ti umgemodelt um Fehler> z.B. in der SPI init auszumerzen.
Poste mal Deinen Code, und erkläre mal nebenbei, was für Fehler Du in
welchem TI-Beispielcode beseitigt haben willst.
> Das ungenutzte und dann automatisch gesetzte RX-Buffer-Flag> fetze ich vor jedem Senden zurück
Das klingt wirr.
Achja: Poste auch einen Schaltplan, daß man sehen kann, wie Dein
Display mit dem 'G2553 verbunden ist.
Rufus Τ. Firefly schrieb:> Poste auch einen Schaltplan, daß man sehen kann, wie Dein> Display mit dem 'G2553 verbunden ist.
Das könnte wirklich hilfreich sein...
So funktionierts bei mir, 3,3V Single Supply, ist aber bestimmt noch
verbesserungsfähig:
1
voidSetupDisplay(void)
2
{
3
//Ports:
4
//
5
//SCL P5.3
6
//MOSI P5.1
7
//#CS1B P5.0
8
//A0 P4.7
9
//#Reset P4.6 !!!Only Pull Down (active or passive)!!!
Anhang:
Ich habe gerade gesehen, dass ich das DOG M 128W-6 benutze, nicht DOG
W 128W-6. Sieht aber im Datenblatt nach der gleichen initialisierung
aus.
Guten Abend,
MSP430G2xx3
// -----------------
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.2|-> Data Out (UCA0SIMO)
// | |
// LED <-|P1.0 P1.1|<- Data In (UCA0SOMI) braucht das?
// | |
// Slave reset <-|P1.5 P1.4|-> Serial Clock Out (UCA0CLK)
// | |
// | |
// | |
// CS <-|P1.3 |
// | |
// A0 <-|P1.6 |
so sieht das ganze aus, habe die Schaltung im Moment erstmal auf nem
Steckbrett aufgebaut. P1.1 wird nicht genutzt, der stammt noch auf dem
SPI-Beispiel von TI.
Also zu dem Flag: Ich habe gelesen, das bei SPI die Übertragung synchron
abläuft, d.h. der MSP versucht während des Sendens etwas zu lesen, was
im empfangsbuffer zwischengespeichert wird, liest man den Buffer nicht
aus, löst dieses Flag aus.
Ich habe die Codes verglichen und für mich sehen die identisch aus, halt
nur Derivat bedingte unterschiede... natürlich mache ich das alles
"manuell" um besser Breakpoints setzen zu können....
Ich bin langsam echt am verzweifeln:-/
Hallo Leute,
ich habe heute endlich den Fehler gefunden! Und zwar hat mein Steckbrett
einen Wackelkontakt! Jetzt habe ich das alles auf einer Platine fest
verlötet und alles läuft wunderbar! Mein Programm ist vollkommen korrekt
nur etwas umständlich aber das wird sich nun ändern;-)
Danke für die schnelle Hilfe
Viele Grüße
Christian
Christian D. schrieb:> Mein Programm ist vollkommen korrekt> nur etwas umständlich aber das wird sich nun ändern;-)
Hi Christian,
Ich versuche momentan mein DOGM 132-5(selber controller) anzusteuern und
wollte fragen ob du den code noch erweitert hast
Wäre super wenn das ganze übersichtlicher wäre :)
Grüsse Wide