Pierwsze kroki z FPGA (9)

Podobne dokumenty
Pierwsze kroki z FPGA (9)

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

m e d i a s e r v i c e Moduł kamery JPEG z komunikacją szeregową CJ0706A

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Mikroprocesory i Mikrosterowniki Laboratorium

Wstęp Architektura... 13

Komunikacja w mikrokontrolerach Laboratorium

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Technika Mikroprocesorowa

Programowanie Mikrokontrolerów

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

(przykład uogólniony)

Szkolenia specjalistyczne

Programowalne Układy Cyfrowe Laboratorium

2. Architektura mikrokontrolerów PIC16F8x... 13

ZL8AVR. Płyta bazowa dla modułów dipavr

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Politechnika Wrocławska

Pierwsze kroki z FPGA (2)

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC2100, które można zastosować w zestawie ZL3ARM.

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Instrukcja obsługi Konfigurator MLAN-1000

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Instrukcja do oprogramowania ENAP DEC-1

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

CECHY URZĄDZENIA: Podłączenie wyświetlacza

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Przywracanie parametrów domyślnych. Przycisnąć przycisk STOP przez 5 sekund. Wyświetlanie naprzemienne Numer parametru Wartość parametru

Parametryzacja przetworników analogowocyfrowych

CR232.S v2 KONWERTER CAN / RS232

STEROWNIK TUBY LED STM-64

TWRS-21 TABLICOWY WYŚWIETLACZ CYFROWY DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

ZL6ARM Zestaw uruchomieniowy dla mikrokontrolerów LPC213x. Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC213x

Przemysłowy odtwarzacz plików MP3

dokument DOK wersja 1.0

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Ćwiczenie 7 Matryca RGB

Ultradźwiękowy generator mocy MARP wersja Dokumentacja techniczno-ruchowa

interfejs szeregowy wyświetlaczy do systemów PLC

Instalowanie dodatku Message Broadcasting

PROGRAMOWALNE STEROWNIKI LOGICZNE

WPROWADZENIE Mikrosterownik mikrokontrolery

ZL10PLD. Moduł dippld z układem XC3S200

Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika

4. Karta modułu Slave

Rys. 1. Wygląd panelu milisekundomierza M-1.

Plan sytuacyjny terenu działki Mapa pamięci Schematy technologiczne komory zasuw dla przepompowni kanalizacyjnych

Program EDYTOR-AS-OUX

IMP Tester v 1.1. Dokumentacja Techniczno Ruchowa

Instrukcja użytkowania oprogramowania SZOB LITE

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

ADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361

Organizacja typowego mikroprocesora

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

INSTRUKCJA INSTALACJI WEB SERWER STW. DOKUMENTACJA TECHNICZNA INSTRUKCJA OBSŁUGI wersja instrukcji 1.0

SML3 październik

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania

SM Wyświetlacz 4x LED, 1x CAN, 1xRS232/485, 2x wejście analogowe

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Mikrokontrolery AVR i ARM : sterowanie wyświetlaczami LCD / Tomasz Francuz. Gliwice, cop Spis treści

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Stanowisko laboratoryjne dla mikrokontrolera ATXmega32A4 firmy Atmel

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

1.2. Architektura rdzenia ARM Cortex-M3...16

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Instytut Teleinformatyki

Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (2) SPI, I 2 C

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

Programowanie w językach asemblera i C

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

MultiTool instrukcja użytkownika 2010 SFAR

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Transkrypt:

Pierwsze kroki z FPGA (9) Obsługa z kontrolerem SSD1331 Celem projektu było obsłużenie sprzętowego kontrolera kolorowego za pomocą układu FPGA zestawu maximator. Zastosowany w przykładzie wyświetlacz wyposażono w kontroler SSD1331, z którym aplikacja użytkownika komunikuje się poprzez interfejs SPI. Prezentowany w artykule projekt wykonano z użyciem bezpłatnego oprogramowania narzędziowego Intel Quartus Prime, które można pobrać ze strony internetowej https://goo.gl/kuhmwj. Moduł z kolorowym wyświetlaczem OLED-RGB dołączono do maximatora zgodnie ze schematem pokazanym na rysunku 1 i opisem umieszczonym w tabeli 1. Dodatkowo, wyprowadzenie D14 maximatora jest używany jako wejście zerujące o aktywnym poziomie wysokim podczas normalnej pracy ta linia musi być dołączona do masy zasilania. Jednostka TOP LEVEL Rysunek 1. Schemat połączeń płytki maximatora z wyświetlaczem 100 Pokazana na rysunku 2 jednostkatop LEVEL składa się z następujących elementów: Bloku OLED, który jest odpowiedzialny za inicjalizację oraz przesyłanie komend i danych do kontrolera wyświetlacza. Bloku EXAMPLE_OLED_Logic, w którym pokazano użycie przykładowych komponentów do sterowania wyświetlaczem: Tabela. 1. Sposób dołączenia modułu OLED-RGB Pin OLED maximator VCC +5V GND GND DIN D0 CLK D1 CS D2 D/C D3 RES D4 Więcej informacji: Projekt powstał w Katedrze Elektroniki Wydziału Informatyki, Elektroniki i Telekomunikacji AGH, pod kierunkiem dr inż. Pawła Rajdy i dr inż. Jerzego Kasperka.

Rysunek 2. Wygląd projektu CLS_Command czyści wyświetlacz, SetPixel_Commmand ustawia wybrany piksel wyświetlacza na wybrany kolor, DrawImageFull_Commmand rysuje cały obrazek uprzednio pobierając go z pamięci. Bloku Flash, który implementuje blok pamięci typu Flash zainicjalizowanej plikiem onchip_ flash.dat. Przechowane są w niej mapy bitowe dwóch obrazów, które będą przesłane do wyświetlacza. Oprócz wyżej wymienionych, na schemacie blokowym możemy znaleźć jeszcze blok odpowiedzialny za debouncing przycisku zerowania oraz blok generatora pętli PLL, na którego na wyjściu występuje przebieg o częstotliwości 50 MHz. Moduł OLED Moduł OLED (rysunek 2) jest głównym elementem projektu. Odpowiada on za komunikację za pomocą interfejsu SPI, inicjalizację wyświetlacza oraz późniejsze przekazywanie komend i danych. Sygnały modułu OLED opisano w tabeli 2. Moduł OLED zawiera w sobie następujące bloki (rysunek 3): Tabela 2. Wyprowadzenie modułu OLED CLK RST DATA_INPUT[7..0] DATA_LATCH COMMAND_INPUT[7..0] COMMAND_LATCH SCLK SS MOSI D_C OLED_RST OLED_INITIALISED BUSY STATUS_LED Wejście 8-bitowe dla danych Wejście zatrzaskujące wejście DATA_INPUT[7..0] Wejście 8-bitowe dla komend Wejście zatrzaskujące wejście COMMAND_INPUT[7..0] SPI Slave Select wybór urządzenia slave SPI Master Output Slave Input interfejsu SPI Linia informująca kontroler o tym czy przesyłamy dane czy komendy Sygnał służący owaniu Sygnał informujący o tym, że wyświetlacz został zainicjalizowany Sygnał informujący o tym, że moduł OLED jest w trakcie przetwarzania komendy, danych. Nowe komendy/dane należy przesyłać wtedy, gdy stan tego pinu jest niski. Sygnał sterujący LED Rysunek 3. Bloki zawarte w module OLED 101

spi_master będący sprzętową implementacją sterownika SPI, komunikującego się bezpośrednio z kontrolerem wyświetlacza OLED. Funkcje jego wyprowadzeń zebrano w tabeli 3. LPM_ROM to gotowy IP będący pamięcią ROM. Zapisany w nim plik.mif (SD1331_INIT.mif ) zawiera sekwencję komend służących do inicjalizacji wyświetlacza. Dokładne znaczenie poszczególnych bajtów znajduje się w dokumentacji kontrolera SSD1331. Zawartość pamięci bloku LMP_ROM opisano w tabeli 4. main_controller to blok ten jest odpowiedzialny za odczyt sekwencji inicjalizującej z bloku LPM_ROM, a także sterowaniem blokiem spi_master. Funkcje jego wyprowadzeń opisano w tabeli 5. _gen jest dzielnikiem sygnału taktującego, na wyjściu main_ występuje wejściowy sygnał zegarowy o częstotliwości dzielonej przez 2, a na wyjściu us_ sygnał zegarowy o częstotliwości dzielonej przez 6. Tabela 3. Wyprowadzenie modułu spi_master en cont data_in[7..0] miso s ss data_out[7..0] mosi Sygnał inicjujący transakcję Sygnał określający, czy mamy do czynienia z transakcją ciągłą czy pojedynczą Bajt który zostanie przesłany poprzez SPI Wejście Master Input Slave Output (nie używane) SPI Slave Select Bajt otrzymany od urządzenia slave Wyjście Master Output Slave Input Sygnał informujący o zajętości modułu spi_master Tabela 5. Funkcje wyprowadzeń bloku main_controller us_ init_rom_input[7..0] data_input[7..0] command_input[7..0] Rom en Rom clr Spi_en D_c Spi_data[7..0] Oled_res Spi_ss initialized Drugi sygnał zegarowy Tryb ciągłego przesyłania danych (nie używany) Zatrzask danych Dane wejściowe Zatrzask komendy Komenda Sygnał aktywujący licznik sterujący adresacją pamięci ROM Sygnał służący wyzerowaniu ww. licznika Sygnał aktywujący moduł SPI Sygnał określający, czy przesyłamy dany czy komendę Dane przesyłane do modułu SPI Sygnał zerujący sterownik wyświetlacza Sygnał Slave Select Sygnał informujący o zajętości modułu Sygnał informujący o tym, że wyświetlacz został zainicjalizowany Moduł Example_OLED_Logic Moduł wykonano, aby pokazać, jak należy sterować modułem OLED poprzez odpowiednie komendy. W jego architekturze zawarto trzy komponenty: CLS_Command, który ma za zadanie wyczyścić wyświetlacz, tzn. wypełnić go zadanym kolorem. Funkcje jego wyprowadzeń pokazano w tabeli 6. Tabela 4. Zawartość pamięci LMP_ROM Bajt 0xAE 0x75 0x3F 0x15 0x5F 0xA0 0x72 RGB 565 0xA1 0xA2 0xA4 0xA8 0x3F 0xAD 0x8F 0xB0 0x1A Znaczenie Wyłączenie Ustawienie adresu wiersza Ustawienie adresu kolumny Ustawienie formatu danych Ustawienie wiersza startowego RAM Ustawienie offsetu wyświetlacza Ustawienie trybu wyświetlacza Ustawienie multipleksera Ustawienia ogólnej konfiguracji Konfiguracja trybu oszczędzania energii 0xB1 Ustawienie okresu fazy 1 oraz 2 0x74 0xB3 0xD0 0x8A 0x81 0x8B 0x82 0x8C 0x83 0xBB 0x3E 0xBE 0x3E 0x87 0x0F 0x81 0x82 0x83 0xAF Ustawienie stosunku dzielnika zegara do częstotliwości oscylatora koloru A koloru B koloru C Ustawienie wartości Pre-charge Ustawienie poziomu VCOMH Konfiguracja wartości natężenia prądu Konfiguracja kontrastu A Konfiguracja kontrastu B Konfiguracja kontrastu C Uruchomienie wyświetlacza 102

