Forum: Projekte & Code Dog-M / ST7036 Routine für 1-Zeiliges Display SPI-Mode


von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe mal angefangen eine Routine für den ST7036 Controller zu 
basteln.
Das ist der, der auf allen DOG-M Displays drauf ist.

Unterscheidung 3 / 5 V implementiert
Bis jetzt nur 1-Zeilig weil ich kein anderes Disp zum testen hab.
Nur SPI-Mode implementiert.

Wenn jemand mithelfen möchte alle Dog-M Displays zu implementieren oder 
mir jemand ein 3-Zeiliges Display stellen möchte, bitte melden.

Anregungen Kritik etc. immer willkommen.


Viel Spaß damit.

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

der angehaengte ging schonmal fuer 2 Zeilen...

in der main das
"fdevopen((void*)spi_out_delay_dat,NULL);" nicht vergessen dann klappt 
das auch mit printf.

Gruss Alex

von Michael K. (michaelkorb)


Lesenswert?

Im Wesentlichen unterscheiden sich nur die Zeilenadressen und die 
Handhabung der Zeilenzusammenschaltung. Wenn Interesse besteht, ich habe 
4Bit-Modus für 3.3 und 5V für 3- und 2-zeiliges gebaut. Bin gestern 
gerade auf das Problem gestoßen, weil ich versehentlich anstatt eines 
3zeiligen ein 2zeiliges bestellt habe.

von Chris (Gast)


Lesenswert?

Also laut Datenblatt ist der unterschied von 2 zu 3 Zeilen klein. 
Initialisierungswerte sind da gleich so weit ich das erkennen kann.

Wie gesagt - ich programmier halt nix rein wenn ich es net testen kann, 
aber nachdem hier im Forum mehr so Codeschnippsel rumflattern kann man 
sich ggf. da auch was zusammenbasteln.

Gruß
Chris

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich finde die DOG-M Displays auch Spitze. Deshalb steuere ich meine 
Basic-Codes in C dem Beitrag bei.

Die Beispiele sind für 2 und 3 zeilige Displays, Anpassung auf 
einzeilige Displays dürfte in Minuten erledigt sein (ein einzeiliges 
hatte ich nicht zur Verfügung). Ansteuerung erfolgt hierbei im 4- oder 
8-Bit Parallelmode, bei 5V Betriebsspannung. Für 3V sind kleinere 
Änderungen der Initialisierung notwendig, was im EA Datenblatt gut 
beschrieben ist.

Inhalt:
- 4-Bit Parallel-Mode für DOG-M 162 (2x16 Zeichen)
- 8-Bit Parallel-Mode für DOG-M 162 (2x16 Zeichen)
- 4-Bit Parallel-Mode für DOG-M 163 (3x16 Zeichen)
- 8-Bit Parallel-Mode für DOG-M 163 (3x16 Zeichen)

Der Code passt für SDCC 8051 (getestet mit Version 2.7.0 und
Standard-8051, 11.0592MHz) und kann sicher leicht auf andere MCs
portiert werden.

Gruß
Matthias
Kontakt: mm19 (ALTGR und Q) gmx-topmail.de

von Thilo M. (Gast)


Angehängte Dateien:

Lesenswert?

OK, möchte meinen Beitrag auch beisteuern.
Hier die Ansteuerung zum Einbinden und der Anschlussbelegung des 
Displays.

Läuft momentan auf einem ATmega32 @ 16MHz mit einer Übertragungsrate von 
4Mbit.

Das Display ist ein dreizeiliges DOG-M163B-A mit 5V Versorgung.

Für Verbesserungen bin ich immer dankbar ;)

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Nochn Beispiel.


Peter

von salat (Gast)


Lesenswert?

Guten Tag allerseits,
könnte jemand bitte C code für:
EA DOGM 163 im 5V 8Bit Parallel Modus
Posten. Arbeite mit AVR Studio (GCC)
Bin am verzweifeln....
Danke im vorraus.
salat

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Die Initialisierungsroutine aus dem Datenblatt (des Displays) 
funktioniert einwandfrei. Falls Sie das bei Dir nicht tut solltest Du 
den Fehler eher in der Initialisierung des SPI-Moduls suchen und ggf. 
mal nachmessen.

Gruss,
Micahel

von chris (Gast)


Lesenswert?

8bit parallel DOG M modul
init in datenblatt geht wenn man es grundsätzlich mehr als 26µs bis zum 
nächsten Command dauert - ansonsten delays einfügen !
im ST7036 wird genauer auf das timing eingegangen.
auch abfrage via busyflag geht erst nach dem ersten function cmd ans 
display

lg christoph

von Juppo N. (juppo)


Lesenswert?

Hallo

Laufen die Routinen auch auf das kleine Displa DOD S 102 ?

Gruß Juppo

von Da H. (darko91)


Lesenswert?

Thilo M. schrieb:
> OK, möchte meinen Beitrag auch beisteuern.
> Hier die Ansteuerung zum Einbinden und der Anschlussbelegung des
> Displays.
>
> Läuft momentan auf einem ATmega32 @ 16MHz mit einer Übertragungsrate von
> 4Mbit.
>
> Das Display ist ein dreizeiliges DOG-M163B-A mit 5V Versorgung.
>
> Für Verbesserungen bin ich immer dankbar ;)

Hallo,
Der Beitrag ist schon ein wenig veraltet, vielleicht liest das aber noch 
wer..
Ich möchte meinen ATMEGA328p mit dem DOGM162l-a verbinden
Im Datenblatt sind CLK, SI, RS und CSB beschrieben, in dieser 
Initialisierung sehe ich aber MOSI und MISO beschrieben - wie komm ich 
auf diese Pins? MOSI nehme ich an ist bei mir der SI (PORTB3), aber 
MISO?
1
#define CONTROLPORT PORTB    // PORTB
2
#define CONTROLDIRPORT DDRB  // DDRB
3
#define CTRL_RS PORT3        // PORTB1
4
#define CTRL_SS PORT4        // nehme an, hier ist CSB gemeint? Dann PORTB2
5
#define CTRL_MOSI PORT5      // ??
6
#define CTRL_MISO PORT6      // ??
7
#define CTRL_SCK PORT7       // PORTB5

Bin für jede Hilfe dankbar !!

LG
D.

von Datenblatt (Gast)


Lesenswert?

Wirf einen Blick in das Datenblatt zum Display und vom Chip. Da findest 
du den Hinweis, dass im seriellen Modus nur Schreiboperationen möglich 
sind.
Ergo braucht es keinen MISO.

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.