SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

Iteaduino Lite (LGT8F88A)

Iteaduino Lite to jeden z wielu dostępnych klonów Arduino, jednak  bez wątpienia zasługuje on na kilka dodatkowych słów.  Płytka została wyposażona w autorski, 8-bitowy układ LGT8F88A, który śmiało może konkurować z mikrokontrolerem ATmega88. Najważniejszą cechą tego układu jest obsługa 131 instrukcji, których 80% jest wykonywana w jednym cyklu zegara. Wielkim atutem jest również zdolność pracowania z częstotliwością 32MHz, a więc dwukrotnie większą niż tą, którą znamy chociażby z Arduino UNO z ATmega328. Producent chwali się również mniejszym zapotrzebowaniem na energię elektryczną oraz większą wydajnością niż konkurencja w tzw. pracy zegar-w-zegar. Sprawdzimy to, jednak na początek przyjrzyjmy się samej płytce.

Decydując się na  Iteaduino Lite, otrzymujemy osobno płytkę oraz gniazda do samodzielnego zlutowania, dzięki czemu otrzymujemy układ wyprowadzeń znany z płytek Arduino. Całość możemy zasilić poprzez standardowe 7mm gniazdo D/C, napięciem z przedziału od 7V aż do 24V, które podawane jest na dalej przetwornicę. Za pomocą przełącznika możemy wybrać, jakim napięciem zasilmy nasz układ - może to być napięcie 3.3V lub 5V.  Oczywiście nie mogło zabraknąć przycisku RESET oraz nieśmiertelnej diody D13 :)

Ogromną zaletą jest spora liczba miejsc, do których możemy przylutować dodatkowe goldpiny. Nie zapomniano również o wyprowadzeniu złącza ICSP oraz SWD, do którego wrócimy nieco później.

Iteaduino Lite możemy zaprogramować poprzez gniazdo micro USB, gdzie pomaga mostek USB - UART CP2102. Swoją drogą -  jest doskonale obsługiwany przez jądro Linuksa. Użytkownicy Windowsa niestety będą zmuszeni doinstalować dodatkowy sterownik.

Instalacja Arduino IDE

Jak przystało na porządnego klona Arduino, możliwe jest jego programowanie za pośrednictwem Arduino IDE. Aby jednak było to możliwe, musimy zaopatrzyć się łatkę, która doda obsługę Iteaduino Lite.  Po rozpakowaniu archiwum, musimy skopiować katalog Iteaduino_Lite/ do katalogu hardware/ naszej instalacji IDE. Po ponownym uruchomieniu, powinniśmy zobaczyć w menu Board nasze Iteaduino Lite.

Testy wydajnościowe

Pomimo zdolności pracy z częstotliwością 32MHz, Iteaduino Lite pracuje z częstotliwością o połowę niższą, aby zachować większą kompatybilność z 16MHz produktami Arduino. Pomimo tego LGT8F88A powinien być nieco szybszy od układu Atmegi.

Aby to sprawdzić, przeprowadziłem dwa testy. Pierwszy z nich obliczał liczbę Pi przy milionie iteracji, natomiast drugi polegał na cyklicznej zmianie stanu portu cyfrowego na przeciwny. Wyniki okazały się całkiem niezłe. Kalkulacja liczby Pi została wykonana szybciej o ponad 7%, a operacje I/O pozwalają na uzyskanie częstotlwiości 140 kHz.

  Pi Calculate I/O Speed I/O Spped Suma
Arduino UNO R3 @ 16 MHz 56.455 s. 8.740 s. 114 kHz 66.198 s.
Iteaduino Lite @ 16 MHz 52.307 s. 7.160 s. 140 kHz 59.471 s.

Jedynym mankamentem jest niestety ilość pamięci FLASH, która wynosi tylko 8kB.

Praca z częstotlwiością 32MHz

Aby zmusić nasze Iteaduino Lite do pracy z częstotliwością 32MHz musimy nieco zmodyfikować pliki w naszym Arduino IDE.

W pliku main.cpp znajdującym się w katalogy hardware/Iteaduino_Lite/cores/lgt8f/ w linii 12 zmieniamy zapis:

CLKPR = 0x01;
na
CLKPR = 0x00;