Aplikacje maximatora Pod adresem http:// www.maximator-fpga.org są dostępne przykładowe projekty przygotowane za pomocą bezpłatnego programu Intel Quartus Prime dla zestawu maximator. Dostępne jest tam także kompletny zestaw plików źródłowych projektu prezentowanego w EP. Rysunek 4. Przebiegi sygnałów w module Flash podczas odczytu Tabela 6. Funkcje wyprowadzeń bloku CLS_Command Clk Reset Busy Start CLS_Command Clk Busy start pos_x pos_y color Tabela 7. Funkcje wyprowadzeń bloku SetPixel_Command Numer wiersza Numer kolumny Kolor piksela w formacie RGB565 DrawPixel_Command SetPixel_Command, którego zadaniem jest zaświecenie w zadanym kolorze pojedynczego piksela o ustalonym adresie. Funkcje jego wyprowadzeń pokazano w tabeli 7. DrawImageFull_Command, który pobiera zapisany w pamięci Flash obraz w celu wyświetlenia go na ekranie. Funkcje jego wyprowadzeń pokazano w tabeli 8. Moduł Flash Ten moduł służy do implementacji pamięci Flash (UFM), która może być zainicjalizowana odpowiednio przygotowanym plikiem hex lub mif (memory initialization file). Na rysunku 4 pokazano Rysunek 5. Wprowadzenie ścieżki dostępu do plików obrazu Rysunek 6. Ekran powitalny programu Konwerter_RGB565 przebiegi sygnałów podczas odczytu. Pojemność pamięci w układzie MAX10 znajdującym się w zestawie MAXimator pozwala na zapamiętanie dwóch obrazków o rozdzielczości 96 64 pikseli w formacie RGB565. Aby wybrać plik, który ma zostać wgrany należy w pliku Flash.vhd w linii 93 (rysunek 5) podać ścieżkę bezwzględną np: INIT_FILENAME => D:/Projekty/Maximator/ OLED/Test.mif. Dodatkowe oprogramowanie W ramach projektu utworzono aplikację Konwerter_RGB565, której zadaniem jest wygenerowanie pliku.mif z wybranych przez 103

Tabela 8. Funkcje wyprowadzeń bloku DrawImage- Full_Command start flash_data flash_read_data_valid flash_address_offset flash_read flash_address pamięci Flash Sygnał informujący o gotowości danych do odczytu Offset adresu pamięci Flash Sygnał inicjalizujący odczyt danych Adres z którego odczytujemy dane DrawImageFull_Command użytkownika obrazków w formacie.bmp i wymiarach 96 64 piksele (odpowiada matrycy OLED użytego wyświetlacza). Skompilowana aplikacja jest dostępna w portalu https://goo.gl/hxtqgr. Po uruchomieniu programu (rysunek 6) należy kliknąć przycisk Wczytaj obraz(y), po czym zostanie wyświetlone okno wyboru plików do wczytania. Należy zaznaczyć jeden lub dwa obrazy (mając dwa obrazy trzeba je zaznaczyć jednocześnie, np. za pomocą klawisza CTRL). Obrazy powinny mieć format BMP, 24-bity, RGB, wymiary 94 64 piksele, 96 DPI). Po wybraniu i otwarciu obrazków są wyświetlane ich miniaturki. Przycisk Zapisz plik.mif jest aktywny. Po jego kliknięciu program zapyta się, gdzie zapisać wygenerowany plik.mif. Na fotografii 7 pokazano przykładowy efekt działania projektu: wyświetlenie obrazka, miniaturowej fotografii zestawu maximator na wyświetlaczu OLED. Mateusz Mamala, AGH Fotografia 7. Wynik działania projektu z przykładu 104