Skopiowano link do schowka!

Pierwsze kroki z wyświetlaczem EVE4 — kompletny przewodnik

Powrót do góry strony

Rozpoczęcie pracy z nowym kontrolerem wyświetlacza EVE4 wcale nie musi być skomplikowane.

W tym poradniku dowiesz się, jak uruchomić wyświetlacz Riverdi EVE4 na płytce ewaluacyjnej STM32 — od pierwszego podłączenia aż po wyświetlenie pierwszej ramki.

To precyzyjny, a jednocześnie zwięzły przewodnik stworzony dla inżynierów, którzy chcą zdobyć solidne podstawy do przyszłych projektów opartych na EVE, nie zagubiając się w zbędnych szczegółach: podłącz przewody; otwórz projekt w STM32CubeIDE; skompiluj i wgraj oprogramowanie; sprawdź działanie wyświetlacza i ekranu dotykowego – skupiamy się na tym, co najważniejsze; to pierwszy projekt, który możesz wykorzystać jako podstawę dla przyszłych, bardziej złożonych aplikacji.

 

Sprzęt komputerowy

 

PozycjaPrzykład/Nr katalogowyUwagi
ST-Link V3/V2STLINK-V3Obie wersje działają dobrze
Płytka ewaluacyjna RiverdiPłytka ewaluacyjna STM32Kompatybilna z RiBUS
EVE4 7″RVT70HSBNWC00-B7-calowy IPS, BT817Q
RiBUS FFCFFC0520150Znajduje się w płytce ewaluacyjnej i EVE4
Nasadki do zworkówW zestawie z płytką ewaluacyjną
Kable USB2× Micro-USBW zestawie z płytką ewaluacyjną i ST-Link
Przewody połączeniowe FFSWD

 

RiBUS

  • Niebieski element usztywniający na taśmie FFC zazwyczaj jest skierowany w stronę zatrzasku złącza (u góry). Wsuń go do końca, a potem zamknij zatrzask.
  • Poprowadź kabel tak, żeby miał łagodny promień gięcia – bez ostrych zagięć – i upewnij się, że strona stykowa pasuje do kształtu złącza na obu końcach.
  • Nie podłączaj zasilania do płytki podczas podłączania lub odłączania przewodu FFC.

 

Oprogramowanie

  • Zainstaluj STM32CubeIDE.
  • (Opcjonalnie) Zainstaluj STM32CubeProgrammer, żeby łatwo wgrywać oprogramowanie przez ST-Link.
  • (Opcjonalnie) Zainstaluj Git (albo pobierz plik ZIP).
  • Tylko dla systemu Windows: zainstaluj sterownik USB ST-Link (można to zrobić za pomocą programu CubeProgrammer).

Wolisz inne środowisko (Keil/IAR/Make/PlatformIO)? Nie ma sprawy – w tym poradniku używamy CubeIDE tylko dla przejrzystości.

 

Pobierz projekt z GitHubu

Opcja A

  1. Otwórz repozytorium: Riverdi EVE demo
  2. Kliknij zielony przycisk „Kod” i skopiuj adres URL HTTPS (zobacz zdjęcie poniżej)
  3. Otwórz terminal w katalogu, w którym chcesz umieścić swój projekt, i wpisz: git clone https://github.com/riverdi/riverdi-eve4-demo.git riverdi-eve-demo

 

Wariant B

  1. Otwórz repozytorium: Riverdi EVE demo
  2. Kliknij zielony przycisk „Kod i pobierz plik ZIP”
  3. Rozpakuj do dowolnego folderu (np. … C:\Users\User1\Riverdi-EVE-demo)

 

Zaimportuj projekt do STM32CubeIDE

Wykonaj poniższe kroki, żeby zaimportować sklonowane/rozpakowane repo do CubeIDE.

  1. W programie CubeIDE wybierz opcję Plik → Nowy → Projekt Makefile z istniejącym kodem.
  2. Lokalizacja istniejącego kodu: kliknij „Przeglądaj…” i wybierz swój folder „Riverdi-EVE”.
  3. Nazwa projektu: zachowaj proponowaną nazwę albo wpisz własną.
  4. Języki: zostaw zaznaczone opcje C i C++.
  5. Ustawienia toolchain dla indeksatora: wybierz MCU Arm GCC.
  6. Kliknij „Zakończ”. Projekt pojawi się w Eksploratorze projektów.

 

 

