Skocz do zawartości

STM32F746G-DISCO uruchomienie LCD od ręki.


virtualny

Pomocna odpowiedź

STM32F746G-DISCO to bardzo fajny zestaw Discovery. Ma sporo peryferiów. Maksymalna częstotliwość procesora to 216 [MHz]

16 [MB] FLASH QSPI jest mapowane w obszarze 0x90000000 - 0x90FFFFFF

16MB SDRAM jest w połowie niewykorzystane - jest to SDRAM 4MB x 32BITS, ale 16 najstarszych bitów danych jest podłączonych do masy przez rezystory ściągające 10K, co widać na schemacie.
Zatem możemy go traktować jako (8MB) SDRAM 4MB x 16 BITS i jest mapowany w obszar 0xC0000000 - 0xC07FFFFF.
Poniżej schemat podłączenia RAM.

05_SDRAM.thumb.jpg.cb15f8d1fde1a8242830f707ce697b9c.jpg

 

Sam zestaw w blistrze prezentuje się tak:

01_STM32F746G-DISCO-BLISTER.thumb.jpg.c34cdc8b575bd6ab3655282bcc9317c2.jpg

Trochę bliżej bez opakowania z góry:

02_STM32F746G-DISCO-TOP.thumb.jpg.a5b955e97ca546d45a4ccaeed94bc3bd.jpg

Z dołu:

03_STM32F746G-DISCO-BOTTOM.thumb.jpg.dfec9a2df2a8d91aabeeb99f08b503b2.jpg

I z opisem najważniejszych elementów:

04_STM32F746G-DISCO-HW_LAYOUT.thumb.jpg.0867d58209997b0c1e53553880e58daf.jpg

 

W STM bardzo cenię poziom wsparcia dla użytkowników ich procesorów - na przykład wykupili duńską firmę programistyczną od TouchGFX i stworzyli z TouchGFX firmowy framework do aplikacji graficznych na STM32. To jest naprawdę niebywała rzecz, a trzeba dodać że jedna z wielu. Co by nie mówić o Cube, to naprawdę przyspiesza programowanie i ustawienia początkowe danej płyty. To też jest ogromna praca wielu programistów, żeby było możliwe graficznie zainicjować hardware. Nie będę się dalej rozwodził, chociaż było by jeszcze o czym, ale właśnie dzięki temu wsparciu od STM pokażę jak uruchomić wyświetlacz w dzisiaj opisywanym zestawie STM32F746G-DISCO. Wyświetlacz zostanie uruchomiony właśnie z CubeIDE za pomocą kilku kliknięć, korzystając z firmowych przykładów zawartych w pakietach firmware.

W tej chwili korzystam z pakietu dla F7 w wersji V1.17.0 i V1.17.1.

 

Z uwagi na to, że przykład jest poręczny, czyli używa i odpala zewnętrzny SDRAM wybrałem przykład "LTDC_Pictures_FromSDCard" . Program jest bardzo mikry pod względem objętości - nieco ponad 41000 bajtów, a potrafi "obudzić" LCD, obsługiwać kartę SD w trybie SDIO i FAT32. A więc zaczynając tworzenie nowego programu należy wybrać zakładkę "Examples" , wpisać symbol poszukiwanego devboarda jak poniżej na obrazku, wybrać konkretny program i wcisnąć przycisk NEXT.

step1.thumb.jpg.f1e03d278d88b2414dec0a7afff91002.jpg

Kolejne dwa okienka należy potwierdzić next i finish:

step2.thumb.jpg.4f4c81c051a63101ac583f5cd80071e7.jpg

Program się wygeneruje i jako pierwszą rzecz pokaże plik "readme.txt", w którym zapisano bardzo ważne informacje, jak uruchomić ten przykład.

step3.thumb.jpg.b768e418d570aea3d69a0f762edac594.jpg

Tak więc z podanego katalogu w projekcie należy przekopiować kilka plików BMP na kartę microSD do katalogu \Media. Ten katalog należy najpierw utworzyć w root karty SD. Lista skopiowanych plików i na karcie i ścieżka powinna być taka jak na poniższym slajdzie:

step5.thumb.jpg.9b17945fb05530b9683d26da10881a4c.jpg

 

Kartę należy zamontować w zestawie Discovery, następnie skompilować program, podłączyć ST-Linka z Discovery i sflaszować procka. 

Aby pokazać, że można od razu grzebać we framebufferze dodałem 3 linie poniżej pokazanego kodu:

#define FRAME_ADDRESS 0xC007F800
  uint32_t* pFBaddr = (uint32_t *) FRAME_ADDRESS;
  //---
  for(uint32_t i=0; i< (64*1024); i++){
      pFBaddr[i] = LCD_COLOR_BLUE; // fill SDRAM layer buffors as black color ; UTIL_LCD_COLOR_BLACK = 0xFF000000
  }
  //---

Te kilka linii wkleiłem w okolicach linii 98 - jak widać poniżej.

step4.thumb.jpg.b5b26741c613a5ef3275c78ac5b23cba.jpg

 

Po skompilowaniu i wgraniu programu, rusza od "pierwszego strzału" - naprawdę trzeba docenić wsparcie STM. I aby było widać działanie tych doklejonych 3 linii kodu, program pierwszy raz po resecie pokaże tło w 2 kolorach:

2118421999_step6program.thumb.jpg.c8e7557ea25009202b7a300489fc0a4f.jpg

 

Jeżeli chodzi o grzebanie we framebufforze, to sytuacja jest tutaj dość skomplikowana, ponieważ są tutaj odpalone 2 layery i ustawione , oraz manipulowane atrybuty przezroczystości, więc aby całkiem nad tym zapanować nie wystarczą tylko te dodane 3 linie kodu...

 

Kilka kliknięć myszką, następnie skopiować 5 plików na kartę SD, skompilować i wgrać program do internal flash.

I tylko tyle  wystarczyło żeby ożywić zestaw STM32F746G-DISCO

 

 

 

Link do komentarza
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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.