No no - rozpisał się kolega - tylko, jak czytałem na początku to myślałem że kolega albo pisze o czymś czego nie rozumie do końca (tak chyba jednak też trochę jest) .... albo nie wie co to jest RS232
No bo weźmy początek:
kiclaw napisał(a):
Otóż biorę się za dość duży projekt, który w swoich założeniach ma mieć wyjście cyfrowe (USB lub RS232). Pomyślałem że fajnie by było gdyby miał oba.
co to jest wg kolegi wyjście cyfrowe USB ?
co to jest wyjście RS232 ?
co to znaczy że są oba wyjścia czyli USB i RS232 ?
a po chwili mamy:
kiclaw napisał(a):
To że wyjście rs-232 będzie podpięte do nóżek Tx i Rx przez max232 to jest jasne, natomiast jaką opcję wybrać co do USB? Są dwie możliwości sprzętowa (FT232) oraz programowa (na podst. Igora Cesko).
tu już jest pomieszanie z poplątaniem
.... już tłumaczę.
Po pierwsze Igor Cesko (w skrócie to tak nazwę) ... to nie jest żadne WYJŚCIE cyfrowe. To jest coś podobnego do implementacji V-USB i skąd w ogóle pomysł aby coś takiego nazywać WYJŚCIEM cyfrowym ? ale ok zostawiamy to na chwilę.
FT232 .... wie kolega co to jest ? To też nie jest żadne WYJŚCIE cyfrowe a tym bardziej nie jest to WYJŚCIE cyfrowe USB. Układ FT232 jest panie kolego najzwyklejszą w świecie przejściówką USB/RS232. Można powiedzieć, że jest to hmmm (tak w uproszczeniu oczywiście) odpowiednik układu MAX232 tyle że pozwala na komunikację - nadal przez RS232 procesora z komputerem właśnie przez port USB a nie stary port COM. Nijak nie można tego nazywać wyjściem cyfrowym ani FT232 ani MAX232. Można powiedzieć, że są to dla procesora porty komunikacyjne RS232. Obydwa z punktu widzenia procesora działają IDENTYCZNIE. Czyli wykorzystujemy piny procesora Rx i Tx a do komunikacji np moduł UART.
Dalej. Pisze kolega że chciałby mieć takie dwa porty (używamy już poprawnych nazw) ... i czy się nie pogryzą jak się je podłączy razem do procka. Nawet kolega przemyślał już sprawę wysyłania - no bo przecież jeśli coś procek wyśle na nóżkę Tx to odbiorą to dwa układy zarówno MAX232 jak i FT232. Ale co do Rx to już tylko jakieś przypuszczenia i zastanawia się kolega czy będą jakieś kolizje ? ...
no to sobie trzeba jednak najpierw jakby poczytać trochę o samym standardzie RS232 (to PODSTAWA) zamiast myśleć o chmurce w windows - bo to też jakaś abstrakcja, że FT232 może być w chmurce a zwykły port komunikacyjny nie może
... ale ok dajmy na razie spokój chmurkom. Więc niech sobie kolega teraz wyobrazi:
1. do pinu Rx procesora podłączyć chce kolega:
a.) pin Tx układu MAX232
b.) pin Tx układu FT232
2. w standardzie RS232 nieaktywny stan to stan WYSOKI (+5V)
i teraz załóżmy że kolega nadaje coś z PC do procka przez FT232, więc jego nóżka Tx co chwilę zmienia stan z niskiego na wysoki i odwrotnie prawda ? no prawda. A w tym samym momencie jest podłączona z nogą TX układu MAX232, która jest wciąż w stanie WYSOKIM. Czyli co ? czyli co chwilę będzie obrzydliwe zwarcie !!! To TYPOWY konflikt - gdy ktoś wpada na cudowny pomysł aby wprost podłączyć TRZY urządzenia do magistrali RS232.
Więc kolega musi znowu sięgnąć do podstaw RS232 i zapamiętać, że jest to MAGISTRALA - tylko JEDEN do JEDNEGO! i żadnych takich kombinacji się nie robi. (owszem są pewne możliwości, ale trzeba byłoby magistralę sprzętowo zamienić na typ wire-and jak w I2C - wystarczyłyby do tego dwie diody shottky i dwa rezystory - ale to rozwiązałoby tylko poprawne działanie części sprzętowej, za to w części programowej nadal trzeba byłoby rozważać jak uniknąć kolizji gdy nagle chcą gadać ze sobą więcej niż 2 urządzenia).....
dlatego jeśli kolega chce podłączyć do procka więcej niż jedno urządzenie RS232 to:
1. albo zastosować RS485 (proszę poczytać o tym) ... dzięki czemu można podłączyć wiele urządzeń naraz do pocka, który będzie używał TYLKO jednego UART'a
2. albo zastosować procka który ma dwa sprzętowe porty UART i do jednego z nich podłączyć FT232 a do drugiego MAX232
------------------------------------------
a teraz wracając do V-USB czy rozwiązania CDC, na które kolega powołał się w linku na elektrodzie do super starego tematu mojego o przejściówce USB/RS232 na procku ATmega8. (O Matko jak ja bym chciał ten temat skasować na elektrodzie) .... już tam się nawet nie odzywam bo mnie szlag trafia .... jak do czytających nic nie dociera. Przeczytają tylko pierwszy post tego wątku tasiemca bo reszty się nie chce poczytać - i nagle EUREKA - jaka super przejściówka. TFUU na psa urok - MASAKRA i MAKABRA. I pisałem o tym przez ileś ostatnich stron tego wątku żeby wszystkich ostrzec, ale psu na budę to moje pisanie, i tak nikomu nie chce się czytać - więc co i rusz jakiś kolejny pacjent nadziewa się na MINĘ i dobrze - może każdy musi się sam nauczyć na własnych błędach jak nie chce się poczytać troszkę więcej w tym temacie. Dlatego proponuję tylko w DUŻYM SKRÓCIE zapomnij o tym rozwiązaniu i trzymaj się FT232 albo podobnych układów. A jak chcesz poczytać o wadach - to cofnij się kilka stron w tym wątku tasiemcu i poczytaj moje wypowiedzi - nie będę tu ich po raz milionowy powtarzał OK? A zatem uznaję, że ten temat mamy z głowy.
---------------
ale teraz przejdę płynnie do V-USB i Igora Cesko - bo jak pisałem to podobne rozwiązania tyle że V-USB jest o wiele lepszy niż Igor Cesko chociażby dlatego że V-USB to projekt nadal rozwijany a ty nawet nie rzuciłeś okiem na daty tekstów które czytałeś na temat rozwiązania Igora Cesko i znowu byś się wkopał
Ale pomimo iż V-USB jest dużo lepsze niż CDC - to zdecydowanie odradzam ci próby i chęci wykorzystania tego jako przejściówki USB/RS232 bo:
1. poczytaj sobie jak się to wykorzystuje od strony PC - to ci przejdzie taka duża ochota
2. poczytaj jak się to obsługuje od strony procka - to się załamiesz - jeśli nie wiesz jak się buduje deskryptory HID
3. poczytaj jakie są ograniczenia transmisji RS232 za pomocą transmisji "bulk transfer" przez USB w trybie HID
4. zobacz sobie ile zasobów procka tracisz na implementację V-USB
5. zobacz sobie jak bardzo trzeba uważać i umieć pisać funkcje nieblokujące gdy korzystasz z V-USB bo inaczej to równie dobrze V-USB będzie działać jak zatkana rura od zlewozmywaka a nie jako RS232
chyba więc już widzisz, że jeśli chcesz bezproblemowo korzystać z komunikacji RS232 to trzymaj się albo MAX 232 albo układów FT232 lub podobnych bo są takie też innych firm. Choć FT232 jest wg mnie jednym z najlepszych.
-------------------------
ostatnia rzecz - dobór kwarca. Piszesz, że chciałbyś użyć kwarca 12MHz .... a spróbuj uzasadnić swój wybór takiej a nie innej jego częstotliwości ???? Bo mam nadzieję, że nie chodzi ci TYLKO o jakąś tam wydumaną "szybkość" ? pytam bo coś tam napisałeś że ew przetrawiłbyś stratę szybkości i zastosował w razie czego 11,0592MHz .... a to pokazuje właśnie że nie za bardzo kolega wie jak się dobiera kwarce i czy kolega w ogóle potrzebuje kwarca ? bo być może wystarczyłby koledze wewnętrzny oscylator 8MHz. Tylko proszę nie odpowiadaj na to jak 90% początkujących osób na forach że:
"muszę użyć kwarca ponieważ jest on bardziej stabilny niż wewn. oscylator, jest dokładniejszy i będzie mi dzięki temu lepiej zegarek chodził"
Lepiej przypatrz się tym tabelkom na ostatniej stronie UART'a do których już dotarłeś na szczęście. I super. Zobacz i porównaj sobie procenty błędów przy takim kwarcu 11,0592MHz jeśli chodzi o transmisję RS232.
A jak nie ma tabelki dla 12MHz to co za problem sobie WYLICZYĆ te procenty ???? przecież tuż nad tymi tabelkami masz dokładny wzór w nocie PDF na podstawie którego te wszystkie błędy w tabelkach są poobliczane.
Więc nie opowiadaj takich rzeczy, że 11,0592MHz to będzie dla ciebie za wolno a maksymalny kwarc jaki możesz zastosować to 12MHz, tylko popatrz na kolejne tabelki i zwróć sobie uwagę na takie kwarce jak np:
14,7456 MHz
18,432 MHz
i co ? nie da rady szybciej taktować procka przy zachowaniu 0% błędów dla dowolnie wybranej przez ciebie prędkości baudrate dla UART ????
więc jeśli już używasz RS232 i chcesz to zrobić na poważnie to zapomnij o kocim kwarcu 12 MHz bo jest w tym przypadku po prostu bez sensu. Masz do wyboru cały szereg innych lepszych częstotliwości i dostępnych kwarców.
--------------
kiclaw napisał(a):
Uff, ale się rozpisałem
ja też
.... ale mam nadzieję, że przynajmniej po tym sporo się rozjaśni na kilka ważnych tematów