Wyświetlacz graficzny ST7565R – Biblioteka AVR Cz.1

W internecie dostępne są tanie wyświetlacze graficzne ST7565R od dystrybutora artronic. Można je kupić na allegro. Ich ogromnym plusem jest ich bardzo niska cena jak na wyświetlacze graficzne, przez co warto się nimi zainteresować. Przyjrzyjmy się im bliżej. Wyświetlacze te pracują na napięciu 3.3V i są wyposażone w interfejs szeregowy SPI dzięki czemu wystarczy nam 5 pinów procesora do ich obsługi.  Jak już wspomniałem wyświetlaczem steruje kontroler ST7565R i na szczęście ktoś zadał sobie sporo trudu i stworzył gotowe biblioteki obsługujące ten sterownik. Jedną z bibliotek jakie znalazłem jest dogm128 co prawda według autora biblioteka obsługuje wyświetlacze z serii DOGM, ale prawdę powiedziawszy nie wiele się różnią i bez problemu możemy ją wykorzystać do naszego taniego zamiennika. Biblioteka dostępna jest w dwóch wersjach, dla mikrokontrolerów AVR i dla Arduino. Nas interesuje ta dla AVR którą trzeba zainstalować.

Instalacja dla Windows i Atmel Studio

Krok 1: Pobieramy bibliotekę stąd i rozpakowujemy. W kolejnych krokach zakładam, że wszystko instalujemy na dysku C.

Krok 2: Żeby zainstalować bibliotekę  potrzebujemy także programu MSYS który pobieramy i instalujemy.

Krok 3: Jeśli nie mamy to pobieramy WinAVR i instalujemy.

Krok 4: Teraz musimy edytować plik make. Otwieramy katalog z biblioteką np. C:/dogm128/lib odszukujemy plik “Makefile.dogm128” i zmieniamy nazwę na “Makefile” po czym otwieramy go i edytujemy kolejne linijki:

MCU:=atmega88

Nazwa naszego mikrokontrolera

F_CPU:=8000000

Ustawiamy taktowanie naszego procesora

DOGDEFS = -DDOGM128_HW

Wybieramy wyświetlacz (DOGM128_HW, DOGM132_HW albo DOGS102_HW) dla naszego to DOGM128_HW

DOGDEFS += -DOG_SPI_ATMEGA

Wybieramy interfejs szeregowy (DOG_SPI_ATMEGA, DOG_SPI_USI albo DOG_SPI_ARDUINO ), przy czym DOG_SPI_ARDUINO jest domyślną wartością, jak nic nie ustawimy

DOGDEFS += -DDOG_SPI_SS_PORT=B -DDOG_SPI_CS_PIN=2
DOGDEFS += -DDOG_SPI_A0_PORT=B -DDOG_SPI_A0_PIN=1
DOGDEFS += -DDOG_SPI_SCL_PORT=B -DDOG_SPI_SCL_PIN=5
DOGDEFS += -DDOG_SPI_MOSI_PORT=B -DDOG_SPI_DO_PIN=3

Konfiguracja portów interfejsu szeregowego procesora do których podłączamy mikrokontroler. Powyżej przedstawiona jest konfiguracja sprzętowego SPI dla ATmega88

DOGDEFS += -DDOG_REVERSE

Dodatkowo można dopisać żeby zmienić orientację wyświetlacza o 180 stopni

AVRTOOLSPATH:=C:/WinAVR-20100110/bin/

Podajemy ścieżkę z zainstalowanym WinAVR

Krok 5: Uruchamiamy program MSYS z katalogu C:/MiniGW/msys/1.0/msys.bat i poleceniem

cd c:/dogm128/lib

przechodzimy do katalogu z biblioteką i następnie wykonujemy plik make wpisując polecenie

make all

W ten sposób otrzymaliśmy plik libdog.a, który znajdziemy w katalogu C:/dogm128/lib

Krok 6: Konfiguracja Atmel Studio. Wchodzimy na opcje projektu i w zakładce Directories dodajemy katalog “C:\dogm128\lib\”, w zakładce Libaries w Library search path “C:\dogm128\lib\” , a w Libraries dodajemy “libdog.a”.

Test bibliotek

Przyszedł czas by sprawdzić czy poprawnie skonfigurowaliśmy nasze biblioteki. Schemat podłączenia wyświetlacza do mikrokontrolera na przykładzie ATmega88 wygląda tak:

LCD_schemat

A tak wygląda przykładowy kod do testowania czcionek:

/*
 *	Na podstawie pliku z biblioteki dogm128 atmega88/fonts/fonts.c
 *	Testowane na ATmega8
 *  Autor: Gembcior
 *	https://gembcior.pl
 */ 

#include <avr/io.h>
#include "dogm128.h"

void loop(void)
{
	unsigned char h =9;
	dog_StartPage();
	do
	{
		dog_DrawStrP(0,h*0+3, font_5x8, DOG_PSTR("https://gembcior.pl"));
		dog_DrawStrP(0,h*1+3, font_5x8, DOG_PSTR("Autor: Gembcior"));
		dog_DrawStrP(0,h*2+3, font_5x8, DOG_PSTR("Wyswietlacz dziala"));
		dog_DrawStrP(0,h*3+3, font_5x8, DOG_PSTR("LCD ST7565R"));
		dog_DrawStrP(0,h*5+3, font_9x18, DOG_PSTR("Gembcior.pl"));
	} while( dog_NextPage() );
	dog_Delay(100);
}

int main(void)
{

	dog_Init(0);
	dog_SetContrast(15);
	dog_Delay(120);
	while(1)
	{
		loop();
	}
}

Jeśli wszystko dobrze zrobiliśmy na wyświetlaczu powinien pokazać się tekst. Teraz gdy wszystko działa możemy zacząć bawić się wyświetlaczem i biblioteką. Dokumentacja do bibliotek dostępna jest tu http://code.google.com/p/dogm128/wiki/cref . I na razie to tyle. W kolejnych postach zajmę się bardziej szczegółowo tymi wyświetlaczami.

LCD1LCD2
LCD3

Wyświetlacz graficzny ST7565R – Biblioteka AVR Cz.1
Ocena: 5 (3 głosów)

0 Komentarzy

Dodaj komentarz

*

*

Ile jest * Time limit is exhausted. Please reload CAPTCHA.

banner

Korzystając z tej strony wyrażasz zgodę na korzystanie z plików cookie. Zobacz szczegóły

Wykorzystujemy pliki cookie do spersonalizowania treści i reklam, aby oferować funkcje społecznościowe i analizować ruch w naszej witrynie. Informacje o tym, jak korzystasz z naszej witryny, udostępniamy partnerom społecznościowym, reklamowym i analitycznym. Więcej informacji znajdziesz na Jak Google wykorzystuje dane gromadzone podczas korzystania z witryn i aplikacji naszych partnerów.

Zamknij