Ich hab inzwischen leider jeden Tread den ich in der Suche zu DOGM /
DOG-M gefunden hab durchgeschaut aber irgendwie find ich nirgends eine
Lösung für C und SPI.
Deshalb wollte ich mal fragen ob hier jemand eine Funktionierende Source
für das Dog-m Display hat(für nen Mega). Denn irgendwie bekomm ich da
nie auch nur ein Lebenszeichen von dem dummen Ding und ich habs leider
als Aufbau mit Spi und wollte das nur umändern wenn es nicht anders geht
^^
Wäre für Hilfe dankbar da ich leider keinen Ansatz von Code bisher habe
außer halt verschiedenen die ich getestet hab aus den Treads. Ich wollte
mich nur wegen mangels an Zeit nicht unbedingt Tage hinsetzen und
versuchen als relativer Anfänger die Timings im Datenblatt nachzubauen.
Nur noch eine allgemeine Frage dazu: Wie schwer ist es das Teil in Spi
zum laufen zu bekommen? Oder soll ich lieber gleich auf 4bit ausweichen?
P.s. hab schon andere Displays zum laufen bekommen also etwas Kentniss
ist da ^^ (auch Taster, LED´s, Entprellen, ADC, USART usw.) nur Spi
hatte ich bisher noch nicht gehabt. Ganz vergessen Hardware ist Mega8
auf dem Stk500 @ 8Mhz interner Quarz falls das irgendwie relevant sein
sollte. Das Display (2 Zeilen) ist Spi 5V Aufbau aus dem Datenblatt.
Grüße Puppetmaster
Wow, noch einer, der auch Nachts noch an seinem Projekt arbeitet :-)
Also, das LCD was du benutzt hat eine parallele Schnittstelle. Das SPI
ist aber eine serielle Schnittstelle. Das umzubauen waere echt ein
fieser Aufwand. Loete deine Platine um, alles andere macht leider wenig
Sinn.
Danke für die Antwort aber ich würd jetzt mal behaupten das das Display
beide hat ^^ behauptet zumindest das Datenblatt : 4-Bit, 8-Bit und
SPI-Interface
Ich arbeite an den Programmen fast immer abends und nachts ^^ Da hat man
wenigstens seine Ruhe und es ist extrem störend wenn man beim schreiben
von Schleifen usw abgelenkt wird =) da hatte ich schon die schönsten
Fehler.
Na wenn ich bis morgen Abend das nicht hinbekomme nehm ich das einfach
als 4bit oder 8bit ^.^ Dann häng ich halt nen µC direkt drann der mir
dann Übersetzer RS232-8Bit-Display spielt. Aber erst versuch ich das mit
dem Spi das brauch weniger Hardware.
Grüße Puppetmaster
Jau, stimmt das mit dem SPI, hab mir gerade noch einmal das Datenblatt
angeschaut. Entschuldige, ich hatte im Hinterkopf, dass das auch bloss
diesen 08/15-Hitachi-Controller drin haette. Dann kann ich dir leider
nicht helfen, sorry. Viel Erfolg noch!
Puppetmaster wrote:
> Ich hab inzwischen leider jeden Tread den ich in der Suche zu DOGM /> DOG-M gefunden hab durchgeschaut aber irgendwie find ich nirgends eine> Lösung für C und SPI.>> Deshalb wollte ich mal fragen ob hier jemand eine Funktionierende Source> für das Dog-m Display hat(für nen Mega). Denn irgendwie bekomm ich da> nie auch nur ein Lebenszeichen von dem dummen Ding und ich habs leider> als Aufbau mit Spi und wollte das nur umändern wenn es nicht anders geht>[...]ollte. Das Display (2 Zeilen) ist Spi 5V Aufbau aus dem Datenblatt.>> Grüße Puppetmaster
ist nicht das Problem? du schiebst einfach die Daten für das LCD über
die interne Harware Spi-Schnittstelle raus... SPI im Datenblatt ab Seite
122 (zumindest in meiner, zugegeben alten Version)
also (Pseudocode)
Macht überhaupt nix ^^ irren ist menschlich.
Zu dem Hardware Spi: Das Problem mit dem Display soll ein überkritisches
Timing sein weshalb ich noch keine Lösung mit hardware sondern nur mit
Software Spi versuchen gesehen hab. Leider ist es mir nie gelungen die
so zum laufen zu bekommen wenn ich den code kompilierbar an meinen µC
angepasst hab.
Na werds nacher noch mal versuchen. Vielen Dank vllt geht es ja mit
hardware Spi.
Grüße Puppetmaster
Puppetmaster wrote:
> Macht überhaupt nix ^^ irren ist menschlich.
?? wie? wo? was?
> Zu dem Hardware Spi: Das Problem mit dem Display soll ein überkritisches> Timing sein
wie kommt er darauf?
@Manfred B.: Das mit dem Irren meinte ich zu Rik einen Post über deinem
^^
Und Danke ich versuch das gleich mal deinen Code zu übernehmen @Thilo.
Das es nicht Zeitkritisch ist wundert mich aber etwas weil überall steht
das eben das das Problem des Displays wäre. Wenns nicht stimmt um so
besser.
Grüße Puppetmaster
Zeitkritisch sind nicht die 4M-Bit, sondern die Bytes, die nacheinander
geschickt werden. Also wenn der CLS Befehl geschickt wird, darf erst
nach x ms der nächste Befehl geschickt werden, ansonsten verschluckt er
welche!
Ok Danke ^^ ich hätte nur grade mal eine Frage zu deinem Code Thilo:
In dem werden oben die Pins definiert:
1
#define CTRL_RS PORT3
2
#define CTRL_SS PORT4
3
#define CTRL_MOSI PORT5
4
#define CTRL_MISO PORT6
5
#define CTRL_SCK PORT7
Jetzt hab ich die Frage wie häng ich das Display da dran.
Ich hab LCD-Data (Si) würde ich an MOSI hängen
dann hätte ich noch LCD-SCL würde ich an SCK
und dann noch LCD-RS das dann an RS kommt
Stimmt das so oder hab ich da etwas falsch?
2. Du hast unten hingeschrieben:
// Output-Stream VOR main zuweisen:
// FILE lcd_str = FDEV_SETUP_STREAM(write_char, NULL,
_FDEV_SETUP_WRITE);
//
// stderr für fprintf IN main zuweisen:
// stderr = &lcd_str;
Was heißt ich soll das vor der Main zuweisen?
Ich hätte die main bisher so:
Thilo M. wrote:
> Mit FILE legst du den Output-Stream für fprintf fest.
Ich nehme immer sprintf mit lcd_puts, dann spart man sich, extra SRAM
für das malloc zu reservieren und den ganzen malloc Verwaltungsoverhead.
Das macht sich deutlich im Codeverbrauch bemerkbar.
Peter
Peter Dannegger wrote:
> Thilo M. wrote:>> Mit FILE legst du den Output-Stream für fprintf fest.>> Ich nehme immer sprintf mit lcd_puts, dann spart man sich, extra SRAM> für das malloc zu reservieren und den ganzen malloc Verwaltungsoverhead.> Das macht sich deutlich im Codeverbrauch bemerkbar.>>> Peter
Gute Idee, habe grade ein kleines Platzproblem beim mega168, werde ich
mal probieren!
So langsam bin ich am verzweifeln. Entweder ich bin zu doof um das an
den Mega( anzupassen oder aber mein Display hat irgendwoher das
zeitliche Gesegnet und rührt sich deshalb nicht.
Kann mir vllt mal jemand drüberschauen ob er irgend einen groben Fehler
findet da ich irgendwie nichts mehr daran sehe was ich noch ändern
könnte.
Das ist meine main und im Anhang wäre dann die nur ganz leicht
abgeänderte Version von Thilos Source.
Hast du das Display an einem Labornetzteil?
Bei langsam ansteigender Versorgungsspannung hat das Teil Probleme mit
der Initialisierung.
Mach einfach bei laufendem System mal 'nen Reset.
Hast du einen 16MHz-Quarz und die Fuses richtig gesetzt? Ansonsten muss
die Taktfrequenz angepasste werden (SYSCLCK).
Ansonsten sollte es laufen.
Puppetmaster wrote:
> So langsam bin ich am verzweifeln. Entweder ich bin zu doof um das an> den Mega( anzupassen oder aber mein Display hat irgendwoher das> zeitliche Gesegnet und rührt sich deshalb nicht.
Was machst Du denn mit dem CSB-Pin?
Ich sehe da nirgends Code.
Ich verwende den wie bei SPI üblich, d.h. auf Low setzen vor dem Byte
und auf High setzen nach dem Byte.
Wie soll denn sonst das Display wissen, wo ein Byte zuende ist?
Auch kannst Du sonst keine weiteren SPI-ICs mit anschließen.
Es kann sein, daß Display und MC nach sehr sauberem Power on zufällig
synchron sind.
Aber das ist definitiv keine zuverlässige Arbeitsweise.
Einmal Reset gedrückt mitten im Byte und sie sind asynchron und fangen
sich nie wieder.
Und nimm mal dieses komische FILE raus und mach die Ausgabe direkt.
Ich weiß nicht, ob das so funktioniert, wie Du Dir das vorstellst.
Ich häng mal in die Codesammlung meinen funktionierenden Code.
Peter
Vielen Dank aber ich hab den Code nicht selbst geschrieben sondern hab
nur versucht ihn zu verwenden deshalb weiß ich nicht so genau wie ich
das umschreiben könnte da ich dafür erst mal genau verstehen müsste was
alles bewirkt. Da ist es bei egenem Code doch leichter etwas zu ändern
^^
Leider bekomme ich es auch nicht mit deiner Source zum laufen @Peter.
Ich geh langsam davon aus das das LCD irgendwoher beschädigt ist und ich
werd mir irgendwann mal die Zeit nehmen es Paralell anzusteuern und
versuchen ob es so geht.
Aber leider hab ich momentan nicht die Zeit dazu.
Ach noch zu dem CSB pin den hatte ich wie in der Grafik markiert an
Masse gelegt. Gehört der an einen Controler Pin? Ich hab leider SPI noch
nie verwendet und weiß es um ehrlich zu sein auch nicht was genau da wie
angeschlossen werden muss. Sollte ich vllt mal nachlesen bevor ich das
weiter versuch mit dem Display.
Allerdings nur als Frage hab ich es richtig bei dir angeschlossen ?
@Peter