Konwerter RS232 -> RS485 - finał.

Witam!

Okazało się, że MS nie przepada za poprawianiem błędów. Wspomniana w poprzednim watku flaga RTS_CONTROL_TOGGLE działa tak:

a) Windows 95/98/Me - nie działa. Konkretnie utrzymuje się w stanie wysokim.

b) Windows XP - COM na płycie - na jednym działa na innym nie (2 komputery przetestowane).

c) Windows dowolny - konwerter USB->COM - nie działa i utrzymuje linie cały czas w stenie wysokim (konweter prolific - pewno jego wina).

Innymi słowy Win Sux co zreszą widać po sposobie "RESOLUTION":

formatting link
W każdym razie pomysł z wykorzystaniem RTS leży.

Zabrałem się więc za robotę i zeszyłem konwerter z przerzutnikiem monostabilnym.

Można go zobaczyć tutaj:

http://155.158.112.198/rs485.gif Własnie jestem po uruchomieniu i o dziwo komunikuje się poprawnie z 2 urzadzeniami fabrycznymi na RS485. No i z moim urządzeniem RS485 też gada.

Publikuje schemat, bo może komuś się przyda. Na dzień dzisiejszy działa prawie bezbłędnie (na 5 minut walki jeden błąd CRC, kabelek ma 2 metry). Na schemacie kondensator C8 i rezystor (helitrim) R4 umozliwiają sterowanie monostabilnym, u mnie przy 9600 bodów C8 ma wartośc 10nF a helitrim ma 200kOhm. Z wyliczeń wychodzi mi, ze powinno pokryć cały zakres prędkości jaki mnie interesuje. IC2 to oczywiście 75176, tylko akurat nie miałem pod ręką gotowca do eagla, więc jest jako podstawka.

Proszę o uwagi, jesli ktoś ma. Przy okazji pytanie: czy 4047 można wyzowlić zboczem ujemnym ? Ten tranzystor mnie denerwuje :P

PS. Płytkę udało się zrobic jednostronną, jesli ktoś jest zainteresowany to mogę dac pliki do eagla.

Reply to
Sebastian Bialy
Loading thread data ...

Użytkownik "Sebastian Bialy" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:d98n07$39o$ snipped-for-privacy@nemesis.news.tpi.pl...

Rozważ jeszcze taką możliwość. Zera nadajesz normalnie. Jedynki tylko zbocze (kilka us) i zwalniasz linię (która zwolniona powinna być widoczna jako 1). Stała czasowa będzie niezależna od prędkości transmisji.

Przy małych prędkościach można zrezygnować nawet z nadawania początku

1-ki (jedynki to zwolnienie linii), ale przy większych nie bo będą różne opóźnienia zboczy. P.G.
Reply to
invalid unparseable

OK, ciekawy pomysł zastanowie się. Może w ym celu zastosować wlasnie jakiś multiwibrator. Rozumiem, że chodzi o to, zeby driver przeładował pojemność lini. Na razie moja koncepcja działa, choć szukam czegos niezależnego od prędkości.

A swoją drogą: w bebechach profesjonalnych konwerterów znalazłem scalaki

- 3 sztuki, starte napisy. Jak się robi to w profesjonalnych ? siedzi tam jakiś uC i "zgaduje" jaka jest transmisja ? Często się chwalą własnie na takich konwerterach, że niby samoczynna zmiana prędkości.

Reply to
Sebastian Bialy

A po co Ci dioda D1? Jeśli to ma zabezpieczać przed złą polaryzacją zasilania, to czy nie lepsze byłoby jej włączenie w kierunku zaporowym między masę a Vcc, a na linii zasilania dać bezpiecznik (polimerowy) i LEDa do pokazywania błędu?

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Użytkownik "Sebastian Bialy" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:d9928u$3a9$ snipped-for-privacy@nemesis.news.tpi.pl...

Nie wiem. Może właśnie tak jak napisałem. P.G.

Reply to
invalid unparseable

Diodę dodaje "tradycyjnie". Wszystkie układy na tej magistrali będa tak zabezpieczone. Wtyczki do magistrali będą zrobione tak, że jedyną mozliwością odwrócenia polaryzacji bedzie na zasilaniu całości. Innymi słowy nie musze mieć nagle choinki LEDów w kazdym urządzeniu świecących, że źle podłaczyłem. Z resztą gdzie ja kupie bezpieczniki polimerowe w ilościach detalicznych i bez płacenia za wysyłkę :/

W każdym razie zostaje tak jak jest - tak jest taniej.

Reply to
Sebastian Bialy