Dodatkowo  w pliku boards.txt w katalogu hardware/Iteaduino_Lite/ w linii 17 zmieniamy zapis:

lgt88_mini.build.f_cpu=16000000L
na:
lgt88_mini.build.f_cpu=32000000L

Ponowna kompilacja i wykonanie naszego testu daje nam następujące wyniki:

  Pi Calculate I/O Speed I/O Spped Suma
Arduino UNO R3 @ 16 MHz 56.455 s. 8.740 s. 114 kHz 66.198 s.
Iteaduino Lite @ 16 MHz 52.307 s. 7.160 s. 140 kHz 59.471 s.
Iteaduino Lite @ 32 MHz 26.150 s. 3.580 s. 279 kHz 29.732 s.

Wciąż  pozostaje jeszcze konieczność modyfikacji źródeł do poprawnego działania timerów, ale to kiedy indziej.

LGT8F88A za 4 zole

Jeśli dobrze poszukamy, możemy dostać w Polsce układ LGT8F88A za 4zł. W dniu kiedy to piszę, jest to 2zł taniej niż w przypadku ATmega88. Dodatkowo odpada nam konieczność zakupu kwarcu, ponieważ LGT8F88A radzi sobie doskonale bez niego zarówno podczas pracy z częstotliwością 16 i 32 MHz.

LGT8F88A to również wbudowana obsługa 12-kanałowego czujnika dotyku, obciążalność portów I/O na poziomie 80mA oraz wewnętrzny oscylator 32kHz o dokładności 1%.

Układ ten jest również zgodny wyprowadzeniami z ATmega88. Poza drobnymi wyjątkami:

LGT8F88A jest zasilany na pinach 4 i 5, pozostałe linie zasilania, które występują w mikokontrolerze ATmega88 zostały zastąpione dodatkowymi portami I/O. Jeśli nasz projekt PCB posiada na nich zasilanie, wystarczy ich nie używać. Linie ADC7 oraz AREF mogą być obsługiwane przez podwójny tryb działania, co z kolei nie jest możliwe w przypadku ATmegi

To wszystko sprawia, że warto chociaż na chwilę pochylić się nad tym układem.

Jak wgrać bootloader Arduino?

Do wgrania bootloadera do LGT8F88A wymagany jest debugger SWDICE mkII. Wszystko co musimy zrobić, to podłączyć  zasilanie do programowanego układu  (debugger nie dostarcza napięcia) oraz linie SWC/SWD (piny 18 i 21). Nie zapomnijmy o połączeniu mas :) Wybieramy odpowiedni programator, a następnie opcję Burn Bootloader.

Po chwili powinniśmy zobaczyć stosowany komunikat o sukcesie operacji

Uwaga! Programator w moim przypadku nie był w stanie wgrać bootloadera przy podłączeniu do portu USB 3.0. Jednak wgrywanie wsadu przez programator działa bez problemu zarówno na USB 2.0 jak i USB 3.0.

LGT8F88A pinout

Reklama

Komentarze Komentarze
Avatar 1
Tomek_74 Windows 7 / Mozilla Firefox 65.0
22 March 2019 - 14:03 Warszawa

Witam,
czy można używać standardowych bibliotek arduino np.: SPI ??
czy szkice Arduino kompilują się z LGT8F88A
jak jest z kompatybilnością programowania.

Faktycznie układ LGT8F88A jest bardzo zachęcającym bardziej że jest wersja 8F328 czyli 32K Flash

Pozdrawiam

Avatar 1
Kaczakat Windows 7 / Safari 537.36
20 May 2019 - 00:39 Brak informacji

Dzięki za artykuł. Mam jedną płytkę z tym uC w wersji "328" i jest bieda. PDF po chińsku, core Wavegat nie polecam, już się przejechałem, że coś tak banalnego jak LCD nie zadziałało, poszło z core od electrodragon. Ten debugger widziałem w Elty i na stronie itead.cc, ale jest już niedostępny, więc w razie czego nie wiem jak wgrać bootloader. Może coś z AVR do PDI podchodzi? Rosjanie już w sumie opublikowali jakieś schematy do programatora a la ArduinoISP - larduinoISP. Ale fajna ciekawostka.