Opracowanie układu wejść i wyjść binarnych współpracującego z interfejsem USB



Podobne dokumenty
Instrukcja użytkownika

Instrukcja użytkownika

MMusb232HL. Instrukcja uŝytkownika REV 1.0. Many ideas one solution

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

Instrukcja uytkownika

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Kod produktu: MP-BT-USB

Kod produktu: MP01611

Wykład 4. Interfejsy USB, FireWire

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania

Katedra Metrologii i Systemów Elektronicznych. Interfejs USB

Układy transmisji przewodowej. na przykładzie USB

Instrukcja do oprogramowania ENAP DEC-1

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

SML3 październik

MultiTool instrukcja użytkownika 2010 SFAR

Technika Mikroprocesorowa

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Architektura komputerów

Zastosowania mikrokontrolerów w przemyśle

To jeszcze prostsze, MMcc1100!

Wykład 3. Interfejsy CAN, USB

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

INSTRUKCJA instalacji interfejsu USB-RS422/485

RS485 MODBUS Module 6RO

Kod produktu: MP-W7100A-RS232

Kod produktu: MP01611-ZK

Instrukcja instalacji interfejsu komunikacyjnego RUD-1

dokument DOK wersja 1.0

Kod produktu: MP01105T

PŁYTKA DRUKOWANA EM-USB-DIL24 BUDOWA INTERFEJSU USB-RS232 (TTL) - DIL24

RS485 MODBUS Module 6RO

Moduł Komunikacyjny MCU42 do systemu AFS42

Kod produktu: MP01105

Wykład 4. Interfejsy USB, FireWire

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Konwerter USB/RS232 KU-01b. Instrukcja obsługi. tel (12:00-16:00) fax

Architektura komputerów. Układy wejścia-wyjścia komputera

Przemysłowy odtwarzacz plików MP3

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

RS485 MODBUS Module 6RO

Architektura komputerów

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Wrocławska

Instrukcja MM-717 Tarnów 2010

INSTRUKCJA instalacji interfejsu USB-RS422/485

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

INSTRUKCJA UŻYTKOWNIKA MPCC

Instrukcja do konwertera USB-RS232

micro Programator ISP mikrokontrolerów AVR zgodny z STK500v2 Opis Obs³ugiwane mikrokontrolery Wspó³praca z programami Podstawowe w³aœciwoœci - 1 -

Konwerter DAN485-MDIP

USB - Universal Serial Bus

NARZĘDZIE KONFIGURACYJNE VNX SETUP TOOL MODUŁÓW RODZINY VNX ADVANCED

Kod produktu: MP-W7100A-RS485

TRB-0610 Konwerter USB RS 232/422/485 Instrukcja obsługi

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

1.10 MODUŁY KOMUNIKACYJNE

Kod produktu: MP01611-ZK

Interfejs komunikacyjny RUD-1 v1.0

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

ALNET USB - RS Konwerter USB RS 232/422/485 Instrukcja obsługi

Ćwiczenie 4: Eksploatacja systemu kontroli dostępu jednego Przejścia REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

Kod produktu: MP-BTM222-5V

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Programator ICP mikrokontrolerów rodziny ST7. Full MFPST7. Lite. Instrukcja użytkownika 03/09

Koncentrator USB-4xRS (HUB USB-4xRS)

Koncentrator USB-4xRS (HUB USB-4xRS)

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

Instrukcja uytkownika

INSTRUKCJA UŻYTKOWANIA CZYTNIKA KART PROCESOROWYCH SYGNET 5v1 IU SY5

Programator procesorów rodziny AVR AVR-T910

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

CR232.S v2 KONWERTER CAN / RS232

Instrukcja obsługi czytnika MM-R32

2. Architektura mikrokontrolerów PIC16F8x... 13

2.1 Przesył danych między procesorem a tabelą zmiennych

Izolowany konwerter szyny USB na RS-422/485

Opis czytnika TRD-55 CLASSIC ver Moduł czytnika transponderów UNIQUE z zewnętrzną anteną

Kod produktu: MP-IKP1W-USB

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

KT-ETH-RS232-1 Instrukcja użytkownika KRISTECH,

CRUSB KONWERTER CAN / USB

1.1 Co to jest USBCOM? Budowa oraz parametry techniczne... 3

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Współpraca procesora z urządzeniami peryferyjnymi

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