Jeśli nie ma pozycji „MCU Arm GCC”:

  • Zainstaluj lub napraw komponenty CubeIDE, wybierając opcję Pomoc → Zarządzaj pakietami oprogramowania wbudowanego (lub zainstaluj CubeIDE od nowa).
  • Uruchom ponownie CubeIDE i spróbuj jeszcze raz zaimportować plik.

 

Skonfiguruj projekt

  1. Wybierz platformę Makefile
    Repozytorium obsługuje wiele hostów. W przypadku płytki ewaluacyjnej Riverdi STM32 (F4) użyj:

    • Makefile.stm32f4 (znajduje się w katalogu głównym projektu)
  2. Zmień nazwę, żeby plik stał się aktywny
    . Zmień nazwę Makefile.stm32f4 na Makefile (CubeIDE i make szukają właśnie tej nazwy pliku).
  3. Ustaw definicje panelu/wyświetlacza w pliku
    . Otwórz plik Makefile o nowej nazwie i upewnij się, że są w nim następujące flagi (usuń komentarze lub dodaj je w razie potrzeby) dla 7-calowego modułu EVE4 IPS:

# Generacja EVE
DEFS += -DEVE_4
# EVE4 zazwyczaj korzysta z zewnętrznego oscylatora
DEFS += -DEVE_4_EXTERNAL_OSC

# Wybór wyświetlacza (7-calowy IPS)
DEFS += -DIPS_70

Korzystasz z innego wyświetlacza Riverdi EVE?
Zastąp -DIPS_70 odpowiednią definicją, która jest zakomentowana w pliku Makefile (blok czasowy dla HSIZE/VSIZE/HCYCLE/VCYCLE itp. jest powiązany z tą definicją).
Zazwyczaj nie musisz niczego więcej zmieniać – przy pierwszej kompilacji pozostaw pozostałe parametry na wartościach domyślnych.

 

Główna struktura kodu

Wersja demonstracyjna Riverdi-EVE ma strukturę warstwową:

  • host_layer – biblioteki platformowe (SPI, GPIO, synchronizacja) dla STM32, RPi, FT232H/Windows itp.
  • eve_layer – przenośny sterownik EVE (dostęp do rejestrów/pamięci RAM, FIFO poleceń, polecenia koprocesora).
  • app_layer –funkcje pomocnicze i logika aplikacji (buforowanie danych/poleceń, obsługa dotykowa, kalibracja panelu dotykowego, prosty interfejs użytkownika/dźwięk).

Poza tym plik riverdi_modules zawiera definicje paneli (rozdzielczość, synchronizacja, PCLK, domyślne ustawienia PWM), a plik riverdi-demo.c zawiera przykładową aplikację, która łączy te warstwy w jedną całość.

Jak tak naprawdę uruchamia się EVE4 (z fragmentami kodu)

Po zresetowaniu płytki program demonstracyjny przeprowadza EVE4 przez precyzyjną sekwencję inicjalizacji.

  1. Uruchom MCU + HAL
    Zanim EVE będzie mogło cię usłyszeć, STM32 musi mieć gotowe zegary i magistrale.

    • App_Common_Init() – przygotowanie aplikacji i płyty.
    • Gpu_Hal_Init() – interfejs HAL firmy Bridgetek dla SPI/GPIO/timerów.
    • platform_init() – inicjalizacja zegarów i timerów na niskim poziomie dla STM32F4.
  2. Podłącz kabel i przejmij kontrolę
    Podłącz piny sterujące i zapewnij sobie bezproblemowy start.

    • Gpu_Hal_Open() – przypisuje sygnały CS, PD i INT; utrzymuje sygnały CS i PD w stanie wysokim.
    • Gpu_Hal_Powercycle() – włącza lub wyłącza PD w celu wykonania zimnego rozruchu.
  3. Uruchom kartę graficzną i sprawdź łączność
    Przełącz na tryb aktywny i sprawdź, czy połączenie działa.

    • Host command → ACTIVE – przełącza EVE w tryb aktywny.
    • Clock config – ustaw częstotliwość docelową (EVE4 zazwyczaj korzysta z oscylatora zewnętrznego).
    • Readbacks – sprawdź identyfikator REG_ID urządzenia oraz stan modułów (koprocesor, ekran dotykowy, audio).
  4. Czas trwania paneli programowych + podświetlenie
    Opisz swoje szkło kontrolerowi.

    • Napisz blok czasowy: HSIZE/VSIZE/HCYCLE/VCYCLE, synchronizacje, PCLK_POL, SWIZZLE itp.
    • Skonfiguruj PWM dla podświetlenia (REG_PWM_HZ, REG_PWM_DUTY).
    • Uwaga (EVE4): musisz też ustawić źródło/częstotliwość zegara wyświetlacza razem z PWM, żeby synchronizacja pasowała do panelu.

    Ta „uwaga dotycząca EVE4” jest w porządku pod względem koncepcyjnym – po prostu jasno zaznacz, że ustawiłeś zegar pikselowy oraz (jeśli to dotyczy) rejestry PLL/zegara wyświetlacza używane przez EVE4, a następnie jako ostatnie włącz REG_PCLK.

  5. Pierwsza ramka: build → flush → swap
    Pierwszy obrazek to malutka display list.

    • CLEAR_COLOR_RGB(r,g,b) – kolor tła.
    • CLEAR(1,1,1) – wyczyść kolor/szablon/tag.
    • DISPLAY() – koniec pobierania.
    • Flush_DL_Buffer() – kopiuje zawartość DL do RAM_DL.
    • Gpu_Hal_DLSwap(…, DLSWAP_FRAME) – ustaw jako widoczne.

 

