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



Teraz jest 25 mar 2026, o 19:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 30 lip 2016, o 16:18 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Witam wszystkich!

Zwracam się z prośbą do osób będących w temacie jak i nie. Chodzi o pomoc w uruchomieniu wyświetlacza podpiętego do scalak FT811.

Mam gotowy przykład stąd" http://www.ftdichip.com/Support/Softwar ... adient.zip

jednak pomimo próby dostosowania do mojej atmegi328(w sumie to tylko SPI) nie mogę uruchomić LCD dla tego przykładowego kodu.

Jeśli ktoś byłby w stanie udzielić mi pomocy na priv, będę wdzięczny. Oczywiście jak biblioteka będzie gotowa mogę ją tutaj udostępnić a pomocnej osobie podaruję inny LCD ale do raspberry pi 2 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2016, o 16:24 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Kolega zauważył może że na stronie FTDI przykłady są dla FT800 który się znacznie rózni od FT810 bo różnica między 810 , a 811 polega na użyciu dotyku pojemnościowego ... wystarczy poczytać sobie Migration Guide i po kłopocie , w tym celu są udostępniane te dokumenty
ja na obecną chwilę używam tylko z kinetisem ...

--

P.S dostępne są biblioteki dla AVR http://libstock.mikroe.com/projects/vie ... 10-library do środowiska microE jakim jest MicroC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2016, o 17:17 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Z tego widzę i co jest napisane w migration guide ściągnięte przykłady +EVE2 mają w sobie co trzeba, wystarczy tylko odpowiednie #define aktywować co zrobiłem no ale pewno jeszcze gdzieś jest błąd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2016, o 17:46 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

oczywiście gdyż nie zgadzają się adresy :P

http://www.sunduino.pl/wordpress/ft810- ... nie-ft800/
http://www.sunduino.pl/wordpress/ft81x- ... f-czesc-1/
http://www.sunduino.pl/wordpress/ft81x_czesc2/
http://www.sunduino.pl/wordpress/ft81x- ... f-czesc-3/
http://www.sunduino.pl/wordpress/ft81x- ... f-czesc-4/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 09:13 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

SunRiver napisał(a):


No właśnie, że się zgadzają, w pliku FT_Gpu.h są zdeifniowane dobre adresy tak jak na twojej stronie dla FT811.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 09:20 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

to coś robisz źle bo jak widzisz działa na arduino :
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 09:37 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Żeby to jakoś ogarnąć od początku muszę sobie przygotować te funkcje:

wr8() – write 8 bits to intended address location
wr16() – write 16 bits to intended address location
wr32() – write 32 bits to intended address location
wr8s() – write 8 bits string to intended address location
rd8() – read 8 bits from intended address location
rd16() – read 16 bits from intended address location
rd32() – read 32 bits from intended address location
rd8s() – read 8 bits string from intended address location
cmd() – write 32 bits command to co-processor engine FIFO RAM_CMD
cmd_*() – Write 32 bits co-processor engine command with its necessary parameters to the coprocessor
engine FIFO (RAM_CMD).
dl() – Write 32 bits display list command to RAM_DL.
host_command() – send host command in host command protocol.

Dodatkowo sprawdzę analizatorem czy SPI jest ok i wtedy zacznę krok po kroku jak w Programmers Guide uruchamiać, bo w tej chwili mam trochę rozbudowany przykład w którym się gubie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 10:00 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Dokładnie ma początu zawsze sie robi proste napisy i kolorki
poco sobie komplikować



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 10:26 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Sprawdziłem SPI analizatorem:

Po wysłaniu 0xAA otrzymałem jak poniżej:

Obrazek

Wydaje się że chyba jest ok ale niektóre "piki" mi się nie podobają.. może ktoś ocenić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 10:39 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Powinno być ok ..

pokarz .. coś tam namieszał



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 11:10 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Nie chcę na razie wprowadzać zamieszania, bo wyrzuciłem teraz znaczną część zbędnego kodu i chcę to zrobić "step by step" od początku.
Czy na Twojej stronie jest gdzieś do pobrania paczka całego projektu? W zasadzie chodzi mi o to żeby dojść do narysowania kreski od początku. Zwłaszcza chodzi mi o to co wysłać na początku i co z pinem PD.

Ok miałem pod nosem w datasheet :)


Tak wygląda inicjalizacja w main:
Kod:
   PD_0;
   _delay_ms(50);
   PD_1;
   _delay_ms(50);
   

   ft800cmdWrite(0x00);   // active
   _delay_ms(10);
   ft800cmdWrite(0x44);   // external clock
   _delay_ms(10);
   ft800cmdWrite(0x62);   // PLL 48mhz
   _delay_ms(10);
   
   Wr8(REG_PCLK, ZERO);
   
   
   // konfiguracja rejestrów dla WVGA 800x480
   Wr16(REG_HCYCLE, 928);
   Wr16(REG_HOFFSET, 88);
   Wr16(REG_HSYNC0, 0);
   Wr16(REG_HSYNC1, 48);
   Wr16(REG_VCYCLE, 525);
   Wr16(REG_VOFFSET, 32);
   Wr16(REG_VSYNC0, 0);
   Wr16(REG_VSYNC1, 3);
   Wr8(REG_SWIZZLE, 0);
   Wr8(REG_PCLK_POL, 1);
   Wr8(REG_CSPREAD, 0);
   Wr16(REG_HSIZE, 800);
   Wr16(REG_VSIZE, 480);

   
   /* write first display list */
   Wr32(RAM_DL+0,CLEAR_COLOR_RGB(0,0,0));
   Wr32(RAM_DL+4,CLEAR(1,1,1));
   Wr32(RAM_DL+8,DISPLAY());

   
   Wr8(REG_DLSWAP,DLSWAP_FRAME);//display list swap
   Wr8(REG_GPIO_DIR,0x80 | Rd8(REG_GPIO_DIR));
   Wr8(REG_GPIO,0x080 | Rd8(REG_GPIO));//enable display bit
   Wr8(REG_PCLK,5);//after this display is visible on the LCD
   
   Wr16(REG_PWM_DUTY, 50);


Sunriver, czy mógłbyś sprawdzić na swoim LCD jaki masz pobór prądu? Zauważyłem teraz, że płytka z tyłu LCD w jednym miejscu mocno się grzeje, zmierzyłem pobór prądu - 320mA! NA stronie sprzedawcy jest podane ok. 180mA. Czyżby było coś uwalone?

EDIT: 01.08.

Żeby nie było, że coś źle narobiłem z kodem. Ściągnąłem przykład do Arduino ze strony sprzedawcy ponoć ma działać na 100%. Wgrałem przez Arduino, podpiąłem tak jak podano. Żadnej reakcji.Odsyłam LCD do sprzedawcy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sie 2016, o 22:04 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Okazało się, że jednak LCD jest sprawny, problem był po mojej stronie w kwestii zasilania.



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: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO