Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega644+TFT LCD - Jakich szybkości wyświetlania mogę się spodziewać?

09 Gru 2012 13:21 3399 16
  • Użytkownik usunął konto  
  • Poziom 23  
    jeżeli ma być AVR + szybkość + 3,3v to dlaczego nie atxmega? (32MHz)
  • Użytkownik usunął konto  
  • Poziom 42  
    Ja sprawdzałem na 8-bit, przykłady masz np tutaj: ;)

    http://mirekk36.blogspot.com/2012/02/tft-lcd-35-efekty-animacja-atmega32.html

    http://mirekk36.blogspot.com/2011/12/panel-dotykowy-na-scalaku-stmpe811-i2c.html

    a tutaj dokładny schemat jak to podłączyłem żeby mieć możliwość podłączać taki LCD i do procków zasilanych 3,3V ale też 5V, ponieważ przy zasilaniu 5V warto nawet procka trochę przetaktować np 24MHz i wtedy śmiga aż miło na najzwyklejszych 8bitach

    LINK

    ale i na 16 MHz też dobrze działa ;)

    Tylko warto zainwestować w wyświetlacz ze sterownikiem SSD1963, bo ma świetne parametry a nawet pewne nieudokumentowane właściwości, które można wykorzystać do błyskawicznego ładowania całych obrazów - jak widać na krótkiej animacji "ZŁY KOTEK" ;)
  • Użytkownik usunął konto  
  • Moderator Mikrokontrolery Projektowanie
    Interfejs równoległy to tylko konieczność skorzystania ze scalonego drivera, np. czegoś z serii xxx245. SPI z konwersją na tranzystorach i tak ci na 20 MHz nie pójdzie, zresztą ATMega taktowana z 20 MHz ma max SPI 10 MHz. I tak to karkołomne zadanie na tranzystorach. Swoją droga transfer danych to nie tylko same dane o obrazie, ale i instrukcje sterujące. W wielu przypadkach (rysowanie pixeli, małe bitmapy) stanowią one istotną część transmisji. Więc czas przepisania całego obrazu jest nieporównywalny z czasem jego tworzenia z elementów. Co do innych możliwości - każdy sterownik LCD ma możliwość panningu, jeśli ilość pamięci VRAM jest większa niż używana przez LCD daje to możliwość tworzenia podwójnego buforowania, w efekcie przerysowywanie nie jest widoczne. To też można znacznie ograniczyć wykorzystując pin tearing dostępny w większości LCD - informuje on, że kreślenie obrazu przeszło przez zadaną pozycję, w efekcie uaktualnienie wykreślonego już obrazu będzie niewidoczne.
    Co do bitmap - możesz użyć dataflash - tanie, pojemne, działa po SPI. Co do proponowanej wcześniej XMEGA - zauważ, że odpada ci konieczność konwersji napięć, masz 32 MHz i DMA wspomagające operacje transferu.
    BTW, odniosłem wrażenie, że chcesz to zrobić w asemblerze?
  • Poziom 42  
    Saabotaz napisał:
    Mirekk - ja już ekran sobie wybrałem więc sterownik jest jaki jest. Czyli wychodzi że lepiej podłączyć to na 8-bit + konwerter. Było widać że ładowanie obrazków do najszybszych nie należy.


    Ale obrazków na cały ekran - do najszybszych nie należy może.

    Za to jak będziesz chciał sobie takie ikonki że tak powiem wyświetlać albo suwaki (patrz filmiki kolegi robiw) ..... to najspokojniej w świecie ATmega przy taktowaniu 20MHz ci to uciągnie i będzie bez żadnych spowolnień wyświetlało się na LCD.
  • Użytkownik usunął konto  
  • Poziom 26  
    SSD1963 jest bardzo fajnym sterownikiem łatwym w oprogramowaniu. Wcześniej stosowałem TFT z Winstar'a ze sterownikiem FSA506, ale pierwszy jest znacznie lepszy. Stosowanie 16-bitowej magistrali ma sens, gdyż przyspiesza transfer - mniejsza liczba zmian sygnałów sterujących. Co do linkowanie pliku BMP to nie wiem czy to ma sens, gdyż plik ten ma niejako w odwrotnej kolejności zapisane informacje o pikselach nie wspominając już o tym, że dołączona jest informacja o kolorach. Ja zastosowałem prosty konwerter, który przekształcił bitmapę w plik HEX, gdzie pierwsze dwa bajty to wysokość ui szerokość bitmapy a reszta to kolejno bajty danych o kolorze poszczególnych pixeli (od lewej do prawej i od góry do dołu) - dwa bajty na pixel - format 565. ATmega chodziła na bodajże 16MHz @3.3V...robiw
  • Poziom 1  
  • Specjalista - Mikrokontrolery
    Projekt zaczyna się od założeń i wymagań na parametry sprzętu, a nie od napisania nazwy procesora. Na pierwszy rzut oka należałoby wziąć jakiś Cortex M3 z min. 128 KiB Flash i częstotliwości 70..100 MHz, który zapewne wyjdzie niewiele (np. o 20%) drożej niż ATmega644, przy nieporównywalnie większych możliwościach.
  • Specjalista - Mikrokontrolery
    I przede wszystkim korzystać z szyny równoległej a nie szeregowej.
    Masz straszne wymagania.
    Wybrałeś LCD, wybrałeś uC, chcesz prosto, szybko zrobić, nie orobić się a żeby działało szybko?

    Jeśli chcesz mieć wszystko porządnie, zabierz się za projekt porządnie.
    A jeśli chcesz zrobić szybko z tego co masz, musisz z czegoś zrezygnować.
  • Użytkownik usunął konto  
  • Moderator Mikrokontrolery Projektowanie
    Z tym równoległym to warto się zastanowić. Niektóre kontrolery LCD mają stosunkowo wolne interfejsy równoległe, a megaszybkie szeregowe, w efekcie równoległy jest oczywiście ciągle szybszy, ale nie aż tak bardzo w stosunku do szeregowego. SPI jest proste i wygodne, na XMEGA wyciągniesz 16 MHz na tym interfejsie, na ATMega 10 MHz, to daje ci odpowiednio transfer 2 MB/s lub 1,25 MB/s (w przypadku ATMega jest to transfer czysto teoretyczny). Daje ci to dla LCD 320x200/8bpp 30 klatek/s, co jest niezłym rezultatem, co z tego, że interfejs równoległy da ci 80 kl/s :) Oczywiście dla ATMega to teoria, bo do SPI trzeba ładować próbki programowo, a nie ma on bufora, więc albo procek nic innego nie robi tylko ładuje i czeka, albo zwalnia (16 taktów clk na wysyłkę to niewiele i na przerwaniach tego nie zrobisz szybciej). XMEGA ma bufor na SPI (USART w trybie SPI) i ma DMA, dzięki czemu transfer gotowych danych prawie nie wpływa na CPU i transfer rzędu 2 MB/s przez SPI jest realny. Z drugiej strony kontroler + procek posiadający interfejs do zewnętrznej pamięci RAM daje wygodny dostęp do LCD. Niestety zwiększa liczbę połączeń, a w przypadku ATMega64/128 potrzebny jest dodatkowy scalak - latch. W przypadku XMEGA latch jest niepotrzebny, a EBI można popędzać dwukrotnie szybciej niż rdzeń, w efekcie dostęp do zewnętrznej pamięci odbywa się prawie tak samo szybko jak do wewnętrznej, to w połączeniu z DMA daje niezłą wydajność, pytanie po co :) Ale to ty już wiesz najlepiej co ten układ ma robić i czego potrzebujesz.
  • Użytkownik usunął konto  
  • Poziom 12  
    Saabotaz, mój Ty nauczycielu ASM nie baw się w SPI ze strony wyświetlacza, jak i pamięci zewnętrznej (zbyt duże straty w czasie).
    Wyświetlacz potraktuj na szynie ośmio bitowej, natomiast informacje o kolorze piksela pociągnij z zewnętrznej pamięci na SPI np.W25Q16.
    Ustawiasz rozmiar okna automatycznego zwiększania i procek pluje danymi o kolorze piksela po szynie.

    robiw , spoglądając na schemat który przedstawiłeś nie widzę tam jakiejkolwiek pamięci zewnętrznej.
    Czyżbyś Umieścił wszystkie informacje o grafice w pamięci M644 ?


    Pozdro