Display list (DL) w Bridgetek EVE

Display list – co to jest, po co służy i dlaczego jest przydatna

Display list to skrypt dla każdej klatki, który dokładnie określa programowi EVE, co ma narysować (kolor tła, kształty/elementy interfejsu/tekst, obrazy), a na końcu zawiera funkcję DISPLAY() oraz DLSWAP_FRAME, żeby wszystko było widoczne. Potrzebujemy tego, bo EVE wykonuje renderowanie na podstawie kompletnej, uporządkowanej listy – bez niej częściowe aktualizacje powodowałyby migotanie, a synchronizacja byłaby nieprzewidywalna. To dobre rozwiązanie, bo grupuje polecenia (mniej transferów SPI), zapewnia deterministyczny charakter ramek (ta sama lista → te same piksele) i pozwala MCU budować następną ramkę, podczas gdy EVE rysuje bieżącą – płynne interfejsy użytkownika przy minimalnym obciążeniu procesora.

Typowy cykl

  1. Tworzenie: polecenia kolejkowe (kolory, kształty, widżety, obrazy).
  2. Flush: zapisz bajty do pamięci RAM_DL.
  3. Swap: ustaw DLSWAP_FRAME, żeby wyświetlić nową listę.

To ogranicza ruch między MCU a EVE i zapewnia płynne aktualizacje nawet w przypadku animacji interfejsu użytkownika. Przykład:

App_WrDl_Buffer(phost, CLEAR_COLOR_RGB(0, 64, 128));
App_WrDl_Buffer(phost, CLEAR(1,1,1));
App_WrDl_Buffer(phost, DISPLAY());
App_Flush_DL_Buffer(phost);
Gpu_Hal_DLSwap(phost, DLSWAP_FRAME);

Więcej szczegółów (zestaw poleceń, mapa rejestrów, działanie FIFO) znajdzieszw „Przewodniku programowania” firmy Bridgetek dla serii BT81x.

 

Podsumowanie

Właśnie wykonałeś wszystkie niezbędne kroki, żeby uruchomić i zweryfikować wyświetlacz Riverdi EVE4 na STM32– od konfiguracji sprzętu po renderowanie pierwszej ramki za pomocą silnika EVE firmy Bridgetek.

Gdy ten projekt bazowy już działa, możesz zacząć zgłębiać display lists na zamówienie, zaawansowane interakcje dotykowe oraz pełne tworzenie interfejsu użytkownika dla swojego kolejnego projektu wbudowanego.

ODKRYJ NASZĄ

Whitepaper

Osiągnij idealną interakcję użytkownika z wyświetlaczem dzięki odpowiedniemu czujnikowi Touch Sensor IC. Czy kiedykolwiek zmagałeś się z problemami związanymi z fantomowymi dotknięciami lub certyfikacją? Rozwiń swoje prace B+R jak profesjonalista dzięki naszemu Whitepaperowi!

Przejdź do naszego katalogu produktów i zobacz, jak możesz oszczędzać dzięki jakości, nie na jakości.

Skontaktuj się z nami już teraz, oszczędzaj dzięki jakości, nie na jakości.