ARS3-MODEM dokumentacja modemu radiowego do lokalnej transmisji danych w wolnych pasmach 433MHz i 868MHz

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Plan wykładu. 1. Urządzenia peryferyjne 2. Rodzaje transmisji danych 3. Interfejs COM 4. Interfejs LPT 5. Plug and Play

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

Moduł RS232 E054. TAP - Systemy Alarmowe Sp. z o. o. os. Armii Krajowej Poznań tel ; fax:

Transkrypt:

Opracowanie układu wejść i wyjść binarnych współpracującego z interfejsem USB Bloch Sławomir Stadnik Krzysztof

WSTĘP W każdym systemie USB jest tylko jeden host, który zarządza protokołem USB, żadne urządzenie peryferyjne bez zezwolenia hosta nie ma dostępu do magistrali. Możliwe jest zasilanie urządzeń peryferyjnych (pobór prądu do 100mA) jak również wprowadzanie ich w tryb uśpienia (pobór prądu nie większy niż 500µA). Dane są przesyłane w kodzie NRZI. Kabel USB to cztery żyły: masa, zasilanie oraz para D + D -, na której różnicowo są przesyłane dane. Przy wysyłaniu jedynki przewód D + jest w stanie wysokim a D - niskim, zaś w przypadku przesyłania zera na odwrót. Jeśli występuje ciąg 5 jedynek to wstawiane jest zero. Host wysyłając jednocześnie na D + i D - stan niski przez ponad 2,5µs chce zresetować urządzenie peryferyjne. Serial Interface Engine jest częścią warstwy fizycznej i odpowiada za konwersję danych szeregowych na równoległe i odwrotnie w zależności od kierunku transmisji. Serial Interface Engine jest odpowiedzialny również za generowanie bitów CRC(BER<10-10 ) i ich weryfikację, jak również za rozpoznawanie sygnałów wprowadzającego w stan uśpienia, powrotnego z tego stanu oraz sygnału reset. W każdym systemie jest zawsze jeden host controller. Układ ten formuje ramki i zarządza protokołem USB. Transfer danych w tym protokole można podzielić na 3 części: Token phase zainicjowanie przez host tokena wskazującego na rodzaj transferu Data phase transmisja danych w kierunku zgodnym z kierunkiem wskazywanym przez token Handshake phase (opcjonalna) wysyłanie specjalnego pakietu (handshake packet) wskazującego czy transmisja się powiodła czy nie. Host chcąc odebrać dane od urządzenia wysyła token. Jeśli urządzenie faktycznie ma dane do wysłania następuje ich wysłanie i ewentualnie faza handshakingu. Jeśli ich nie posiada, host przekazuje token do następnego urządzenia. W przypadku gdy host chce wysłać dane do urządzenia również wysyła token, lecz inny niż w powyższym przypadku, a za nim pakiety z danymi. 2

Na początku każdego pakietu następuje synchronizacja urządzenia peryferyjnego (ciąg D + D - D + D - D + D - D + D - ). Na początku pakietu znajduje się pole służące do rozróżnienia rodzaju pakietu (Packet Identifier Fidel 8 bitów). Wyróżniamy następujące rodzaje pakietów: Tokeny OUT (wskazują, że dane będzie wysyłana od hosta), IN (dana wysyłana będzie do hosat), SOF token (wskazują początek ramki), SETUP token (dana będzie wysyłana od hosta w celu konfiguracji urządzenia) Pakiety danych w polu PIF takiego pakietu znajduje się jego numer Handshake w polu PIF takiego pakietu znajduje się informacja czy transmisja się udała (ACK), czy nie (NAK) W zależności od rodzaju pakietu wyróżnić możemy też pole adresu (tokeny), podzielone na dwie części. Pierwsza część to numer urządzenia (od 1 do 127), który przydzielił mu host. Numer 0 jest zabroniony jako adres stały, wykorzystywany jako adres wstępny. Druga część określa adres tzw. endpointu (każde urządzenie peryferyjne zawiera przynajmniej jeden). Następnie znajdują się dane (do 1023 bajtów tylko pakiety danych) i bity CRC (nie występują w pakietach handshake) Pakiet danych Handshake pakiet Pakiet Token SOF Pozostałe pakiety Token 3

