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 I²C 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.
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 I²C, 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.
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.