26.07.2016, 23:31
Chciałem oddać w ręce zainteresowanych prostą bibliotekę do obsługi wyświetlacza Adfruit Oled 128x64, którą można obsługiwać przy użyciu zarówno magistrali I2C, jak i SPI, z niektórymi mikrokontrolerami z serii MSP430G2. Stworzona została przez declisa z xdec.de pod SPI i przebudowana na I2C przeze mnie.
Oryginalnie działała wyłącznie z SPI, ale po paru irytujących chwilach, w końcu udało mi się napisać jej obsługę również pod I2C. Program demo działa bez zarzutu.
By korzystać z biblioteki pod I2C należy ustawić sobie w pliku lib_lcd.h przełącznik SPI_OR_I2C (zadeklarowany w #define) na wartość 1, a jeśli z SPI, na wartość 0.
Ważne jest również ustawienie poprawnego adresu wyświetlacza, w moim przypadku było to 0x3C, ale różne modele wyświetlacza mogą mieć różnie. Bufor wyświetlacza zajmuje 128 bajtów, zmniejszyć go można na własne ryzyko. Warto również pamiętać o częstotliwości. Domyślnie dla I2C i konfiguracji 16Mhz, ustawiono 400kHz, zwiększenie tej prędkości może przyspieszyć transmisję, jednak kosztem utraty danych w trakcie transmisji.
Strona autora: http://xdec.de/msp430-oled-display-ssd1306-128x64/
Wielkie podziękowania dla declisa i jego bibliotekę z którą miałem przyjemność się pomęczyć.
Bibliotekę można pobrać w załączniku dostępnym tylko dla zalogowanych użytkowników.
PS: Pamiętajcie, by odłączyć diodę z pinu 1.6. Płytka (wyświetlacza) posiada już rezystory pull-up, a przynajmniej powinna, ale zalecam dodanie 10kOhm na obie linie do VCC.
#Oled, #MSP430, #I2C, #Adfruit, #128x64, #G2553