FT311D – nowe życie starego smartfonu z Androidem
Transkrypt
FT311D – nowe życie starego smartfonu z Androidem
NOTATNIK KONSTRUKTORA FT311D – nowe życie starego smartfonu z Androidem Co można zrobić ze starym, ale jeszcze sprawnym telefonem? Jeżeli jest to smartfon z systemem Android, można go użyć w roli przenośnego sterownika z panelem dotykowym. Za pomocą dodatkowego interfejsu z układem FT311D podłączymy do gniazda USB telefonu różne układy wykonawcze. Możliwa będzie bezpośrednia komunikacja z układami, sterowanie w trybie typowego RS232, I2C lub SPI. Dodatkowe informacje: https://goo.gl/8ANiuW Dokumentacja techniczna interfejsu FT311D: https://goo.gl/O1LhVYf Dokument opisujący sposób tworzenia aplikacji dla Androida i poszczególnych trybów pracy interfejsu: https://goo.gl/IfSYkb Strona, z której można pobrać pliki źródłowe przykładowych aplikacji: https://goo.gl/j1komd Dokument opisujący przykładowe aplikacje: https://goo.gl/0DpYhu Układ FT311D, produkowany przez firmę FTDI, znany jest od dobrych kilku lat. Nie stał się tak popularny jak inne interfejsy tej firmy. Pozwala jednak rozszerzyć możliwości telefonu z systemem Android w bardzo prosty, czysto sprzętowy sposób. Niemal każde urządzenie mobilne, czy to smartfon, czy tablet, jest wyposażone w gniazdo USB. Na ogół służy ono tylko do wymiany danych pomiędzy telefonem a komputerem. W taki sposób najłatwiej można odczytać pliki wykonanych zdjęć i zapisać pliki multimedialne. Jeżeli port telefonu może pracować w trybie OTG, do gniazda USB daje się jeszcze przyłączyć nośniki pamięci masowej lub myszkę. Jednak użycie portu USB do innych celów jest bardzo trudne. Tymczasem za pomocą układu interfejsowego FT311D jest możliwa dwustronna komunikacja w trybie UART, czyli jak za pośrednictwem „zwykłego RS232”. Dzięki prezentowanemu urządzeniu będzie można sterować 7 niezależnymi liniami wyjść lub wejść, generować przebiegi PWM lub komunikować się z urządzeniami mającymi interfejs I2C lub SPI. W dodatku nie będą potrzebne do realizacji tych funkcji żadne dodatkowe sterowniki czy specjalne uprawnienia administratora systemu. Jest to możliwe dzięki temu, że FT311D pełni funkcję hosta USB. Interfejs jest „widziany” tak, jakby urządzenie pracujące pod Androidem było przyłączone do komputera zewnętrznego. Interfejs zadziała z każdym urządzeniem z Androidem w wersji 3,1 lub nowszej, a więc z każdą wersją systemu obsługującą tryb „Android Open Accessory” (AOA). Na rysunku 1 pokazano konfigurację połączeń pomiędzy urządzeniem z systemem Android, interfejsem FT311D i sterowanym układem. Do interfejsu USB urządzenia z Androidem przyłącza się wyprowadzenia FT311D służące do obsługi portu w trybie hosta. Z kolei 7 wyprowadzeń IOBUS0…IOBUS6 komunikuje się ze sterowanym układem. Istnieje możliwość konfigurowania wyprowadzeń IOBUS do pracy w różnych trybach. Rysunek 1. Konfiguracja połączeń pomiędzy urządzeniem z systemem Android, interfejsem FT311D i sterowanym układem Tabela 1. Dopuszczalne kombinacje poziomów logicznych na wyprowadzeniach CNFG0…CNFG2 i odpowiadające im tryby pracy 96 CNFG0 GNFG1 CNFG2 Tryb IOBUS0 IOBUS1 IOBUS2 IOBUS3 IOBUS4 IOBUS5 IOBUS6 L H L H L H GPIO GPIO0 GPIO1 GPIO2 GPIO3 GPIO4 GPIO5 GPIO6 H L L UART UART_TXD UART_RXD UART_RTS UART_CTS UART_TX _ACTIVE - - L H L PWM PWM0 PWM1 PWM2 PWM3 - - - H H L I2C (master) I2C_CLK I2C_DATA - - - - - L L H SPI (slave) - - - SPI_S_SS0 SPI_S_CLK SPI_S_ MOSI SPI_S_ MISO H L H SPI (master) - - - SPI_M_SS0 SPI_M_CLK SPI_M_ MOSI SPI_M_ MISO ELEKTRONIKA PRAKTYCZNA 11/2016 FT311D – nowe życie starego smartfonu z Androidem Rysunek 3. Schemat połączeń FT311D pracującego w trybie UART Rysunek 2. Schemat połączeń FT311D pracującego w trybie GPIO Tryby pracy wyprowadzeń IOBUS układu FT311D Linie IOBUS mogą pracować jako wyprowadzenia interfejsów w jednym z wybranych trybów. Mogą działać jako wyjścia lub wejścia, pełnić funkcję interfejsu UART lub I2C, SPI, wyjścia sygnałów PWM. O tym, który tryb pracy zostanie przyporządkowany do poszczególnych wyprowadzeń IOBUS, decydują poziomy logiczne podane na trzy linie CNFG0… CNFG2 interfejsu FT311D. W tabeli 1 wymieniono wszystkie dopuszczalne kombinacje poziomów wymuszające pracę wyprowadzeń IOBUS w określonym trybie. Linie CNFG mogą być zwarte do masy (poziom L) lub pozostawione niepodłączone (poziom H). Tryb GPIO W tym trybie każde z wyprowadzeń IOBUS może znaleźć się w stanie wysokim lub niskim. Dowolne wyprowadzenie może pracować jako wejście lub wyjście. Jako wejścia wyprowadzenia tolerują poziom napięcia 3,3 V lub 5 V. Na rysunku 2 pokazano przykładową konfigurację FT311D do pracy w trybie GPIO. W przykładzie wyprowadzenia IOBUS0…IOBUS3 pracują jako wyjścia sterujące czterema diodami LED. Wyprowadzenia IOBUS4…IOBUS6 pracują jako wejścia podłączone do trzech przycisków. Po naciśnięciu przyciski zwierają do masy. Wyprowadzenia IOBUS są wewnętrznie podciągane do napięcia zasilającego układ, dzięki czemu nie ma potrzeby stosowania dodatkowych rezystorów zasilających. Rysunek 4. Schemat połączeń FT311D pracującego w trybie PWM Tryb UART W tym trybie wyprowadzenie IOBUS0 pełni funkcję wyjścia TxD, a wyprowadzenie IOBUS1 wejścia RxD. Możliwa jest transmisja z szybkościami w zakresie od 300 bps do 6 Mbps. Wyprowadzenia można dołączyć bezpośrednio do portów UART zewnętrznego kontrolera albo do konwertera poziomów np. MAX232. Dodatkowo dostępne są sygnały sprzętowej kontroli przepływu RTS i CTS. Układ może także pracować z interfejsem RS485. W tym wypadku sygnał ACTIVE Rysunek 5. Podłączenie do interfejsu FT311D układu z interfejsem I 2C z wyprowadzenia IOBUS4 będzie służył do przełączenia pomiędzy odbiorem a nadawaniem. Na rysunku 3 pokazano schemat połączeń w trybie UART. Wyprowadzenia IOBUS5… IOBUS6 nie są używane. ELEKTRONIKA PRAKTYCZNA 11/2016 97 NOTATNIK KONSTRUKTORA Rysunek 6. Układ FT311D pracujący w trybie slave Rysunek 7. Układ FT311D pracujący w trybie master Tryb PWM linie danych i zegarowa powinny być podciągnięte poprzez dodatkowy opornik do poziomu zasilania. Podłączenie do interfejsu FT311D układu np. pamięci pokazano na rysunku 5. W tym trybie interfejs pracuje jako master. Maksymalna szybkość transmisji danych magistralą może wynieść 125 kbit/s. Ten tryb służy do generowania na wybranych wyjściach IOBUS0…IOBUS3 przebiegów o regulowanym okresie i wypełnieniu (rysunek 4). Okres impulsów jest wspólny dla wszystkich 4 kanałów i może być ustawiany w przedziale od 1 do 250 ms. Z kolei wypełnienie można oddzielnie dla każdego kanału zmieniać w zakresie od 5% do 95% lub wyłączyć generowanie przebiegu, ustawiając wartość 0%. Tryb SPI master i slave W trybie SPI interfejs FT311D może pracować jako master lub slave. Linie IOBUS3…IOBUS6 dostarczają wszystkich przebiegów potrzebnych do pracy w obu trybach. Na rysunku 6 pokazano sytuację, w której interfejs FT311D pracuje jako slave, a na rysunku 7 jako master. Tryb I2C W tym trybie wykorzystane są tylko wyprowadzenia IOBUS0 i IOBUS1. Zgodnie z wymaganiami standardu transmisji I2C +3V3 R4 1k +5V IC2 2 1 2 13 22 28 10 9 S1 C15 1u 4 3 USB 1 2 3 4 1uH L1 G1 GND C11 100n C10 10u/16 GND GND GND R1 27 17 18 R2 27 C1 100n USB–A GND + GND C2 47p GND 12 14 15 C3 47p GND 3 7 H 5 3 1 Q1 JP1 L 8MHz 4 5 C12 100n IOBUS0 VCC VCCIO VCCIO VCCIO RESET TEST2 IOBUS1 IOBUS2 IOBUS3 USBDP IOBUS4 USBDM IOBUS5 IOBUS6 CNFG0 CNFG1 CNFG2 1V8_VCC_IN VREGOUT GND D3 BYS11–90 GND GND SV1 24 7 6 5 4 3 2 1 25 26 29 30 31 11 TEST0 32 USB_ERR TEST1 GND GND GND GND GND XTIN XTOUT 6 4 2 C13 15p 23 +3V3 8 1 6 16 19 27 SV2 4 3 2 1 C14 15p GND GND G3–1 IC4 G3–2 LM1117 5V VOUT 3 GND 4 C8 10u/16 GND GND Rysunek 8. Schemat ideowy interfejsu z układem FT311D 98 ELEKTRONIKA PRAKTYCZNA 11/2016 + + C9 100n GND C4 10u/16 GND VIN 1 GND TAB +3V3 LM1117 3V3 2 VOUT GND C7 10u/16 2 3 1 GND + VIN GND G2 GN DC2.5/5.5 SMD 1*2 3 D1 2 BYS11–90 IC1 +5V TAB LED1 4 + C5 10u/16 GND GND GND C6 100n GND 500 R3 GND FT311D – nowe życie starego smartfonu z Androidem Daj nowe życie swojemu staremu smartfonowi! W ofercie AVT są dostępne zestawy komponentów do omawianego sterownika. Można je nabyć za pomocą strony internetowej http://sklep.avt.pl/ Schemat interfejsu z układem FT311D interfejs FT311D. Zależnie od wybranego trybu pracy interfejsu aplikacja musi obsłużyć transmisję (np. odbiór i wysłanie danych poprzez UART) lub steruje poszczególnymi wyprowadzeniami w przypadku ustawienia trybu GPIO lub PWM. Firma FTDI udostępnia pliki źródłowe przykładowych aplikacji dla wszystkich trybów pracy interfejsu oraz dokumentację z opisem poszczególnych procedur. Linki do wspomnianych materiałów zamieszczam na końcu artykułu. Korzystając z podanych przykładów, można napisać własną aplikację do obsługi interfejsu w interesującym nas trybie. Generalnie musi ona zawierać procedurę ustanowienia połączenia pomiędzy urządzeniem androidowym (smartfonem lub tabletem) a interfejsem FT311D oraz procedurę transmisji danych. Na rysunku 9 zamieszczono zrzut ekranu aplikacji firmowej FTDI o nazwie PWMDemo. Służy ona do ustawienia okresu i wypełnienia dla 4 kanałów PWM odpowiadających IOBUS0-3. Aplikacja uruchamia się samoczynnie po dołączeniu interfejsu ustawionego w trybie PWM do telefonu. Schemat ideowy interfejsu z układem FT311D pokazano na rysunku 8. Gniazdo G1 służy do połączenia interfejsu z portem USB telefonu bądź tabletu. Linie IOBUS wyprowadzono na złącze SV1. Na wydzielonym złączu SV2 wyprowadzono napięcie +3,3 V oraz masę zasilania GND. Linie CNFG służące do wyboru trybu pracy interfejsu połączono ze złączem JP1. Założenie zwór na stykach złącza zeruje linie CNFG, a pozostawienie styków rozwartych – ustawia. Przycisk S1 służy do ręcznego zerowania interfejsu. Napięcie do zasilania interfejsu można podać na gniazdo G2 lub G3. Z wyjścia stabilizatora IC4 napięcie +5 V podawane jest na gniazdo USB współpracującego telefonu lub tabletu. Jeżeli akumulator dołączo- Rysunek 9. Zrzut ekranu aplikacji firmonego telefonu będzie częściowo rozła- wej FTDI o nazwie PWMDemo dowany, napięcie +5 V będzie służyło do jego ładowania. Ponieważ prąd ładowania może być dosyć duży, nawet rzędu kilkuset miliamperów stabilizator IC4 może Ograniczenia układu FT311D się mocno nagrzewać. Dlatego napięcie zasilania interfejsu, Oprócz niewątpliwych korzyści, które daje stosowanie intergdy telefon się ładuje, powinno być możliwe niskie, rzędu 6 V. fejsu FT311D, w czasie eksperymentowania z tym układem dostrzegłem pewne ograniczenia związane z jego działaniem. Aplikacje współpracujące z interfejsem FT311D Wszystkie wyprowadzenia IOBUS muszą pracować w tym Do sterowania układami podłączonymi do wyprowadzeń samym trybie. Dlatego nie można np. jednocześnie uruchoIOBUS potrzebne są aplikacje androidowe. Są one urucha- mić transmisji UART i sterować dwoma niewykorzystanymi miane na urządzeniu mobilnym, do którego przyłączono liniami IOBUS5, IOBUS6. Do zmiany trybu jest konieczna zmiana konfiguracji wyprowadzeń CNFG, wyzerowanie interfejsu i ponowna inicjacja w nowym trybie pracy. Dla ustanowienia komunikacji pomiędzy urządzeniem androidowym a interfejsem jest niezbędne podanie na pierwszy styk gniazda USB napięcia +5 V, które może służyć do ładowania akumulatora telefonu. Ze względu na duży prąd potrzebny podczas ładowania sensowne jest rozdzielenie zasilania telefonu od zasilania samego interfejsu lub zasilania interfejsu FT311D napięciem ładowania samego telefonu np. z dołączonego na stałe zasilacza sieciowego. Wariant interfejsu FT312D Oprócz opisanego interfejsu FT311D jest dostępny jego wariant o nazwie FT312D. Różni się ograniczeniem dostępnych trybów pracy do jednego obsługującego transmisję UART. ryszard szymaniak, ep ELEKTRONIKA PRAKTYCZNA 11/2016 99