USB może obsługiwać różnorodne urządzenia także dzięki oferowaniu następujących sposobów transmisji danych: transmisja typu BULK przewidziana dla urządzeń potrzebująch przesyłać duże bloki danych, bez zapewnienia stałych interwałów między transferami. Ponadto w transmisji typu BULK zapewniane jest bezbłędne dostarczenie danych i ewentualne wznowienie transakcji, które się nie powiodły. Ten typ transmisji wykorzystują takie urządzenia jak drukarki, skanery, dyski twarde itp. transmisja typu ISO (izochroniczna) przewidziana jest dla klasy urządzeń, które muszą transmitować lub odbierać dane synchronicznie. W grupie tej można znaleźć np.: kamery, głośniki, mikrofony itp. W fazie inicjacji rezerwowany jest fragment pasma magistrali USB dla poprawnej obsługi urządzenia ewentualne błędy transmisji nie są korygowane, ale przekaz w tym trybie ma wyższy priorytet niż dla typu BULK. transmisja typu INTERRUPT przewidziana jest dla urządzeń, które zwykle swoją pracę opierały na systemie przerwań procesora. Zamiast rzeczywistych przerwań stosuje się tu jednak technikę odpytywania urządzenia w ustalonych odstępach czasowych. Ten tryb transmisji podobnie jak BULK zapewnia bezbłędne dostarczenie danych do odbiorcy. Najczęściej transmisję typu INTERRUPT wykorzystują urządzenia takie jak klawiatury, myszy itp. transmisja typu CONTROL tryb od którego zaczyna się komunikacja między hostem a urządzeniem, służy do konfiguracji urządzeń, konfiguracja może się odbyć nie tylko podczas enumeracji urządzenia lecz również w każdym momencie transmisji. Systemy USB mogą pracować z szybkością: Low Speed (LS) do 1,5Mb/s (maksymalna długość kabla 3m) Full Speed (FS) 12Mb/s (maksymalna długość kabla 5m) High Speed (HS) 480Mb/s (maksymalna długość kabla 5m) Maksymalna odległość, na jaką mogą być przesyłane dane poprzez USB to 25m, lecz co 5m musimy wstawić huba. 4

Po podłączeniu urządzenia do działającego hosta następuje: Host rozpoznaje, że urządzenie zostało przyłączone dzięki dzielnikowi napięcia, do którego przyłączana jest para różnicowa, Host do huba, do którego zostało podłączone urządzenie wysyła zapytanie co zostało podłączone (kolejny hub czy urządznie), Gdy jest to urządzenie host wysyła sygnał seretu do tego nowo podłączonego urządzenia, Po resecie urządzenie komunikuje się z hostem za pomocą endpointu 0, Host wykrywa szybkość, z jaką urządzenie może przesyłać dane (w zależności czy linia D + (FS) czy D - (LS)ma potencjał bliski V CC ), Host przydziela adres urządzeniu, Na przydzielony adres host wysyła zapytanie o informacje o podłączonym urządzeniu, a na ich podstawie wybiera odpowiedni sterownik, do komunikacji z urządzeniem, Na podstawie sterownika ustawiany jest tryb w jakim odbywać się będzie komunikacja. KONTROLER FT 245 BM 5

Schemat blokowy kontrolera przedstawiony jest na powyższym rysunku. Składa się on z następujących bloków funkcjonalnych: 3,3V LDO Regulator Główną funkcją tego bloku jest zasilanie bloków USB Transceiver oraz Reset Generator. Blok ten w mniejszym stopniu może być wykorzystany do zasilania zewnętrznych układów wymagających napięcia 3,3V pod warunkiem, że pobierany przez nie prąd jest nie większy niż 5mA za pomocą pinu 3V3OUT. Dostarcza również 3,3V do pinu RSTOUT#. USB Transceiver Nazwa bloku jest skrótem od Transmiter-Receiver (Nadajnik-Odbiornik). USB Transceiver zapewnia dla łącza USB 1.1 / USB 2.0 pracę w trybie full-speed. USB DPLL Blok ten odzyskuje z danych w kodzie NRZI sygnał zegarowy i dostarcza go oraz te dane do bloku SIE. 6MHz Oscillator Za pomocą tego bloku otrzymywany jest sygnał zegarowy o częstotliwości 6MHz, który jest wykorzystywany przez blok x8 Clock Multiplier. x8 Clock Multiplier Przy użyciu sygnału o częstotliwości 6MHz generowany są sygnały zegarowe o częstotliwości 12MHz dla bloków SIE, USB Protocol Engine i UART FIFO Controller oraz 48MHz dla bloków USB DPLL i Baud Rate Generator. Serial Interface Engine Blok ten dokonuje konwersji równoległo-szeregowej lub szeregoworównoległej danych z/do łącza USB. Zgodnie ze specyfikacją USB 2.0 dodaje bądź usuwa bity kontrolne CRC5 lub CRC16 do/z strumienia danych. 6

USB Protocol Engine Blok zajmuje się obsługą protokołu USB. Dual Port TX Buffer (128 bajtów) Bufor pośredniczący, do którego zapisywane są dane przychodzące z portu USB, a następnie przekazywane do bloku UART Transmit Register. Odbywa się to pod kontrolą ze strony UART FIFO Controller. Dual Port RX Buffer (384 bajtów) Działanie bloku jest analogiczne do powyższego, lecz dla danych transmitowanych w przeciwnym kierunku. UART FIFO Controller Kieruje transferem danych pomiędzy buforami Dual Port TX i RX Buffer a rejestrami bloku UART. FIFO Controller Blok dokonuje konwersji równoległo-szeregowej lub szeregowo-równoległej danych do/z interfejsu RS245. Obsługuje piny D0 D7, RD#, WR, TXE#, RXF#. Baud Rate Generator Generator dostarcza blokowi UART sygnału pochodzącego z 48MHz Reference Clock, lecz o częstotliwości 16-krotnie zwiększonej. Określa parametr Baud Rate bloku UART, który jest programowalny w zakresie od 183 do 3 milionów bodów. RESET Generator Blok RESET Generator zapewnia resetowanie wewnętrznych urządzeń przy wzroście napięcia. Dodatkowe wejście RESET# oraz wyjście RSTOUT# umożliwiają odpowiednio innym urządzeniom resetowanie FT245BM bądź 7

FT245BM resetowanie innych urządzeń. Pin RSTOUT# pozostaje w stanie wysokiej impedancji przez około 5ms po tym, jak napięcie na pinie wzrośnie ponad 3,5V przy jednocześnie działającym oscylatorze i wysokim stanie na pinie RESET#. Jeśli nie będzie wykorzystywane resetowanie z zewnątrz, wejście RESET# powinno być zwarte z. EEPROM Interface FT245BM może pracować bez pamięci EEPROM. Pamięć EEPROM powinna być 16-bitowa. Wykorzystywana jest ona przy samodzielnym ustalaniu wartości VID, PID, Serial Number, Product Description Strings oraz Power Description. Jeśli pamięć ta jest niepodłączona, FT245BM będzie używał domyślnych wartości wymienionych wyżej parametrów, za wyjątkiem Serial Number. Poniżej przedstawiony jest wygląd i opis wejść oraz wyjść urządzenia: 8

Piny interfejsu UART: RD# wyjście dla asynchronicznej transmisji danych WR wejście dla asynchronicznej transmisji danych RXF# wyjście sygnalizujące chęć wysłania danych TXE# wejście informujące o chęci nadania danych przez urządzenie zewnętrzne D0..7 Dane wejściowe i wyjściowe Piny interfejsu USB: USBDP wejście/wyjście, plus sygnału danych USBDM wejście/wyjście, minus sygnału danych Piny interfejsu EEPROM: EECS wejście/wyjście, chip select EESK wyjście sygnału zegarowego dla EEPROM EEDATA wejście/wyjście danych do/z EEPROM SLEEP# wyjście w stanie niskim w trybie uśpienia (Suspend Mode), używane do zmniejszania pobieranej mocy PWREN# wyjście w stanie niskim po skonfigurowaniu urządzenia za pomocą USB, a następnie w stanie wysokim w trybie uśpienia, także używane do zmniejszania pobieranej mocy PWRCTL wejście, w stanie niskim oznacza zasilanie z magistrali, w stanie wysokim samozasilanie Sygnały zasilania: 3V3OUT wyjście z LDO Regulator dostarczające napięcia 3,3V do bloku USB Transceiver oraz pinu RSTOUT#, a także do zasilania niewielkich układów zewnętrznych. Powinno być połączone z masą za pomocą kondensatora ceramicznego o pojemności 33nF. zasilanie napięciem od 4,35V do 5,25V dla bloku LDO i bloków spoza interfejsu UART IO zasilanie napięciem od 3V do 5,25V dla UART GND masa A źródło zasilania dla analogowej części bloku x8 Clock Multiplier 9

