Krzysztof Wesołowski Programowanie, elektronika, automatyka – doświadczenia i projekty

5sie/09

Prosta aplikacja układu FT232R firmy FTDI

Po co taki układ?

Kiedy próbujemy stworzyć oprogramowanie na uC stajemy często przed problemem wymiany danych z naszym komputerem PC.  Sposobów na połączenie własnego układu z komputerem PC jest przynajmniej kilka:

  • Port LPT
    Możliwość niezależnego manipulowania bitami sprawia że to jedno z najprostszych rozwiązań. Poza zwykłym równoległym przekazywaniem informacji można również emulować interfejsy szeregowe. Obecnie laptopy bardzo rzadko posiadają taki interfejs, a nawet jeśli, są to często modele droższe od powszechnie spotykanych.
  • Port COM
  • Powszechny interfejs szeregowy. Poza podstawowymi liniami służącymi do transmisji i odbioru danych zawiera też linie sterujące przepływem danych. Pod względem sposobu transmisji do komunikacji wystarczy połączenie naprzemiennie sygnałów Tx<->Rx portu COM i mikrokontrolera. Niestety, w warstwie fizycznej całkiem inne poziomy napięć nie pozwalają na takie połączenie. Powstało wiele układów służących do konwersji napięć między poziomem uC a portu COM. Często więc na płytce montowało/montuje się po prostu MAX232 do konwersji napięć podpięty pod odpowiednie nóżki mikroprocesora, i łączony z portem COM komputera. Stety/niestety porty COM też należą już do laptopowej rzadkości. Rozwiązanie polegające na używaniu przejściówek USB<->COM wraz z takimi układami jest często spotykane, pomimo wiążącego się z tym narzutu - dwukrotna konwersja napięć nie ma sensu.
  • Port USB
    Jeśli odrzucimy to czego w laptopie nie ma, i zrezygnujemy z przejściówek pozostaje nam po prostu użycie portu  USB, który zadomowił się w komputerach już na dobre.  Tutaj też mamy kilka możliwości:

    • Emulacja interfejsu USB za pomocą uC.
      Niestety programowa realizacja interfejsu USB utrudnia wykonywanie innych zadań, dlatego maksymalna wydajność takiego rozwiązania nie jest oszałamiająca. Mikro kontroler musiałby zajmować się wyłącznie obsługą USB, lub zrezygnować z wykonywanych przez siebie czynności. Urządzenia tak działające często komunikują się programowo z USB i np. przesyłają dane dalej przez wspierane sprzętowo interfejsy (np. UART, SPI)
    • Wykorzystanie specjalizowanego układu
      Sama firma FTDI produkuje kilka układów umożliwiających komunikacje za pomocą UART, użytym rozwiązaniem jest najprostszy z nich FT232RL. Umożliwia on w pełni sprzętowe przejście USB<->UART, wraz z dodatkowymi liniami (sterującymi przepływem, pochodzącymi z portu COM) oraz dodatkowymi 4 portami, które można zastosować jako dowolne wejścia wyjścia. Układ posiada również bardzo dobre wsparcie producenta: sterowniki pod większość systemów operacyjnych, biblioteki ułatwiające programowanie komunikacji czy też przykłady zastosować w nocie katalogowej (możliwe aplikacje układu). Poza przedstawionym tutaj zastosowaniem istnieje wiele wiele innych - wystarczy przejrzeć dokumentacje: na http://www.ftdichip.com/Documents/DataSheets/DS_FT232R.pdf

Wykonany układ

Opierając się właśnie na wspomnianych notach aplikacyjnych, i materiałach samemu przejrzanych jak i konsultacjach z bardziej doświadczonymi kolegami, zaprojektowałam układ będący interfejsem Komputer PC <-> mikrokontroler. Główne zalety wykonanego urządzenia:

  • Sprzętowy, niezawodny i wydajny interfejs.
  • Współpraca z urządzeniami zasilanymi praktycznie dowolnym napięciem - za pomocą zworki do wyboru 3.3 jak i 5 volt, ewentualnie możliwość podpięcia własnego napięcia VCCIO do układu.
  • Dodatkowe 4 porty GPIO, które można kontrolować z poziomu aplikacji pisanych z wykorzystaniem bibliotek dostarczonych przez FTDI.
  • Dodatkowe wyprowadzenia zasilania, poza wspólną masą dodatkowo 2 linie 3.3V o łącznej wydajności prądowej 50mA i 6 linii 5V pochodzących z portu USB o wydajności ograniczonej komputerem/standardem USB - w moim przypadku komputer jest w stanie dostarczyć tyle prądu, limitem jest więc standardowe 500mA.
  • Sygnalizacja transmisji jak i poprawnego zasilania za pomocą diod LED.

Poniżej kilka zdjęć wykonanego układu:

Oraz schemat urządzenia:

usb2uart-schemat

Układ przynajmniej pod względem poprawności połączeń i transmisji UART przetestowany wraz z prezentowanym poprzednio mikrokontrolerem.

Tagged as: , , , Komentarze
Komentarze (6) Trackbacks (0)
  1. Popraw linka do pdf-a :)

  2. Dziękuję za zwrócenie uwagi, pozdrawiam :)

  3. Witam, to znowu ja ;)
    W związku ze zbliżającymi się wakacjami (i większą ilością wolnego czasu), mam zamiar zbudować sobie to urządzonko. Chciałbym przed tym jednak upewnić się czy:
    - będę miał możliwość wysyłania danych (np. zapalanie diodek, sterowanie wyświetlaczem LCD) bezpośrednio z komputera – programu desktopowego.
    - możliwość pobierania danych (np. wciśnięcia przycisku, przekręcenia potencjometru), i zauważenia efektu w programie desktopowym.
    Jeżeli odpowiedź na powyższe punkty jest twierdząca, kolejnym pytaniem byłoby to czy można programować np. w C#. Jeżeli tak, być może posiadasz jakieś małe demonstracyjne programiki i mógłbyś umieścić mały tutorial aby łatwiej było wystartować. Z góry dzięki za odpowiedź.

    Pozdrawiam

  4. Niestety – to nie jest dokładnie to czego szukasz :)

    4 linie CBUS (i być może sygnały pozostałe, nie pamiętam dokładnie) pozwalają się sterować jako wejścia/wyjścia cyfrowe, ale tylko za pomocą sterowników do tego przeznaczonych. Na pewno nie ma tam przetwornika ADC, wieć potencjometr również odpadnie.

    Do tego typu zastosowań jakie wymieniasz lepszy byłby mikroprocesor (np AVR, PIC, ARM) – ale to już tylko (głównie?) C lub C++.

    Pozdrawiam serdecznie

  5. Czy poprzez sterowniki rozumiesz sterowniki które trzeba zainstalować by FTDI był widoczny w systemie ? Co do użycia jako pobieranie danych z potencjometra, to zawsze można dać ADC przd tym układem, i to też miałem na myśli.
    Pisałeś o zastosowaniu mikroprocesora. Znasz może jakieś konkretny przykład projektu układu na mikroprocesorze ?

    Pozdrawiam

  6. Biorąc pod uwagę że chcesz się uczyć najlepszy będzie zestaw deweloperski. Na początek biorąc pod uwagę ceny polecałbym coś z procesorkiem AVR, np. z oferty kamami.pl.

    FTDI to jednak głownie interfejs urządzenie mikroprocesorowe < -> PC a nie pelnoprawne urządzenie końcowe do którego można podłaczyć peryferia.


Trackbacks are disabled.