Forum: Mikrocontroller und Digitale Elektronik Newhaven SPI Display


von Jibba J. (Firma: keine) (jibbajibba)



Lesenswert?

Hallo

Ich habe mir ein Newhaven Display (NHD-C12832A1Z-FSW-FBW-3V3), 
graphisch, 128x32 gekauft.

Nun habe ich einen Adapterprint hergestellt, passend zu einem 
NucleoF411RET6.

Die Softwarekonfiguration mittels Keil V5 steht nun, und es gelingt mir 
bisher:

1.) die Initialisierungscommands (siehe Datenblatt) zu übermitteln
2.) Command Display einzuschalten (pixel werden sichtbar), scheint als 
sind alle eingeschaltet.

Wenn ich nun versuche, den Command "Alle Pixel on/off" zu senden 
passiert jedoch nichts mehr.

Ich werde aus dem Datenblatt nicht schlau, wie ich nun z.B. einzelne 
Pixel ansteuern soll. Woher kenne ich die jeweiligen Adressen?

Befehle die mir unklar sind, wie anzuwenden:

1.) Display start line set, adresse?
2.) Page adress set, adresse?
3.) Column adress set, adresse?

Ich habe einige Zeit nach Projekten gesucht für STM32 Cortex-M MCUs, 
allerdings bin ich nicht fündig geworden.

Ich suche:

1.) main code examples um den Ablauf der Commands zu analysieren.
2.) display librarys für Fonts

Kennt jemand passende Projekte? Tipps? Gut zu wissen?

von Stephan (Gast)


Lesenswert?

Hi,
du hast doch den Link zum Controller-Chip, was sagt der denn zu den 
Registern, da sollte es ja beschrieben sein. (besser?)

Jibba J. schrieb:
> Ich habe einige Zeit nach Projekten gesucht für STM32 Cortex-M MCUs,
> allerdings bin ich nicht fündig geworden.

Also als Cortex-M Programmierer sollte man das hinter sich haben. :-[
Auf der Seite zu deinen Displays, gibt es doch sogar ein Beispiele, auch 
für deins! Ist zwar C-Code für den 8051, aber verstehen solltest du den 
doch schon können.
>1.) main code examples um den Ablauf der Commands zu analysieren.
Da könntest du auch den Code auch debuggen und analysieren, wenn es ohne 
nicht geht.

>2.) display librarys für Fonts
gibt es hier in der Code-Sammlung

von Jibba J. (Firma: keine) (jibbajibba)


Lesenswert?

ST7565R Controller:
http://www.alldatasheet.com/datasheet-pdf/pdf/143439/ETC1/ST7565.html

Ich bin das ganze Thema erst am erlernen und mache jeden Schritt das 
erste Mal. Da hat man noch ein Bisschen Mühe ohne Examples zu arbeiten. 
Daher die Frage.
Die meisten Code examples sind leider nur für Arduino oder AVR Projekte 
ausgelegt und sehr schwierig zu übersetzen.

Daher wäre ich froh, wenn jemand diesen Controller via SPI mittels 
Cortex-M3/4 schon einmal angesteuert hat.

Vielen Dank für deine ersten Hinweise.

von Stephan (Gast)


Lesenswert?

So hier mal der C-Code für dein Display, in Code für 8051.
https://newhavendisplay.com/appnotes/excode/txt/CoGLCD/C12832A1Z.txt

den solltest du aber sicher schnelle in deinem Projekt umsetzen können.
Ist nur Pin wackeln! Software SPI ????

Wenn du den Code verstehst und er auch läuft, kannst du ihn für SPI 
umschreiben.
Den SPI Code solltest du in der LIB zu deinem MC finden und die 
Funktionen 'comm_out' und 'data_out' einfach anpassen.
Wenn du dazu Hilfe brauchst, zeig uns den SPI Code von deinem MC, 
vielleicht kennt sich hier jemand mit deinem MC auch aus. (STM32? da 
gibt es hier einige)

und der Hersteller deines Displays, hat auch den LCD-Controller 
verlinkt, ist von 2009 / ST7565R Ver 1.7c :
http://www.newhavendisplay.com/app_notes/ST7565R.pdf

