- dwa kanały USB-C/UART lub MPSSE,
- każdy z kanałów może zostać skonfigurowany niezależnie,
- może pełnić funkcję programatora JTAG,
- konfiguracja za pomocą oprogramowania FT_Prog i zapis ustawień w pamięci nieulotnej.
Układ FT2232H pełni funkcje dwukanałowego konwertera USB, a realizowana funkcja konfigurowana jest oprogramowaniem FT_Prog i zapisywana w pamięci nieulotnej typu 93LC66B. Każdy z kanałów może zostać skonfigurowany niezależnie, co umożliwia realizację kanałów JTAG i UART przydatnych zarówno do programowania jak i testowania aplikacji. FT2232H pracuje w typowej aplikacji zasilanej z portu USB.
Budowa i działanie
Konwerter zawiera układ FT2232H, którego budowę we wewnętrzną pokazuje rysunek 1.
Zawiera on wszystkie niezbędne do budowy konwertera bloki funkcjonalne. Schemat konwertera został pokazany na rysunku 2. Magistrala USB doprowadzona jest do złącza USB-C, pracującego w trybie zgodności z USB2.0. Matryca diod TVS zabezpiecza szynę danych DN/DP i zasilanie VBUS interfejsu USB-C przed skutkami przepięć. Stabilizator LDO U3 typu AP7361 dostarcza napięcia 3,3 V do zasilania układu konwertera i umożliwia zasilanie układów współpracujących podłączonych do złącz PA/B, UARTA/B.
Każdy kanał ma diodę Led (PA, PB) sygnalizującą status komunikacji. Interfejs szeregowy UART wraz z zasilaniem 3,3 V doprowadzony jest do złącz UARTA/B zgodnych z Grove, z których można korzystać, gdy FT2232 realizuje funkcje UART. W trybie MPSSE (wieloprotokołowy szybki interfejs szeregowy) konieczne jest wyprowadzenie 4 sygnałów dla każdego kanału, które wraz z zasilaniem dostępne są na złączach PA/B.
Przypisanie sygnałów zależy od wybranego interfejsu, np.: dla JTAG są to TCK, TDI, TDO, TMS, dla SPI SCK, DO, DI, CS. W przypadku realizacji interfejsu JTAG należy zwrócić uwagę na noty katalogowe współpracujących układów i zapewnić odpowiednie rezystory podciągające lub pojemności obciążające poszczególne sygnały, które nie są przewidziane na płytce konwertera.
Montaż i uruchomienie
Układ zmontowany jest na miniaturowej dwustronnej płytce drukowanej, ze względu na chęć zachowania niewielkiego rozmiaru, zastosowano część elementów w rozmiarze SMD0402, co wymaga sporej precyzji podczas montażu. Schemat płytki PCB został pokazany na rysunku 3. Montaż nie wymaga szczegółowego opisu, gotowe urządzenie zostało pokazane na fotografii tytułowej.
Po podłączeniu do komputera z systemem Windows układ wykrywany jest automatycznie. W fabrycznej konfiguracji FT2232 bez dodatkowej konfiguracji obsługuje podwójny interfejs UART. Dla sprawdzenia transmisji, można połączyć ze sobą dwa kanały konwertera i przeprowadzić transmisję znakową z dwóch terminali portu szeregowego lub podłączyć układ do urządzenia docelowego i sprawdzić poprawność komunikacji oraz sygnalizację transmisji RX/TX diodami PA/PB.
Jeżeli chcemy użyć interfejsu MPSSE, musimy uruchomić konfigurator FT_prog.exe (rysunek 4) i zmienić konfigurację (PortX\Hardware) z RS232UART na 245FIFO oraz aktywować driver D2XX (PortX\Driver). Warto ustawić maksymalny pobierany prąd z USB na 500 mA i zwiększyć wydajność GPIO do 16 mA.
Po zapisaniu parametrów do EEPROM (ProgramDevice) i restarcie układu (CyclePort) układ zainicjuje się z nowymi ustawieniami.
W przypadku zmiany funkcji z UART, układ nie jest już widoczny w zakładce portów szeregowych USB Menedżera urządzeń. Aktywny jest driver D2xx, a obsługą MPSSE musi zająć się współpracująca aplikacja, np. programator JTAG. Aby używać płytki konwertera jako programatora do kursu FPGA Lattice, kanał A ustawiamy jako JTAG, kanał B jako interfejs szeregowy. Płytka jest rozpoznawana jako programator zgodny z HW-USBN-2B (FTDI) (rysunek 5).
Należy jednak pamiętać o wyborze kanału FTUSB-0. Po podłączeniu portu A konwertera z interfejsem JTAG układu i inicjacji łańcucha JTAG można wykryć podłączony układ, w tym przypadku LCMXO2-1200HC i używać programatora jak „fabrycznego”. Kanału UART można użyć do komunikacji z aplikacją docelową.
Adam Tatuś, EP
- R1, R2, R3, R11: 2 kΩ
- R4, R5: 5,1 kΩ
- R6: 12 kΩ
- R7: 1 kΩ
- R8, R9, R10: 10 kΩ
- C1, C2, C3, C4, C5, C7, C8, C9, C12: 0,1 μF 10 V (SMD0402)
- CET1, CET2, CET3: 4,7 μFT/10 V, tantalowy A (3216)
- C6: 3,3 μF 10 V (SMD0603)
- C10, C11: 27 pF 10 V (SMD0402)
- C13, C14, C15: 2,2 μF 10 V (SMD0603)
- LD1, LD2: dioda Led żółta (SMD0603)
- LD3: dioda Led czerwona (SMD0603)
- U1: FT2232H-56Q (VQFN56)
- U2: 93LC66BT-I/OT (SOT-23-6)
- U3: AP7361C-33ER-13 (SOT-223)
- FB1, FB2, FB3, FB4: dławik ferrytowy BLM18EG101 (SMD0603)
- PA, PB: złącze szpilkowe SIP6, 2,54 mm
- TVS1: ESD204 (USON10)
- UARTA, UARTB: złącze Grove proste (110990030)
- USB-C: złącze USB-C USB4110GTC
- XT1: kwarc 12 MHz (CFPX-180)