Obsługa graficznego wyświetlacza z telefonu Nokia 3310 za pomocą mikrokontrolerów STM32
Polecenia sterownika PCD8544
Sterownik akceptuje dwa zestawy komend: standardowy i rozszerzony, ich opisy zestawiono w tab. 1.
Tab. 1. Polecenia sterownika PCD8544 (zgodnie z dokumentacją firmy NXP)
| Instrukcja | D/C | Bajt komendy | Opis | ||||||||
| DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||||
| H=0 lub H=1 | |||||||||||
| NOP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Nic nie rób | |
| Function Set | 0 | 0 | 0 | 1 | 0 | 0 | PD | V | H | Tryb obniżonego poboru energii (PD), adresowania (V) i komendy rozszerzone (H) | |
| Write Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Zapisanie pamięci RAM | |
| H=0 podstawowy zestaw komend | |||||||||||
| Reserved | 0 | 0 | 0 | 0 | 0 | 1 | X | X | Nie używać | ||
| Display Control | 0 | 0 | 0 | 0 | 0 | 1 | D | 0 | E | Konfiguracja wyświetlacza | |
| Reserved | 0 | 0 | 0 | 0 | 1 | x | x | X | X | Nie używać | |
| 0 | 0 | 1 | 0 | 0 | 0 | Y2 | Y1 | Y0 | Ustawienie licznika wierszy 0…5 | ||
| Set X address | 0 | 1 | X6 | X5 | X4 | X3 | X2 | X1 | X0 | Ustawienie licznika kolumn 0…83 | |
| H=1 Rozszerzony zestaw komend | |||||||||||
| Reserved | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Nie używać | |
| Reserved | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X | Nie używać | |
| Temperature Control | 0 | 0 | 0 | 0 | 0 | 0 | 1 | TC1 | TC0 | Współczynnik temperaturowy | |
| Reserved | 0 | 0 | 0 | 0 | 0 | 1 | x | X | X | Nie używać | |
| Bias System | 0 | 0 | 0 | 0 | 1 | 0 | BS2 | BS1 | BS0 | Ustawienie BIAS | |
| Reserved | 0 | 0 | 1 | X | X | X | x | X | X | Nie używać | |
| Set Vop | 0 | 1 | Vop6 | Vop5 | Vop4 | Vop3 | Vop2 | Vop1 | Vop0 | Napięcie zasilania matrycy (kontrast) | |
Opis parametrów z tab. 1.
| Oznaczenie | Gdy 0 | Gdy 1 |
| PD | Układ aktywny | Tryb obniżonego poboru mocy |
| V | Adresowanie poziome | Adresowanie pionowe |
| H | Podstawowy zestaw instrukcji | Rozszerzony zestaw instrukcji |
| D E 0 0 0 1 1 0 1 1 |
Wyświetlacz wygaszony Tryb normalny Wszystkie segmenty zapalone Wyświetlanie w inwersji |
|
| TC1 TC0 0 0 0 1 1 0 1 1 |
VLCD współczynnik temperaturowy 0 VLCD współczynnik temperaturowy 1 VLCD współczynnik temperaturowy 2 (standardowy) VLCD współczynnik temperaturowy 3 |
|
Komenda Function Set jest przeznaczona do programowego przełączania wyświetlacza w tryb obniżonego poboru energii, sposobu adresowania pamięci RAM i ustawiania zestawu komend (normalny lub rozszerzony).
Kontrast wyświetlacza zależy od napięcia zasilającego matrycę LCD i jest ustawiany komendą Set Vop. Można ustawić 128 wartości, ale użyteczny zakres regulacji to wartości od 30 do 90.
Komenda Temperature Control umożliwia ustalenie jednej z 4 predefiniowanych charakterystyk kompensacji temperaturowej kontrastu. Dla większości zastosowań można zastosować współczynnik 2 (TC1=1, TC0=0). Dla wyświetlacza od telefonu Nokia 3310 wartość parametru BIAS powinna wynosić 3.
Niezgodność sterownika ze standardem PCD8544
Do testowania procedur obsługi LCD zastosowano moduł KAmodLCD1 (fot. 7) i płytę ewaluacyjną STM32Butterfly z mikrokontrolerem STM32F107. Wyświetlacz dołączono do mikrokontrolera zgodnie ze schematem elektrycznym pokazanym na rys. 8.
Fot. 7. Wygląd modułu KAmodLCD1
Rys. 8. Schemat elektryczny ilustrujący sposób połączenia mikrokontrolera STM32F107 z modułem KAmodLCD1 (zastosowany w prezentowanym przykładzie)
Do obsługi linii portów GPIO najlepiej jest wykorzystać biblioteki producenta mikrokontrolerów. Na list. 1 przedstawiono definicje linii i konfigurację portu GPIOA używanego do sterowania wyświetlaczem.
List. 1. Definicja linii wykorzystywanych do transmisji danych i konfiguracja portów
//definicja portu #define PORT_DISP_NOKIA GPIOA #define RCC_APB2Periph_DISP_NOKIA RCC_APB2Periph_GPIOA //definicja linii portu #define CLK GPIO_Pin_0 //CLK PA0 #define DATA GPIO_Pin_1 //DATA PA1 #define DC GPIO_Pin_2 //D_nC PA2 #define RES GPIO_Pin_3 //RESET PA3 #define SCE GPIO_Pin_4 //SCE PA4 RCC_APB2PeriphClockCmd(RCC_APB2Periph_DISP_NOKIA, ENABLE); GPIO_InitStructure.GPIO_Pin = CLK | DATA | DC | RES | SCE ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(PORT_DISP_NOKIA, &GPIO_InitStructure);



Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