AGND masa dla analogowej części bloku x8 Clock Multiplier Pozostałe wejścia i wyjścia: RESET# wejście służące do resetu FT245BM za pomocą urządzeń zewnętrznych RSTOUT# wyjście wewnętrznego Generatora Resetu (Reset Generator) TXLED# dioda, święcąca gdy wysyłane są dane RXLED# dioda, święcąca gdy odbierane są dane XTIN wejście bloku 6MHz Oscillator XTOUT wyjście z bloku 6MHz Oscillator TEST wejście sterujące testowaniem urządzenia, w czasie normalnej eksploatacji musi być zwarte z masą FT245BM Jednoukładowy, dwukierunkowy konwerter USB na interfejs równoległy Prędkość transmisji do 1MBps - dla sterowników bezpośrednich Prędkość transmisji do 300kBps - dla sterowników wirtualnych Prosty interfejs do logiki MCU/PLD/FPGA z czteroprzewodowym handshake'm Bufory: Nadawczy (384Byte) i odbiorczy (128Byte) Kompatybilność z USB 1.1 i USB 2.0 Zasilanie od 4.4V do 5.25V Zintegrowany stabilizator 3.3V dla układów zewnętrznych Parametry urządzania przechowywane w zewnętrznej pamięci EEPROM z możliwością zapisu przez USB Wbudowany 6Mhz-48MHz powielacz częstotliwości zgodny z FCE i CE Obudowa 32-LD LQFP (7mm x 7mm) Więcej informacji na stronie www.ftdichip.com 10

