Krzysztof Wesołowski » rs232 http://kwesoly.net Programowanie, elektronika, automatyka - doświadczenia i projekty Wed, 07 Sep 2011 14:03:29 +0000 pl-PL hourly 1 Prosta aplikacja układu FT232R firmy FTDI http://kwesoly.net/programowanie/avr/aplikacja-ukladu-ft232r-ftdi/ http://kwesoly.net/programowanie/avr/aplikacja-ukladu-ft232r-ftdi/#comments Wed, 05 Aug 2009 21:00:49 +0000 http://kwesoly.net/?p=361 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:

usb2uart_01 usb2uart_02 usb2uart_03

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.

]]>
http://kwesoly.net/programowanie/avr/aplikacja-ukladu-ft232r-ftdi/feed/ 6