Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Konwerter USB - RS232 TTL

leonow32 01 Lip 2010 17:32 45215 51
  • Konwerter USB - RS232 TTL
    O przydatności połączenia RS232 żadnego elektronika nie trzeba przekonywać. Problem w tym, że wszystkie nowe komputery mają wyłącznie USB, a portów COM, LPT czy nawet PS/2 próżno szukać. Jednak nie wszystko stracone! Dzięki układom FT232RL można łatwo zrobić przejściówkę z USB na RS232, RS422, RS485, a oprócz tego układzik może wykonywać kilka nietypowych operacji.

    Prezentowany konwerter ma następujące funkcje:
    - W pełni automatycznie przetwarza sygnały USB na RS232, bez konieczności jakichkolwiek modyfikacji urządzenia odbierającego. W komputerze wystarczy zainstalować sterownik, a konwerter będzie widziany przez system jako port COM
    - Zgodność z RS232 o poziomach napięć TTL, a więc można go podłączyć bezpośrednio do mikrokontrolera bez stosowania przetwornic napięcia MAX232 lub innych. Istnieje możliwość wyposażenia konwertera w MAX232 lub inną przetwornicę w celu zapewnienia kompatybilności z ogólnym standardem
    - Prędkość transmisji: 3Mbaud
    - Dwa porty wyjściowe: uproszczony oraz pełny
    - Diody sygnalizujące nadawania i odbieranie
    - Miniaturowe rozmiary
    - Możliwość zmiany konfiguracji przejściówki przy pomocy programu dostarczonego przez producenta

    Konwerter USB - RS232 TTL

    Port uproszony posiada tylko linie TxD, RxD oraz GND które są minimum przy transmisji RS232. Dodatkowo, port jest wyposażony z Vcc, aby umożliwić zasilanie odbiornika prosto z magistrali USB. Umieszczenie pinów tego portu na spodniej stronie PCB umożliwia wygodne połączenie konwertera prosto do płytki stykowej.

    Port pełny udostępnia wszystkie linie transmisji RS232 oraz Vcc. Ten port został zaprojektowany specjalnie z myślą o dołączeniu MAX232, jeżeli wystąpi taka potrzeba. Konwerter napięć należy podłączyć na oddzielnej płytce przez goldpiny (które są widoczne tylko na modelu 3D; jak będzie potrzeba to je przylutuję).

    Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL




    Konwerter USB - RS232 TTL

    Poniżej zamieszczam przykładowy program w Bascomie napisany na płytkę testową AVT-3500. Program odbiera znak wpisany z klawiatury komputera, wyświetla go na LCD 16x2 i odsyła z powrotem na ekran terminalu.

    W załączniku są PDF-y z płatkami w wersji lustrzanej i nie-lustrzanej

    Pełny opis konstrukcji możecie przeczytać na Przejściówka USB - RS232 (bo jak skopiowałem całość na elektrodę to moją stronę z googli wywaliło :) )

    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Sklep HeluKabel
  • #2 01 Lip 2010 19:53
    grala1
    Specjalista grupy V.A.G.
  • #3 01 Lip 2010 19:58
    krzysiek_p
    Poziom 13  

    W tym przypadku dopina się płyteczkę z maxem232 (a właściwie kilkoma, żeby przekonwertować wszystkie linie) w ten dłuższy rząd goldpinów. Wszystko jest opisane wyżej, nie chce się czytać, co?

  • #4 01 Lip 2010 21:39
    Duch__
    Poziom 31  

    grala1 napisał:
    Co w przypadku urządzeń ktore wymagaja realnego portu RS232?
    krzysiek_p napisał:
    W tym przypadku dopina się płyteczkę z maxem232 (a właściwie kilkoma, żeby przekonwertować wszystkie linie)



    Albo zastosować jeden scalaczek np max235, wtedy obsłużymy wszystkie linie.

  • #5 01 Lip 2010 21:59
    enterx25
    Poziom 12  

    Ta przejściówka czy raczej sterownik do niej będzie działał z niestandardowymi prędkościami? Chodzi mi o prędkość 62500.

  • Sklep HeluKabel
  • #6 02 Lip 2010 07:50
    grzeniu_pl
    Poziom 14  

    Problermy są z prędkościami ale przełączanymi dynamicznie w trakcie pracy urządzenia.

  • #7 02 Lip 2010 08:10
    Sw.Mikolaj
    Poziom 15  

    Czesc
    Na laborkach na studiach zawsze do RS i komunikacji z komputerem wykorzystywalem program "hyper terminal" ktory wysylal na port szeregowy ( jeszcze w starych kompach obecny ) dane. Tam sie konfiguruje numer portu, predkosc danych itd. Czy w tym przypadku moge rowniez korzystac z programu terminal ? Rozumiem ze wspomniany sterownik automatycznie spowoduje, ze dane ktore normalnie poszlyby na port szeregowy w postaci bit startu - dane - bit stopu, teraz zostana wyslane na port USB i pozniej przez uklad FT232 przekonwertowane znowu do postaci bit startu - dane - bit stopu ?

  • #8 02 Lip 2010 10:10
    Brutus_gsm
    Poziom 25  

    Tak, urządzenie jest widziane w systemie jako normalny port COM, więc wszystkie (większość) programów będzie z nim normalnie działać.

  • #9 02 Lip 2010 12:22
    leonow32

    Poziom 30  

    Może być każdy terminal. Polecam Realterm bo fajny, ma dużo opcji i jest prosty w obsłudze. Program nawet nie wie, że dane są przesyłane przez USB. System widzi wszystko jako dodatkowy port COM.

    Przejściówka działa z niestandardowymi prędkościami. Wg moich badań działa nawet z prędkościami wyższymi niż producent deklaruje.

    FT232RL udało mi się kupić za 13zł :D wtyczka USB była za 2zł, reszta to groszowe sprawy. Fakt, że taka sama przejściówka wyprodukowana przez Chińską Republikę Ludową kosztuje 5 razy taniej, ale nie daje satysfakcji :D

  • #10 02 Lip 2010 12:43
    Sw.Mikolaj
    Poziom 15  

    No coz dane podawane przez producentow to napewno gwarantowane predkosci. W zaleznosci od procesu technologicznego zawsze zdarzy sie mozliwosc znacznie szybszego dzialania, jednak pewna czesc chipow nie bedzie w stanie osiagnac takich predkosci.

  • #11 02 Lip 2010 21:36
    bamboos
    Poziom 11  

    Witam,

    Próbuję zmusić ft232rl do działania z prędkością 1Mb/s. W nocie katalogowej jest napisane, że obsługuje 3 Mbaud więc 1Mb/s powinno działać bez problemu. Niestety mam z nim bardzo duże problemy przy tej prędkości. Ftdi gubi bardzo dużo danych. Próbowałem nawet wysyłać mu dane o wielkości nieprzekraczającej rozmiaru bufora odbioru (128 bajtów) z przerwą 5 ms pomiędzy pakietami i niestety też się gubi. Ftdi połączony jest bezpośrednio z mikrokontrolerem at90can128. dane do atmela idą bezbłędnie, w drugą stronę niestety błędnie.

    Czy komuś udało się osiągnąć prędkość 1Mb/s (ciągła transmisja)???

    Do obsługi wykorzystywałem drivery od producenta D2XX oraz opensourcową bibliotekę ftdilib. Na obu występował ten sam błąd. Błędy nie mają charakteru powtarzalności (występują w różnych momentach).

    Z góry dzięki za odpowiedz.

    Pozdrawiam
    Maciek

    PS. A może inne układy ftdi dały by sobie radę z taką przepustowością? ft2232h? Czy ktoś miał z nimi jakieś doświadczenie?

  • #12 02 Lip 2010 21:44
    leonow32

    Poziom 30  

    Sprawdzałeś jaką to ma prędkość w pętli zwrotnej? Tzn zwarte Tx oraz Rx. at90can128 łączysz bezpośrednio do FT232RL czy poprzez jakieś dwa MAXy? Układy MAX232 i podobne zmniejszają maksymalną prędkość transmisji. Pokaż Twój schemat.

    Jak robiłem testy to przesłałem film o rozmiarze 15MB, plik MP3 oraz zwykły plik tekstowy TXT. Wszystko śmigało aż miło!

  • #13 02 Lip 2010 22:29
    Duch__
    Poziom 31  

    leonow32 napisał:
    Poniżej zamieszczam przykładowy program w Bascomie napisany na płytkę testową AVT-3500


    Nie widzę tego programu. Mógłby kolega zaaktualizować swój pierwszy post?

  • #14 03 Lip 2010 09:57
    leonow32

    Poziom 30  

    Wrzucam ten program. Płyta AVT 3500 jest wyposażona w przetwornik napięć z +-15V na TTL w postaci tranzystorów T1 i T7. Należy je ominąć, podłączając przejściówkę bezpośrednio do procka, czyli Rx leci do złącza D1, a Tx do D0.

  • #15 03 Lip 2010 10:05
    Mihas66
    Poziom 22  

    Działało by to z vagiem? Jest może wersja nie SMD?

  • #16 03 Lip 2010 12:40
    bamboos
    Poziom 11  

    leonow32 napisał:
    Sprawdzałeś jaką to ma prędkość w pętli zwrotnej? Tzn zwarte Tx oraz Rx. at90can128 łączysz bezpośrednio do FT232RL czy poprzez jakieś dwa MAXy? Układy MAX232 i podobne zmniejszają maksymalną prędkość transmisji. Pokaż Twój schemat.

    Jak robiłem testy to przesłałem film o rozmiarze 15MB, plik MP3 oraz zwykły plik tekstowy TXT. Wszystko śmigało aż miło!


    Witam.

    maxów nie używam. Łączę bezpośrednio atmela z ft232h. Schemat wziąłem z datasheet'a (self powered), wszystko jest identycznie, łącznie z koralikiem odkłucającym.

    Pętla zwrotna na atmelu działa wyśmienicie. Po zwarciu tx i rx przesyłam z prędkością 1Mb/s bardzo duże ilości danych bezbłędnie. Jak zrobię loopback na ftdi to też dane przychodzą bezbłędnie, ale tutaj już nie udaje się osiągnąć 1Mb/s pomimo, że częstotliwość jest odpowiednia. Pomiędzy pakietami są bardzo duże przerwy, a pakiety są dzielone na dwa, zawsze, nie ważne jaką mają długość. Jak wysyłam 16 bajtów, to na oscyloskopie widzę dwie paczki po 8. A po między nimi jest przerwa o długości od 1 do 10 ms!!! jak wysyłam 128 bajtów, to widzę 2 x 64 i też taka przerwa...

    Podejrzewam, że te 3Mbaud to jest taki chwyt marketingowy. Ftdi jest w stanie odebrać dane z taką CZĘSTOTLIWOŚCIĄ, ale jak jest ich wystarczająco mało. Błędy występują rzadko jak wysyłam pakiety po 128 bajtów (wielkość bufora ftdi) co 10 ms. Jak wysyłam częściej, to błędów już jest bardzo dużo. Zastanawiam się, czy z nowszym ftdi (ft2232h) będzie tak samo...

    Tego układu używam do monitorowania szyny CAN więc muszę mieć prędkość co najmniej taką samą jak na szynie, a tam jest właśnie 1Mb/s. Miałem nadzieję, że ftdi mi rozwiąże problem i wpadłem jak śliwka w kompot...

    Pozdrawiam.

  • #17 04 Lip 2010 11:43
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tu problemem nie jest FTDI tylko specyfikacja USB - zobacz jakie są odstępy pomiędzy kolejnymi paczkami wysyłanymi po USB. Jeśli chcesz uzyskać maksymalną prędkość to korzystaj ze sterowników D2XX, a nie z wirtualnego portu RS. Wtedy stosując maksymalną długość ramki osiągniesz gwarantowane prędkości.

  • #19 04 Lip 2010 14:04
    tmf
    Moderator Mikrokontrolery Projektowanie

    D2XX drivers allow direct access to the USB device through a DLL. Application software can access the USB device through a series of DLL function calls. The functions available are listed in the D2XX Programmer's Guide document which is available from the Documents section of this site.

    Jak sprawdzisz listę dostępnych funkcji to zobaczysz, że one są o wiele bardziej uniwersalne niż pisanie do VCP.

  • #20 04 Lip 2010 23:16
    bamboos
    Poziom 11  

    Witam,

    Używam oczywiście D2XX. Wykorzystywałem do tego celu bibliotekę dostarczaną przez producenta i opensourceową bibliotekę libftdi. Z obu nie jestem do końca zadowolony, co prawda można wysłać dużo danych, ale na 1Mbaud nie osiągnie się 1MB/s (wliczając bity startu, stopu i parzystości). Te przerwy USB nie dają satysfakcjonujących możliwości. Zwłaszcza jeśli chodzi o odbieranie danych od uC. Konieczny jest handshaking co też spowalnia transmisję... Jutro przejrzę to na oscyloskopie jak się dorwę do sprzętu.

    Czy ktoś używał ft2232h?? Tam jest USB FullSpeed może tam będzie wyglądać to lepiej.

    Jeszcze się będę odzywać.

    Pozdrawiam
    Maciek.

  • #21 05 Lip 2010 00:25
    tmf
    Moderator Mikrokontrolery Projektowanie

    FT232 też jest full speed. Jeśli coś masz nie tak to z pewnością nie jest to wina FT. Pełną prędkość uzyskasz wyłącznie przy wykorzystaniu max obsługiwanych długości ramek. kolejne ramki są na USB wysyłane co ok. 1ms, więc np. stosując ramki 10 bajtowe, można uzyskać max 10*1000 bajtów/s.

  • #23 05 Lip 2010 19:16
    R_On_!
    Poziom 10  

    Co do przejściówki to spoko... jednak wydaję mi się, że z konwerterem (max lub inny podobny) byłaby bardziej użyteczna, aktualnie pracuję właśnie nad przejściówka z wyprowadzonym RXD i TXD, do łączenia z prockami, i MAX232 dla zwykłych urządzeń tj. JTAG, programator HV, etc.
    Ładne wykonanie płytki
    PS. do czego mają służyć wyprowadzone do złącza K3 piny CBUS2..4, skoro standard RS-232 obsługuje 9 linii (w wersji dla DB9) ? Czy te wyprowadzenia są dla standardu wtyczki DB25 ?

  • #24 05 Lip 2010 20:08
    leonow32

    Poziom 30  

    Dodatkowe wyprowadzenia to CBUS - konfigurowalne porty wejścia/wyjścia układu FT232RL. Umożliwiają np uzyskanie informacji o stanie połączenia, przejściu w stan oszczędzania energii i między innymi można też wyprowadzić sygnał o częstotliwości 6, 12, 24 i 48MHz do taktowania jakiegoś innego urządzenia. Szczegóły są w dokumentacji TF232RL.

    Jedyne urządzenie w moim domu które wykorzystuje standard RS na wysokich napięciach to myszka sprzed 20 lat :) Tę przejściówkę robiłem specjalnie z myślą o łączeniu mikrokontrolerów z kompem. Priorytetem były też "pendrivowe" rozmiary ;) dlatego zrezygnowałem z MAXów.

  • #25 05 Lip 2010 22:19
    Duch__
    Poziom 31  

    Witam. Również se dzisiaj natchnęło mnie aby wykonać konwerter (układzik zalegał w szufladowym przydasie), ale wykorzystując trochę inny schemat i wyprowadzając sobie linie z generatorem 6MHz na zewnątrz (do odblokowywania AVRków). Chwile się męczyłem z lutowaniem układu, ale dałem radę. Zastosowałem dwie diody LED (niebieska - TX , biała -RX). Zrezygnowałem z wyprowadzania reszty sygnałów.

    Oto układzik:

    Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL Konwerter USB - RS232 TTL

  • #26 08 Lip 2010 19:29
    kleha
    Poziom 12  

    Świetny program do sprawdzania tego co się dzieje z portem COM.
    Odbierane dane można przedstawić jako BIN, HEX, DEC oczywiście też jako STRING. Wysyłać komendy ręcznie, automatycznie co interwał czasu, ustawiać stany DTR, RTS. Kto korzysta ten wie :)

    Konwerter USB - RS232 TTL

  • #28 04 Sie 2010 17:53
    enterx25
    Poziom 12  

    Witam. W końcu znalazłem czas by wykonać przejściówkę. Chciałbym ustawić prędkość 62500 i nie wiem jak. Może ktoś pomoże. Z góry dziękuje.

  • #30 30 Sie 2010 21:22
    durna
    Poziom 1  

    Jestem w temacie nowicjuszem dlatego mam pytania:
    czy za pomocą tego konwertera można zaprogramować mikrokontroler?
    czy można go podłączyć bezpośrednio do mikrokontrolera?
    do czego łączymy np, do ATmega32 -czy do TxD, RxD?