A to o tyle ciekawe, że na obudowie przyznają się do "modbus" i co ciekawe podobno (nie mam jak sprawdzić) na innych protokołoach nie działają. Co mi sugewruje że coś w środku stara się podsłuchiwać i liczyć crc dla róznych prędkości. To są oemowe konwertery bez producenta na opakowaniu i nie mam pojęcia, czy faktycznie są "robione" pod jeden protokół. Swoją drogą własnie z tego powodu musiałem z nich zrezygnować

- mam własny protokół i niestety nie mogę skorzystać z gotowca.

W każdym razie dzięki za sugestię, własnie nad nią rozmyślam intensywnie.

Reply to
Sebastian Bialy

Tylko tracisz 0,6V. Czasami to nie problem, czasami tak. Widać u Ciebie nie. ;-)

Bez drugiego członu odpowiedź brzmi "na Allegro", przynajmniej mnie udało się tam kupić polyswitche 250mA. A skoro nie zakładasz częstego odwrócenia polaryzacji zasilania, to topikowy wystarczy (i tak powinien być w układzie). LED to też taki nieobowiązkowy dodatek. ;-)

Pozdrawiam Piotr Wydeski

Reply to
Piotr Wyderski

Zasilanie jest z magistrali 12V - bo akurat leci z akumulatora (z róznych względów tak jest). Więc zapas spory.

W zasadzie są mi zbedne - wystarczy zwykły topikowy - z resztą w układzie nie ma, bo to prototyp. Przymierzam się do porzadniejszego nieco z bezpiecznikiem. W ostateczności wstawie tam zamiast 1N4001 jakąs

1N4148 i będzie robiła za bezpiecznik :)

LEDy to w ogóle były, ale płytka sie skomplikowała i nie chciała się ładnie zarutować jednostronnie. To wywaliłem zakładając, że i tak widać, że działa.

Jak na projekt typu "jeden dzień i pół nocy" włacznie z nauka eagle i testowaniem oraz napisaniem obsługi modbus (że o płyce nie wspomne :P ) to uważam, że nie najgorzej :D

Reply to
Sebastian Bialy

4148 potrafi się rozgrzać do temperatury żółtego żaru, więc uważaj na zagrożenie pożarowe. Ja bym nie kombinował.

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Piotr Wyderski napisał(a):

No przeciez żartuje :) Ani by mi przez myśl nie przeszło robienie takiej fuszerki :)

Na marginesie ostatnio mi 1N4148 detonowała robryzgując kawałki szkła (?). Zadziałała jako bezpiecznik własnie ...

Reply to
Sebastian Biały

Co za różnica, czy na diodzie, czy na stabilizatorze ? Na diodzie to nawet lepiej, bo trochę mniej mocy wydzieli się w stabilizatorze (pod warunkiem, że mamy odpowiedni zapas napięcia przed stabilizatorem).

Te bezpieczniki też mają ograniczoną liczbę cykli, więc rozwiązanie z diodą jest tańsze, prostsze i pewniejsze w układach, które nie pobierają dużo mocy.

Reply to
Zbych

Dużo lepszym IMHO rozwiązaniem jest zastąpienie diody tranzystorem P-MOS: bramka na masę, dren zamiast anody tamtej diody D1, źródło zamiast katody (czyli tak spolaryzowane aby "wbudowana" dioda mosfeta przy normalnej pracy przewodziła). Zabezpiecza przed odwrotnym podłączeniem zasilania, daje minimalny spadek napięcia, przewodzi bez problemu kilka A a obudowa miniaturowa (SOT23). Ja stosuję w takich przypadkach np. Vishay SI2301BDS (logic level P-MOS), kosztuje około

0,50 zł/szt.
Reply to
Adam Dybkowski

Można, ale wtedy kolejne zbocza nie wydłużają impulsu. Ma szansę działać dla jednej prędkości przy dokładnie dobranym czasie: wyzwalanie początkiem bitu startu, koniec w środku bitu stopu. Też liczenie bitów w ramce, tylko w wersji analogowej :)

Albo dać 4538: można wyzwalać zboczem + lub -, wydłuża impuls. Poza tym jest podwójny - na drugiej połówce można wykrywać dane odbierane i blokować nadawanie by uniknąć kolizji (jeśli UART ma "auto CTS", można go dodatkowo tym sygnałem wstrzymywać).

Marek

Reply to
Marek Michalkiewicz

Ciekawy pomysł, kupuję go. ;-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Hmmm 4538 nie mogłem dostac w okolicy, ale skoro mówisz, ze potrafi miec funkcjie retrigger (tak to się chyba nazywa w 4047) dla zboczy opadających, to chyba się poważnie zainteresuje w drugiej wersji. Co do wykrywania kolizji - mam jednago mastera i raczej nie potrzebuje ich wykrywać.

Reply to
Sebastian Bialy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.