In Figure 4 (S. 27/72) Ist der Bildaufbau dargestellt!
Ab Seite 41/72 werden die Register erklärt.

von Jim M. (turboj)


Lesenswert?

Jibba J. schrieb:
> Ich bin das ganze Thema erst am erlernen und mache jeden Schritt das
> erste Mal. Da hat man noch ein Bisschen Mühe ohne Examples zu arbeiten.
> Daher die Frage.

Jeder mir bekannte Hersteller hat Examples zum Thema "GPIO Pin wackeln" 
und "SPI Byte senden+empfangen". Mehr braucht auch Dein Display nicht.

Jibba J. schrieb:
> Die meisten Code examples sind leider nur für Arduino oder AVR Projekte
> ausgelegt und sehr schwierig zu übersetzen.

Die Idee ist, den Code für "Pin wackeln" und "SPI Byte Senden/Empfangen" 
auszutauschen (der sollte in eigenen Funktionen sein) und den Rest 
erstmal so zu lassen wie er ist. Das setzt natürlich ein 
Grundverständnis von C voraus, d.h. man sollte den K&R oder ein 
ähnliches Grundlagenwerk zur C Sprache mal durchgearbeitet haben.

von Stephan (Gast)


Lesenswert?

Wenn du willst kannst du doch deinen Code vom STM32 Forum auch hier 
reinstellen, um zu sehen ob einer den Fehler findet.

Wenn du das mit der SW-SPI nicht testen möchtest oder kannst, dann suche 
dir doch ein einfaches Beispiel aus deiner LIB zum SPI Code. (gibt es 
doch oder?)

Den Code könnten wir dann versuchen anzupassen, aber Hausaufgaben machen 
mag hier keiner. Etwas mußt du uns liefern.

von Karl H. (kbuchegg)


Lesenswert?

Stephan schrieb:
> Wenn du willst kannst du doch deinen Code vom STM32 Forum auch hier
> reinstellen, um zu sehen ob einer den Fehler findet.
>
> Wenn du das mit der SW-SPI nicht testen möchtest

PS: man kann gerade eine Software-SPI auch so langsam machen, dass es 
kein Problem ist an den Portpins (zb mit einer LED) zu kontrollieren, ob 
da das richtige rauskommt oder nicht.

Gerade wenn man selbst eine SPI erzeugen muss, ist das prädestiniert 
dafür, dass man sich von der korrekten Funktion überzeugen kann. Als 
synchrone Schnittstelle kann man die (meistens) so langsam machen wie 
man will ohne dass sich das Gegenüber daran stört

von Jibba J. (Firma: keine) (jibbajibba)


Lesenswert?

Stephan schrieb:
> Wenn du willst kannst du doch deinen Code vom STM32 Forum auch hier
> reinstellen, um zu sehen ob einer den Fehler findet.
>
> Wenn du das mit der SW-SPI nicht testen möchtest oder kannst, dann suche
> dir doch ein einfaches Beispiel aus deiner LIB zum SPI Code. (gibt es
> doch oder?)
>
> Den Code könnten wir dann versuchen anzupassen, aber Hausaufgaben machen
> mag hier keiner. Etwas mußt du uns liefern.

Alles klar, ich werde morgen code dazu liefern. hoffe das bringt uns 
weiter.

via logic analyser wurde die spi kommunikation schon kontrolliert, spi 
sendet was es soll. daher ist jetzt nur noch offen, was den gesendet 
werden soll.

von Stephan (Gast)


Lesenswert?

Jibba J. schrieb:
> via logic analyser wurde die spi kommunikation schon kontrolliert, spi
> sendet was es soll. daher ist jetzt nur noch offen, was den gesendet
> werden soll.

Das ist doch super :-)

dann nimm den Code und kopiere ihn in dein Projekt, damit solltest du 
dann erkennen was geht und wie....

https://newhavendisplay.com/appnotes/excode/txt/CoGLCD/C12832A1Z.txt


>was den gesendet werden soll.
Du hast den Bildaufbau aus dem PDF gesehen? was fehlt dir noch?

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.