FTDI i RTS CTS AVR gcc

Feb 17, 2006 6 Replies

Witam!



Czy kto¶ umie wykorzystaæ zygna³y CTS i RTS z uk³adu FTDI232BM?



U mnie one zawsze s± w stanie wysokim, nawet gdy co¶ nadajê z komputera (terminal windows - sterowanie - sprzêt). Przecie¿ w momencie nadawania PC powinien ustawiæ stan niski na swoim wyj¶ciu RTS (czyli po stronie mikroprocka - CTS)???



Jak skonfigurowaæ poprawnie porty aby dzia³a³y prawid³owo?



Wszelkie informacje bêd± bardzo pomocne!



Pozdrawiam



Krzysztof napisał(a):

To nie tak. Najpierw przeczytaj o funkcji tych pinów, potem je obadaj na normalnym COMie pecetowym, a potem dopiero przenieś się w świat FTDI. Sprzętowe sterowanie przepływem jest potrzebne, aby w przypadku zapchania się bufora odbiornika UARTu można było wystawić informację nadawcy, aby zaprzestał nadawania aż do [choćby częściowego] opróżnienia bufora odbiornika. Jedna linia steruje jednym kierunkiem transmisji, a druga transmisją w drugą stronę. Komputer wystawia sygnał RTS i odbiera sygnał CTS. Bez sprzętowego wsparcia po stronie UARTu dużo nie zdziałasz, na nic się nie przyda sterowanie przepływem gdy procesor lub UART samoistnie nie wystawi sygnału żądania zatrzymania transmisji. Inna sprawa, że przeciętny pecet zwykle po takim żądaniu wysłać jeszcze potrafi kilka bajtów zanim się na prawdę zatrzyma. Dlatego warto mieć duże FIFO mimo wszystko.

obawiam sie ze nie - microsoftowe programy z upodobaniem ustawia RTS w stan aktywny ["wysoki" +12V] raz na poczatku pracy.

J.

Fri, 17 Feb 2006 15:29:54 +0100 jednostka biologiczna o nazwie "Krzysztof" snipped-for-privacy@poczta.onet.pl> wyslala do portu 119 jednego z serwerow news nastepujace dane:

Sposobów handshakingu sprzętowego jest kilka, nie każdy program terminalowy obsługuje wszystkie, a już chyba żaden nie obsługuje np. obydwu (?) rodzajów handshakingu RTS/CTS (zamienione funkcje obu linii). Więcej szczegółów w hałcie ;-):

formatting link
skąd wiesz czy kiedy ustawisz na "sprzęt" to masz handshaking RTS/CTS czy może DTR/DSR ?

Użyć programu który daje userowi jasno do zrozumienia które linie będą używane.

Dziêkujê za odpowiedzi!

Powiem tak:

Sprawdzi³em wszystko jeszcze raz. Jednak chwilka opoczynku od tego problemu pomog³a :)

Na pocz±tku u¿ywa³em terminala z Windows XP. Okaza³o siê, tak jak napisa³ J.F. ,¿e terminal ustawia stan logicznego "0" zaraz po po³±czeniu z COMem. Okaza³o siê ¿e obs³uguje on tryb sterownia sprzêtowego przez RTS/CTS. Mimo to i tak mój program ¼le dzia³a³ a to z tego powodu, ¿e terminal, nawet po ustawieniu CTS w stan logicznej "1" wysy³a³ czasem jeszcze parê bajtów. Zwiêkszy³em wiêc bufor i wszystko jest w porz±dku.

O stanach ("0" , "1") pisa³em patrz±c na wyj¶cie uk³adu FTDI

Dziêkujê jeszcze raz za odpowiedzi!

Pozdrawiam

U¿ytkownik "Adam Dybkowski" snipped-for-privacy@amwaw.edu.pl> napisa³ w wiadomo¶ci news:dt5g5t$3sk$ snipped-for-privacy@nemesis.news.tpi.pl...

Tak zrobi³em, wnioski wyci±gn±³em :)

Dok³adnie!!

Tak, to mój program poprzez dodatkowe linie ustawia odpowiednie stany na liniach RTS/CTS.

Bardzo wa¿na okaza³a siê informacja, ¿e pecet po ¿±daniu wysy³aæ mo¿e jeszcze parê bajtów. Po uwzglêdnieniu tego - program zacz±³ dzia³aæ!!!

Dziêkujê i pozdrawiam

BLE_Maciek napisał(a):

A ktoś jeszcze używa DTR/DSR? Sprzętowe sterowanie przepływem to standardowo RTS/CTS. Modemy na przykład używają sygnału DTR do całkiem innych celów (po jego zmianie mogą się m.in. rozłączyć albo przejść do trybu rozkazów, zależnie od ustawienia). Wiele kabelków RS232 z gniazdem

8-pinowym RJ45 ma wyciętą linię DSR (jakoś trzeba było te 9 linii złącza DB9 spakować w 8 linii złącza RJ45, inne modemowe sygnały typu RING albo CD są ważniejsze).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required