Die DOG-M Display Serie von Electronic Assembly sind sogenannte Display-on-Glass LCD-Displays die sehr kompakt und preiswert sind. Hier folgt jetzt ein Beispiel wie man diese an der Cortex-CPU von ST STM32F103RB betreiben kann. Ich verwende das EA DOG-M162 Display mit 2 Zeilen a 16 Character oder auch das DOG-M163 mit drei Zeilen. Das nachfolgende Bild zeigt das Display auf einem Experimentierboard als 2-zeiliges 162er Display oder als 3-zeiliges 163er Display:

 

 

Die meisten CPUs werden mit 3.3V betrieben - daher wird hier auch nur darauf eingegangen wie man diese Displays unter 3.3V betreibt und programmiert. Zunächst muss man wissen, dass das Display bei unterschiedlichen Betriebsspannungen unterschiedlich initialisiert werden muss, sonst schaltet sich die integrierte Ladungspumpe nicht ein und das Display bleibt dunkel.

Hier kommt das wichtigste - die Initialisierungssequenz des DOGM 162/163 für SPI Mode bei 3.3V:

0x39 0x1C 0x55 0x6D 0x74 0x38 0x04 0x01 0x06

 

Für die Initialisierung des SPI Busses benötigt man ebenfalls umfangreiche Einstellungen und es bedarf auch zusätzlicher Funtionen wenn man mehrere SPI-Devices auf demselben Bus betreiben will.

Die Programmierung der SPI1 Clock erfolgt durch den folgenden Befehl:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC| RCC_APB2Periph_SPI1, ENABLE);

Im Beipielprogramm wird dies richtig programmiert.

Entwickelt und getestet habe ich das Programm auf dem STM32 Olimexino Board von Olimex.

Der Anschluss an den Prozessor erfolgt nach folgendem Ausschnitt aus dem Datenblatt des Displays:

 

Der Anschluss an das Olimexino STM32-Board erfolgt über die SPI1 Schnittstelle und ist wie folgt:

* SPI Connections STM32F103     DOG-M Connections
* D6    : PA8     CS                nc
* xD10    : PA4     SPI1 NSS        RS Pin 39 yellow
* xD11    : PA7     MOSI1            SI Pin 28 white
* D12    : PA6    MISO1            nc    - Display data cannot be read back
* xD13    : PA5     SCK                CLK Pin 29 blue

Unter dem folgenden Link findet sich ein Beispielprogramm sowie eine DOGM Library für den STM32 Prozessor.  Eigentlich einfach zu benutzen - man benötigt nur wenige Funktionen:

dogm_display_string(char *string) um einen Text auszugeben und

void dogm_cursor( uint8_t row, uint8_t column ) um vorher den Cursor an die richtige Stelle zu setzen.