Minimoduł komunikacyjny USB z kontrolerem USB FT245BM MMusb245 jest niedrogim zintegrowanym modułem do transmisji danych do/z urządzeń peryferyjnych lub PC. Moduł bazuje na kontrolerach FT245BM firmy FTDI. MMusb245 pozwala na transfer danych z prędkością 1MB/s. Jest prostym urządzeniem typu FIFO stanowiącym łatwy interfejs pomiędzy standardem USB, a dowolnym systemem mikroprocesorowym poprzez porty IO mikrokontrolera. Do modułu dołączony jest kabel USB. Dzięki sterownikom do systemu Windows, które emulują port szeregowy moduł nadaję się do upgrade`u aplikacji w których dotychczasowo używana była transmisja po łączu szeregowym RS232. Wybór naszego Minimodułu jest pierwszym krokiem dla projektów, które muszą być zrealizowane w krótkim czasie. MMusb245 może być użyty zarówno do prototypu eliminując konieczność projektowania obwodu drukowanego jak i do układu finalnego w którym minimoduł montowany jest w postaci "kanapki". 11

Układ wyprowadzeń Minimoduł posiada wyprowadzenia z rastrem 0,1" (2.54mm) pasujące do podstawki DIL24 Opis wyprowadzeń Pin Nazwa Tryb Opis pinu 1 RXT wyjście Sygnalizuje stan zawartości bufora 2 TXE wyjście Sygnalizuje stanem wysokim, że bufor transmisji jest wypełniany lub zajęty zapisem ostatniego bajta 3 WR wejście zapis danych z D7-D0 do bufora transmisji 4 RD wejście odczyt z bufora na D7-D0 5 D7 we/wy Linia szyny danych (bit 7) 6 D6 we/wy Linia szyny danych (bit 6) 7 D5 we/wy Linia szyny danych (bit 5) 8 D4 we/wy Linia szyny danych (bit 4) 9 D3 we/wy Linia szyny danych (bit 3) 10 D2 we/wy Linia szyny danych (bit 2) 12

11 D1 we/wy Linia szyny danych (bit 1) 12 D0 we/wy Linia szyny danych (bit 0) 15 RST wejście zewnętrzny do reset 16 RSO wyjście Wyjście wewnętrznego generatora resetu 18 3V3 wyjście Wyjście wewnętrznego regulatora LDO. 20 SLP wyjście sygnalizuje stan wstrzymania 21 SND wejście wzbudzanie i natychmiastowe wysyłanie do PC 22 VIO wejście Ustala napięcia na pinach komunikacyjnych 23 VEX wejście Ustala główne źródło zasilania 24 VPO wyjście Zasilanie z USB Oprogramowanie Firma FTDI wraz z układem dostarcza sterownik Virtual Com Port (VCP) sprawiający, że porty peryferyjne urządzenia wyglądają jak standardowy port COM dla komputera PC. Większość istniejącego oprogramowania powinno współpracować z VCP, wystarczy zmienić używane przez nie porty na stworzone przez sterownik VCP. Używając VCP, programista może komunikować się z urządzeniem w ten sam sposób jak przez regularny port PC COM za pomocą Windows VCOMM API lub biblioteki portu COM. Sterowniki zawierają takie funkcje zdefiniowane dla sterowników D2XX firmy FTDI, co pozwala programiście aplikacji zintegrować program z urządzeniem używając Windows DLL. Sterowniki wirtualnego portu COM (Virtual COM Port) Windows 98/ 98 SE / 2000 / ME / XP, MacOS, Linux 2.4 i nowsze D2XX ( Sterowniki bezpo_rednie USB + interfejs DLL S/W) Windows 98 / 98 SE / 2000 / ME / XP, Linux Więcej informacji na stronie www.ftdichip.com 13

Dane techniczne MMusb245 Jednomodułowe rozwiązanie dla szybkiej transmisji USB FT245BM Technologia SMD, obwód dwu-warstwowy 2 x 14 wyprowadzenia z rastrem 0.1" (2.54mm) pasujące do podstawki DIP28 Możliwość montażu poziomego Małe wymiary 45mm x 20mm x 15mm Złącze USB w standardzie B Wbudowana pamięć EEPROM dla parametrów: USB VID, PID, Numeru seryjnego i opisu produktu. Możliwość zasilania z interfejsu USB (do 60mA dla konwertera i układów zewnętrznych) lub z zewnętrznego źródła Obudowa 24-piny Instalacja sterowników Aby móc używać konwertera USB RS232 należy zainstalować odpowiednie sterowniki. Sterowniki te (VCP Virtual COM Port) emulują standardowy port COM. Dzięki temu możemy komunikować się jak przez klasyczny port szeregowy. W przypadku nieposiadania sterowników należy je pobrać ze strony FTDI: www.ftdichip.com Następnie urządzenie emulujące port szeregowy należy podłączyć do którekolwiek z niezajętych portów USB. To automatycznie zapoczątkuje instalację. 14

Postępując według wskazówek, zaznacz opcję Wyszukaj sterowniki dla nowego urządzenia ( Search for a suitable driver for my device (recommended), a następnie Wybrana lokalizacja ( Specify a location ). W kolejnym kroku sprecyzuj, gdzie znajdują się sterowniki do urządzenia instalator wybierze plik ftdibus.inf. Jeśli wszystko przebiegnie poprawnie, instalator poinformuje o pomyślnym zakończeniu procesu instalacji szeregowego konwertera (serial converter). Instalator automatycznie przejdzie do instalacji 15

sterownika emulatora portu COM. Procedura jest taka sama jak powyżej, z tym że PC wybierze tym razem plik ftdiport.inf. Jeśli teraz otworzysz Menedżer Urządzeń (Device Manager), w portach pojawi się USB Serial Port. W celu jego skonfigurowania wybierz z menu Ustawienia ( Properties ). Przechodząc do zakładki Ustawienia Portu ( Port Settings ) możemy zdefiniować prędkość transmisji (Bits per second), ilość bitów danych (Data bits), parzystość (Parity), bity stopu (Stop bits) oraz sterowanie przepływem (Flow control). W celu zmiany kolejnych parametrów należy wejść w opcje zaawansowane (Advanced ). 16

Okno to umożliwia zmianę następujących parametrów: numer portu COM (COM Port Number) rozmiar bufora USB (USB Transfer Sizes) wartość latency timer value (BM Options) limity czasu odpowiedzi dla odczytu i zapisu (Timeouts) a także pozwala na ustanowienie kilku opcji: Serial Enumerator pozwala na wykrywanie urządzeń typu Plag-and-Play podłączonych do portu USB Serial Printer blokuje działanie parametrów Timeouts zezwalając na długie opóźnienia Cancel If Power Off opcja używana w przypadku problemów związanych z zawieszeniem bądź hibernacją. Powoduje brak reakcji na żądania otrzymywane przez sterowniki podczas tych stanów. Event On Surprise Removal stosowana bardzo rzadko Set RTS On Close powoduje ustanowienie sygnały RTS przy zamykaniu portu Disable Modem Ctrl At Startup- opcja używana do nadzoru sygnałów kontrolnych modemu (RTS i DTS) przy starcie, zapobiega pojawianiu się szpilek na tych liniach co mogłoby być przyczyną wejścia podłączonego do konwertera urządzenia w niepożądany stan. 17

Enumeracja PID i VID Aby użyć sterowników FTDI z urządzeniami, które są identyfikowane przez kombinacje VID (Vendor ID) i PID (Product ID) inne niż VID FTDI oraz domyślny PID urządzenia, pliki INF oraz INI sterownika muszą zostać zmodyfikowane. W piku ftdibus.inf następujące sekcje muszą zostać zaktualizowane: [FtdiHw] %USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6001 [ControlFlags] ExcludeFromSelect=USB\VID_0403&PID_6001 [Strings] USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter" Opis urządzenia (DeviceDesc) może być zmieniony dowolnie jest to nazwa pod jaką urządzenie pojawia się w Menedżerze Urządzeń. W pliku ftdiport.inf następujące wpisy podlegają modyfikacji: [FtdiHw] %VID_0403&PID_6001.DeviceDesc%=FtdiPort232,FTDIBUS\COMPORT&VID_0403&PI D_6001 [Strings] VID_0403&PID_6001.DeviceDesc="USB Serial Port" Powyższa uwaga dotycząca opisu urządzenia jest aktualna także i w tym miejscu. Aby móc automatycznie odinstalować urządzenia za pomocą Dodaj/Usuń Programy (Add/Remove Programs) konieczna jest następująca zmiana w plikach ftdiunin.ini oraz ftdiun2k: [Uninstall] Device=VID_0403&PID_6001 18

Zastosowanie o o o o o o Konwertery USB na RS245 Rozszerzanie możliwości urządzeń peryferyjnych Oprzyrządowanie USB Wymiana danych w przemyśle Zabawki Miernictwo Przykłady standardowej konfiguracji urządzenia Zasilanie z USB lub zewnętrzne. Powyższy rysunek ilustruje konfigurację zasilania MMusb245 za pomocą portu USB. Urządzenie pobiera zasilanie z magistrali USB. Podstawowe reguły dla urządzenia zasilanego z USB są następujące: a) Podłączone, urządzenie nie powinno pobierać więcej niż 100mA b) Wstrzymane urządzenie podłączone pod USB, nie powinno pobierać więcej niż 500uA c) Urządzenie pobierające więcej niż 100mA powinno posiadać MOSFET na pokładzie w celu utrzymania poboru mocy przez zewnętrzny obwód w okolicy 70mA podczas pracy i 200uA w trybie wstrzymania d) Urządzenie, które zużywa więcej niż 100mA nie może zostać podłączone do zasilania hub a USB. e) żadne urządzenie nie może czerpać więcej niż 500mA z magistrali USB. Opcja USB Power Descriptor w EEPROM powinna być zaprogramowana tak, aby dopasować aktualne pobieranie mocy przez urządzenie. 19

Powyższy rysunek ilustruje konfiguracje zasilania zewnętrznego modułu MMusb245. W konfiguracji zasilania zewnętrznego moduł nie pobiera zasilania z magistrali USB, a z zewnętrznego zasilacza. Podstawowe reguły dla konfiguracji zasilania z zewnątrz są następujące: a) Urządzenie pracuje z zasilaniem zewnętrznym nie może powodować przepływu prądu po magistrali USB, kiedy host USB lub kontroler USB jest wyłączony b) Urządzenie zasilane z zewnątrz może pobierać tyle prądu ile potrzebuje podczas pracy oraz zawieszenia pracy USB tak długo jak posiada własne zasilanie. c) Urządzenie zasilane z zewnątrz może być użyte z dowolnym Hostem USB oraz z dowolnym Hubem USB zasilanym z magistrali jak i z zewnątrz. Opcja USB Power Descriptor w pamięci EEPROM powinna być ustawiona na wartość zero. Jeżeli interfejs logiczny pomiędzy modułem MMusb245 a układem peryferyjnym ma być w standardzie 3.3V, wówczas do pinu 22 powinno być dołączone napięcie +3.3V. 20

21 Schemat elektryczny modułu Musb245 D2 FT245BM 5v BUS POWERED EXAMPLE IO24 CN1 CN-USB 1 2 3 4 5 FB1 FERRITE BEAD 1 2 RSTOUT# RSTOUT# D6 U2 FT245BM 25 24 23 22 21 20 19 5 28 4 32 1 2 29 9 18 17 31 14 15 16 12 10 13 6 30 26 3 8 7 27 11 D0 D1 D2 D3 D4 D5 D6 RSTOUT# XTOUT RESET# EECS EESK EEDATA AGND GND D7 GND TEST TXE# WR RD# RXF# PWREN# -IO 3V3OUT A USBDM USBDP XTI N SI/WU IO10 C7 0.1uF R7 47k R2 2k2 GND ( Optional ) C3 10uF IO12 C6 0.1uF TXE# R4 27R R5 27R C1 0.1uF IO14 D7 RXF# USB IO17 PWREN# D3 RD# D5 DECOUPLING CAPS IO21-5v IO16 R1 10k C5 10nF WR IO23 RESET# R6 1k5 C4 33nF 5v MCU or Logic cct IO13 IO20 Y1 6MHz RESONATOR R3 470R D4 IO11 D0 U1 93C46/56/66 1 2 3 4 8 7 6 5 CS SK DIN DOUT NC NC GND C2 0.1uF IO15 D1 IO22 Schemat elektryczny układu testującego R18 470 R11 1k R8 1k D5 LED R23 470 R20 470 R22 470 IO14 D8 LED R9 1k U3 74LS245 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A0 A1 A2 A3 A4 A5 A6 A7 G DIR B0 B1 B2 B3 B4 B5 B6 B7 IO17 IO12 IO13 0 R17 470 R15 1k S1 SW DIP-8 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 IO16 0 D7 LED D3 LED 0 IO10 R21 470 U4 74LS245 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A0 A1 A2 A3 A4 A5 A6 A7 G DIR B0 B1 B2 B3 B4 B5 B6 B7 R19 470 IO11 D1 LED R14 1k R10 1k D6 LED IO15 R12 1k R18 470 D2 LED D4 LED R13 1k RD#

Przykładowe ustawienie układu w trybie Bit-Bang mode. Po pierwsze, FT_SetDivisor(), kontroluje wielkości zatrzaskiwane na wyjściach układu ( D0 D7 ). Przykład ustawienia trybu Bit-Bang mode w C++: FT_STATUS status; USHORT dta; Dta = 0x400; status = SetDivisor(dta); if(status!= FT_OK) { CString str; str.format("data entered (%d) is not a valid divisor.", dta); AfxMessageBox(str); } Program ten pozwala ustawić linie danych wyjściowych w określonym z góry czasie. W trybie Bit - Bang nie ma żadnej linii przesyłowej dla " latching dane do zewnętrznego urządzenie dane po prostu ukazują się na ośmiu liniach danych. Jedena z osiem linii danych może być użyta jako latch requiring. Główne oprogramowanie ustawia zarówno stan danych siedmiu bitów i linii sterująceji oddzielnie. Drugi rozkaz, FT_Write(), posyła dane do pamięci FIFO w FT245BM, gdzie czeka na wysłanie danych wyjściowych. Trzeci rozkaz, FT_SetBitMode(), pozwala wybrać poszczególne bity od D0 do D7 i ustawić jeden bit wyjściowy w stan 0 lub 1. Na przykład : //enable bit bang mode status = SetBitMode(0x0f, 0xff); if(status == FT_OK) { //bit bang mode active } 22

Rozkaz, FT_GetBitMode(), jest używany aby odczytać aktualny stan (wysoki / niski) poszczególnych linii danych. Dane, które są pobrane z FIFO do linii danych wyjściowych są zamknięty na latch aż inny bajt zostanie wysłany. Żaden zewnętrzny bufor albo latch requiring nie jest wymagany, aby utrzymać stan linii danych w trybie Bit - Bang. ( Kiedy nie jest w trybie Bit - Bang, dane tylko są trzymane na liniach danych tak długo jak RD # jest trzymany w stanie niskim). 23