Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 mar 2026, o 09:23


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 21 wrz 2014, o 23:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Chciałbym zapytać Szanowanych Kolegów Forumowiczów o sposób rozwiązania lub podanie ewentualnej koncepcji na buforowanie dowolnego kolorowego wyświetlacza LCD TFT (w moim wypadku 7" 800x480). Potrzebuję dynamicznie tworzyć złożone obiekty składające się na obraz (tą kwestie mam już rozwiązaną), jednak cykliczne przerysowywanie obrazu powoduje niesamowite mruganie. Chciałbym uzyskać częstotliwość odświeżania rzędu 10Hz, co przy ciągłym zamalowywaniu obrazu na biało i późniejszym dodawaniu obiektów wymaga ogromnych częstotliwości taktowania procesora:
Przy transmisji równoległej 16-bitowej (głębia kolorów wyświetlacza) to blisko 3840000pps.

Niezbędne w takim razie staje się buforowanie. Dla przechowania jednej ramki obrazu potrzeba aż 0,5 MB pamięci. Zdecydowałem się więc na szybką pamięć zewnętrzną SRAM z interfejsem równoległym z 16-bitową linią danych.
Używam układów Xmega, a więc jest tam sprzętowa obsługa pamięci zewnętrznej (EBI). Tyle tylko, że po zapisaniu tej pamięci potrzebuję przepisać jej zawartość do pamięci wyświetlacza (bezpośrednio na ekran) i tutaj właśnie zaczynają się schody. Mianowicie chcąc dokonać takiego przepisania musiałbym angażować rdzeń procesora w cały proces (DMA odpada ponieważ wymagane są odpowiednie zbocza na dodatkowej linii sygnałowej). W efekcie nie dość że uC musi generować ten obraz (uC->SRAM) to później musi go jeszcze "przerzucić" do wyświetlacza (SRAM->uC->LCD).

Wymyśliłem sobie w związku z tym taki sposób: uC komunikuje się z CPLD/FPGA, który emuluje pamięć zewnętrzną, a do którego podpięty jest SRAM i LCD. Dodatkową linią procesora wybierałbym czy chce pisać do pamięci, czy też przerysować wyświetlacz zawartością pamięci. Dodatkowy sygnał zapisu piksela do wyświetlacza realizowałbym w dość niecodzienny sposób, generując przez FPGA dowolne zbocze, które podawałbym na filtr górnoprzepustowy, a wygenerowaną "szpilkę" formowałbym poprzez szeregową diodę i bramkę Schmitta. Wydaje mi się, że w ten sposób uniezależniam się od ograniczeń zegara dla układu FPGA.

Wiem że ten sposób jest dość zawiły i przyznam iż wolałbym użyć samego uC i DMA, ale wydaje mi się to niemożliwe.
Proszę o sugestie i porady jak można to zrobić prościej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2014, o 11:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

A może zwróć uwagę na wszędobylskie STMy, nie wiem jak tam to wszystko jest zrealizowane ale np STM32F429 437 mają sprzętowe wspomaganie LCD TFT, ma również możliwość obsługi pamięci rozszerzonej i na dodatek ma akcelerator graficzny. Bez kombinacji w rozsądnej cenie...
Taka moja sugestia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO