Skocz do zawartości
Elvis

Wyświetlacz z paneli LED

Pomocna odpowiedź

Cześć Zealota,

stawiam piwo za podany link.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Dziękuję 🙂

To wartościowy materiał, warto go promować.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Zealota, dzięki za link - dla mnie to już trochę za późno, większość z tego co opisano w artykule już przerobiłem - ale jedna rzecz mnie zaciekawiła. Byłem przekonany że minimalne zasilanie tych paneli to 5V, ale podobno 3.3V też daje rade. To bardzo ułatwiłoby podłączenie z FPGA. Probowałeś może zasilać panele z 3.3V?

Udostępnij ten post


Link to post
Share on other sites
Zealota, dzięki za link - dla mnie to już trochę za późno, większość z tego co opisano w artykule już przerobiłem - ale jedna rzecz mnie zaciekawiła. Byłem przekonany że minimalne zasilanie tych paneli to 5V, ale podobno 3.3V też daje rade. To bardzo ułatwiłoby podłączenie z FPGA. Probowałeś może zasilać panele z 3.3V?

Tak próbowałem, na stałe mam to podpięte do zasilacza laboratoryjnego, ale słabo świecą, biały to taki żółty, choć myślę, że to może zależeć od wielu czynników.

Same rejestry z zatrzaskami można sterować z 3 V, wrzucam DataSheety. Jeden to chyba oryginał MBI5024, a drugi to jakiś "chińczyk" po chińsku, odpowiadający bezpośrednio scalakom jakie mam w moich panelach.

Warto mieć na uwadze, że te tanie panele na Ali to raczej odrzuty i często świecą jak im sie podobna, nie mówiąc o bad pixelach 🙂

Najważniejsze jest to, że zastosowane tam drivery można dodatkowo skonfigurować, ale niestety należałoby by wymienić rezystory od źródeł prądowych. Niestety przy 8 panelach byłoby tego sporo, a też wartości rezystorów zależą od koloru diody.

Jeden rezystor jest na 16 diod, a diod masz 128*128*3, co daje 192 rezystory 🙂

Wg mnie problem 3.3 vs 5.5 tu nie powinien istnieć, bo transmisja jest jednokierunkowa, a poziomy 3.3V powinny wystarczyć do prawidłowego sterowania rejestrami. Dla pewności można dać jakiś szybki bufor czy też konwerter napięć.

Niemniej jednak, można obniżyć napięcie paneli do 3.3V, żeby sprawdzić czy nie ma problemu z poziomami napięć. Będzie świecić ciemniej, ale standardy transmisji będą zachowane.

Z pierwszych postów wywnioskowałem, że miałeś kłopoty, które wyeliminowałeś podniesieniem napięcia - mam wrażenie, że to było tylko zamaskowanie problemu. Posprawdzaj połączenia, a zacznij od ścieżki masy, może nie wszystkie panele są na tym samym potencjale.

Inna sprawa, że jednak sporo wolniej steruję tymi diodami, i może dlatego u mnie działało to poprawnie...

JXI5020.pdf

MBI5020.pdf

Udostępnij ten post


Link to post
Share on other sites

Ja jestem na razie w niekończącej się fazie prototypowania. Więc wszystko podłączone jest mocno prowizorycznie, w tej chwili mam płytkę stykową z sn74lvc245 na pokładzie. Niestety musiałem przez nią zmniejszyć częstotliwość - w przypadku maximatora było trochę lepiej.

Jak chodzi o jakość świecenia paneli to jak dla mnie jest w pełni zadowalająca. Przy maksymalnym wysterowaniu są tak jasne że oczy bolą 😉 Na 8 paneli mam jeden uszkodzony piksel - nie mogę narzekać.

Najgorszy jest brak dokumentacji, muszę sprawdzić jakie układy są u mnie - ale to co mam działa całkiem znośnie.

Samo sterowanie panelami (diodami LED) mam właściwie opanowane, optymlizacja / zwiększanie częstotliwości, czy liczby poziomów jasności zostawiam na później. Aktualnie mam 32 poziomy, chociaż planowałem 64 - ale tutaj wąskim gardłem jest wysoka częstotliwość zegara.

Teraz staram się wybrać układ FPGA i wymyślić jak to spiąć z procesorem. Jeśli ktoś ma jakieś pomysły, uwagi , doświadczenia - bardzo zachęcam do pisania 🙂

[ Dodano: 23-07-2018, 14:46 ]

Kolejne pytanie - moim zdaniem podłączenie wyjść 3.3V FPGA do wejść rejestrów zasilanych z 5V powinno być bezpieczne... ale gdy używałem Maximatora sprawdziłem napięcie i na pinach sterujących było jednak 5V.

Możliwe że to bufory maximatora miały wpływ, ale jakoś mnie to trochę wystraszyło. Stąd pytanie - czy na pewno można pominąć sn74lvc254 ? Jakoś nie mam zaufania do tych chińskich rejestrów przesuwających, z drugiej strony to dużo by uprościło...

[ Dodano: 23-07-2018, 14:48 ]

Tak marudzę na te bufory, bo chwilowo układ wygląda tak:

Więc na wysokie częstotliwości taczej nie mogę liczyć...

Udostępnij ten post


Link to post
Share on other sites

Tak marudzę na te bufory, bo chwilowo układ wygląda tak: ...

... Więc na wysokie częstotliwości raczej nie mogę liczyć...

Połączenia jakie masz nie są zbyt skomplikowane. A może by tak coś polutować coś na płytce uniwersalnej i skrócić kabelki. Płytka uniwersalna potrafi zawieść przy miganiu 1Hz, a co dopiero przy megahercach 🙂

Udostępnij ten post


Link to post
Share on other sites

Postanowiłem zaryzykować i podłączyłem FPGA bezpośrednio do panelu. Zasilanie panelu jest niższe, niewiele ponad 3.3V, niestety problemy z wysoką częstotliwością pozostały 🙁

W rzeczywistości obraz wygląda lepiej niż na filmiku, ale i tak chciałbym podwyższyć częstotliwość.

Udostępnij ten post


Link to post
Share on other sites
Postanowiłem zaryzykować i podłączyłem FPGA bezpośrednio do panelu. Zasilanie panelu jest niższe, niewiele ponad 3.3V, niestety problemy z wysoką częstotliwością pozostały 🙁

W rzeczywistości obraz wygląda lepiej niż na filmiku, ale i tak chciałbym podwyższyć częstotliwość.

A jak to wygląda, gdy wysterujesz tylko 1 lub 2 moduły? Oczywiście kod musi być zmieniony do mniejszej częstotliwości.

Jaką w ogóle masz częstotliwość zegara do panela? Tzn czy możesz sprawdzić oscyloskopem czy analizatorem?

A może test z niższą częstotliwością?

W swoich testach nie raz miałem kłopoty z artefaktami, ale zwykle to z powodu niedoskonałości kodu. Często po prostu takt lub więcej "wychodziło" poza właściwy przebieg - pisząc nieco oględnie.

Jeśli będzie potrzeba mogę wrzucić przebiegi z analizatora, tak jak to u mnie działa.

Udostępnij ten post


Link to post
Share on other sites

Jak chodzi o częstotliwości to na razie się poddaję. Chyba muszę zacząć od porządnego zasilania, poprawić połączenia, a później poszukać lepszego oscyloskopu. Mój zabytkowy 100MHz może mieć problemy z tym co teraz robię.

Od jutra niestety przerwa w zabawie panelem, trzeba trochę popracować 🙁 Mogę za to podsumować co dotychczas udało mi się zrobić.

Samo sterowanie diodami led działa całkiem dobrze, chociaż nie z taką częstotliwością jak oczekiwałem.

Sterownik wyświetlacza jest teraz komponentem IP, ma wbudowane dwa bloki pamięci dla górnej i dolnej połowy paneli (ponieważ potrzebny jest jednoczesny odczyt).

Komponent używa magistrali Avalon, to bardzo prosta magistrala Altery, coś jak APB z elementami AHB. Chciałem używać AXI, ale na początek dobre i to.

Obraz na filmiku jest generowany przez procesor Nios II syntetyzowany w tym samym układzie MAX10. Dla programu panel jest widoczny jako 16384 rejestry i można po prostu wpisywać wartości jak do pamięci.

#include <stdint.h>
#include "sys/alt_stdio.h"
#include "system.h"

volatile uint32_t *vram = (volatile uint32_t*)LEDPANEL_DRIVER_0_BASE;

int main()
{ 
 alt_putstr("Hello from Nios II!\n");

 int line_y = 0, line_yy = 1;
 while (1) {
  for (int y = 0; y < 128; y++)
	  for (int x = 0; x < 128; x++)
		  vram[x + y * 128] = (y == line_y) ? 0xffff : ((x / 2) << 5) + ((y / 4) << 11);
  line_y += line_yy;
  if (line_y == 0 || line_y == 127)
	  line_yy = -line_yy;
 }

 return 0;
}

Aktualnie używam MAX10, ale w następnym kroku planuję użyć układu 5CSEMA, a dokładniej płytki DE0-Nano-SoC (http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=941). Wtedy zamiast Nios II wykorzystam rdzeń Cortex-A9 i Linux-a.

Z mojego punktu widzenia właśnie ten element jest najciekawszy - a do jakości samego obrazu wrócę na koniec.

Udostępnij ten post


Link to post
Share on other sites

No i może napisz wreszcie jak wygląda timing sygnałów. Jak wyglądają impulsy zegara (długość/wypełnienie) i gdzie względem tego leżą dane. Kiedy je ustawiasz przed i jak długo trzymasz po aktywnym (narastającym?) zboczu zegara. Nawet jeśli nie masz oscyloskopu min 100MHz to napisz jak chciałeś to zrobić w projekcie. Być może popełniasz jakiś kardynalny błąd i całość chodzi tylko na łucie szczęścia. Liczby, Elvis.

Piszesz wciąż o kłopotach, kombinujesz z zasilaniem a nie wiemy podstawowych rzeczy. No i jeśli to jest powtórzenie przypadku z Atari - podejrzanej długości kabelki z przypadkowymi masami to może szkoda Twojego czasu na ganianie duchów? Napisz też jak ustawiłeś drivery wyjściowe FPGA, zwykle możesz to zmieniać w kilku krokach. Jakie masz możliwości u siebie i co wybrałeś? Czy połączenie jest zrobione tasiemką? Jak długą? Przecież impedancja linii to kluczowy parametr w takiej aplikacji - to do niej się dopasowujesz. Bez jej wstępnego oszacowania musisz na oślep kłaść oporniki i sprawdzać oscyloskopem kształt sygnałów. No i jak te masy poprowadziłeś. Jednoczesna zmiana 6 szybkich sygnałów danych może powodować taki ground bounce, że po drugiej stronie odbiornik widzi dodatkowe zbocze zegara chociaż w nadajniku trzymasz w tym czasie stabilny poziom i nic nie zrobisz choćbyś międlił projekt jeszcze miesiąc.

Spróbuj podejść do tego metodologicznie zamiast metodą prób i błędów. Obecne prace wyglądają na miotanie się i eksperymenty słabo opierzonego elektronika a przecież wiem, ze tak nie jest. Temat takiego połączenia i zdecydowania czy konieczne są terminacje (próbowałeś? jakie? gdzie?), zmiana szybkości/wydajności nadajników czy po prostu lepsze masy jest do ogarnięcia w jeden wieczór a tutaj to trwa i trwa...

Udostępnij ten post


Link to post
Share on other sites

Częstotliwość zegara wynosi 12.5MHz. Wcześniej używałem 25MHz i było ok, teraz musiałem trochę spowolnić tramsfer. Na razie połączenia są straszne, więc nie ma co się czepiać że więcej nie działa. Jak kiedyś się zdecyduję, którą płytkę ewaluacyjną będę używał, to może poprawię połączenia - w tej chwili zostaje sztukowanie.

Co do atari to wszystko posypało się o brak czasu - nawet przypomniałem sobie podstawy Altiuma, narysowałem schemat, ale przy braku wprawy z prowadzeniem PCB okazało się że to dużo więcej czasu zajmuje niż planowałem. Więc na razie projekt czeka na lepsze czasy.

A metoda prób i błędów ma swoje zalety - to nie jest projekt w jakikolwiek sposób profesjonalny. Chciałem się czegoś nauczyć i pobawić, więc się bawię. A właśnie taka metoda daje najwięcej frajdy. Natomiast zbudowanie samego urządzenia jest najmniej ważne - gdybym potrzebował taki panel, to bym go po prostu kupił, wyszłoby taniej i szybciej 🙂

[ Dodano: 23-07-2018, 17:09 ]

Jednak forum ma pewne zalety - strasznie mi się nie chciało podłączać analizatora. Dostałem opier... i proszę, jednak można:

[

[ Dodano: 23-07-2018, 17:16 ]

Jeszcze dla porównania przebieg przy 25MHz:

Udostępnij ten post


Link to post
Share on other sites

Elvis, chodzi mi (i Tobie też, tylko chyba jeszcze o tym nie wiesz) o zegar i dane w stosunku do niego. Nie pokazuj przebiegów całej ramki, spojrzenie na całość nie jest w ogóle ważne gdy masz się skupić na zboczach i zależnościach czasowych. U Ciebie zegar to pasek białego, to nic nie daje. Pokaż ten sygnał (plus dane plus LATCH) z rozdzielczością 2-5ns/dz z ekranu oscyloskopu, bo problemy transmisji przez linie długie to problemy analogowe. Dopiero wtedy zobaczysz zapady sygnałów, przesłuchy, odbicia i generalnie signal integrity. Analizator pokazujący tylko dwa stany (i to jeszcze taki zabawkowy) to możesz sobie podłączać do UARTa.

Rozumiem, traktujesz projekt hobbystycznie więc nie ma napinki, ale podchodź do niego poważnie, bo niczego się nie nauczysz. A braki wiedzę u Ciebie poważne (i jestem zaskoczony, naprawdę, na początku myślałem że udajesz). Co najwyżej zapamiętasz, że z jakiegoś magicznego powodu oporniki szeregowe 33R przy każdym nadajniku pomogły - to nie jest żadna wiedza.

Udostępnij ten post


Link to post
Share on other sites

Mam nadzieję Marku że poczułeś się lepiej. Możesz pokazać jak wszystko świetnie umiesz i potrafisz, a każdy kto cokolwiek pisze jest amatorem i profanem. Ja nie jestem elektronikiem, albo jestem w bardzo małym zakresie. Ten projekt to moje hobby i czysta rozrywka - ale jeśli jedyne co umiesz napisać to wytykanie braków innym, to proszę nie pisz nic więcej. Szkoda czasu.

Udostępnij ten post


Link to post
Share on other sites

Kolega marek1707 pod względem analizy sygnałów dobrze pisze. Brakuje analizy przebiegu w odpowiedniej skali.

Ważne są zależności, że tak napiszę, przejściowe. LATCH, OE, CLK.

Co do krytyki to sporo przesadza, także nich Kolega Elvis się nie zniechęca przypadkiem 🙂.

Wracając do meritum.

Ważne by w odpowiedniej synchronizacji były sygnały np OE w stosunku do LATCH. To na początek. Zegar w stosunku do linii danych jest mniej ważny, w pierwszym przybliżeniu, bo można jego wpływ na zakłócenia łatwo wyeliminować poprzez statyczny obraz, np. wszystko na czerwono (stałe "1" na liniach R1 i R2).

Mam tu moje starsze wypociny z STM32, które dawały poprawny obraz aczkolwiek, też nie są doskonałe.

https://www.forbot.pl/forum/upload_img/obrazki/IMG_5b56030db4c346812.jpg

Zaznaczone na różowo jest istotne, wg mnie od sprawdzenia tego bym zaczął.

Pierwszy screen jest zgrubny, widać sterowanie wypełnieniem, dla koloru. Drugi jest powiększony. 128 cykli zegara, Sygnał D dla całego wyświetlacza i właściwie ustawione sygnały LATCH (STB) oraz OE.

Na 3 screenie widać zarówno moment przełączenia linii adresu wiersza, LATCH i OE. Mniej znaczące linie adresu również muszą zmieścić się w tę sekwencję.

F4 na 96MHz nie wchodziła powyżej 10MHz na zegarze, stąd "ostatnie bity" koloru nie są poprawne - następuje degradacja bitowa palety kolorów, z tym jest to akurat malo ważne w tym przypadku.

Moja kabelkologia wygląda jak poniżej, łącznie z kablami do analizatora, a i tak daje radę przy 10 MHz.

Zatem po zejściu do 10 MHz i polutowaniu kabelków, zamiast płytki stykowej, powinieneś mieć już dość pewny sprzęt, no i musisz dać odpowiedni zasilacz. Po wysterowaniu tych dwóch moich paneli to w szczycie miałem chyba 4 ampery dla 5V, a na pewno 3 bo już nie pamiętam 🙂. U Ciebie to chyba z 16 A musiało by być, a co najmniej 12 🙂

Udostępnij ten post


Link to post
Share on other sites

Zealota, dzięki za pomoc, jak wrócę z delegacji to podłączę jeszcze raz płytkę i sprawdzę.

Ale wydaje mi się, że trochę się nie zrozumieliśmy. Obraz dla 12.5MHz jest bardzo dobry - ma tylko niską częstotliwość odświeżania. "Na żywo" jest ok, natomiast kiepska jakość nagrania wynika z nakładania częstotliwości aparatu na słabe odświeżanie.

Wcześniej używałem płytki Maximator i obraz był bardzo stabilny na 25MHz. Wiem że mnóstwo rzeczy może mieć na to wpływ - ale jak napisałem to dla mnie w tym momencie nieistotne. Fajnie gdyby udało się mieć znowu poprawny obraz @25MHz, ale i 12.5MHz wystarcza.

W tej chwili chciałem się skoncentrować na samym interfejsie cpu-sterownik. Ma to związek z kolejną zmianą płytki ewaluacyjnej, więc bez sensu w tym momencie poświęcać czas na poprawki.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...