I2C <> 1Wire interface

Sep 10, 2013 15 Replies

Taką mam zagwozdkę...



Mam chipa I2C (akcelerometr). No i chciałbym go mieć na 1Wire. A jeszcze lepiej - na 1wire, ale bez dodatkowego zasilania. Znaczy - w sumie to nie musi być 1wire, raczej - jak tu zrobić transmisję I2C przez kabelek zasilania ? Bo sam format to w sumie dowolny...



Tak sobie myślę - wziąć MCU, żeby się bezpośrednio z tym I2C lokalnie komunikował... A potem co - jakoś wysyłać i odbierać na to zasilanie...



Fizycznie transmisja kabelkiem koncentrycznym max 50m. długości. Taki kabelek dokładnie :

formatting link
Czyli jakieś kosmiczne prędkości raczej nieosiągalne. Ale też chyba nie potrzebne - nie muszę mieć odczytów częściej niż powiedzmy 100 Hz.



Jak by tu modulować to zasilanie , żeby było pewnie ?


U¿ytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:l0ob9g$mf3$ snipped-for-privacy@node1.news.atman.pl...

Moim zdaniem naj³atwiej bêdzie zrobiæ transmisjê pr±dow±. Czujnik pobiera standardowy pr±d = jedynka. Czujnik pobiera wiêkszy pr±d = zero.

Co do mo¿liwej prêdko¶ci to wed³ug mnie kluczowym parametrem bêdzie sta³a czasowa RC, gdzie R - rezystancja w³±czona w zasilanie w centrali w celu pomiaru pr±du, C - pojemno¶æ kabla. Je¶li kabel ma 100pF/m to 50m bêdzie mia³o 5nF. Je¶li R bêdzie 20om to RC bêdzie 0.1us. My¶lê, ¿e czas bitu mo¿e byæ 1us czyli max prêdko¶æ 1Mb/s. Obni¿aj±c widziane przez obci±¿enie R mo¿na podnosiæ prêdko¶æ (w pewnym momencie R kabla zacznie siê liczyæ).

Wiele lat temu robi±c pêtle pr±dowe zasilanie ze z³±cza RS232 (jedna para po której transmisja w dwie strony (nadajnik widzi te¿ to co nadaje)) przy pr±dzie pêtli 5mA udawa³o mi siê osi±gaæ oko³o 600kb/s na 100m w tê stronê w któr± nadawanie nie wymaga³o prze³adowywania pojemno¶ci kabla (w jedn± wymaga, w drug± nie wymaga) a w torze by³y jeszcze transoptory. P.G.

Użytkownik sundayman napisał:

IMHO wykonalne ale:

  1. Linia 1wire z tranzystorem do 5V w celu zasilenia czujnika i jego "translatora" na czas pomiaru
  2. program hosta na czas pomiaru nic nie robi na linii, potem polecenie dla translatora coby odebrał pomiar z czujnika a następnie go przesłał,
  3. czujnik musi mieć zapewnione zasilanie na czas pierwszego polecenia czyli jakiś kondensator dobrać z diodą do linii 1wire i chyba musi to mieć możliwość odcięcia tranzystorem przez translatora bo zabije jakąkolwiek transmisję.

Mo¿e RS232 z transmisj± 4 bitow±.

--

-- . pozdrawiam Sylwester £azar

formatting link
Systemy elektroniczne.
formatting link
-oprogramowanie do edycji schematów i projektowania PCB.

W dniu 11.09.2013 01:49, sundayman pisze:

Hmm, a może lepiej dać kabel cat5e i zrobić to na podobnej zasadzie jak PoE?

No więc właśnie biję się z myślami. Zasadniczo lepiej byłoby na 1 żyle, bo instalator ma mniejszą szansę, żeby się pomylić (to nie żart). I wtedy modulowanie prądu chyba rzeczywiście najlepszą opcją by było.

No ale z drugiej strony, cat5 ma taką zaletę, że sam kabel jest tańszy, łatwiej zrobić transmisję (2 kierunkową wtedy nawet)... Problem z tym, że instalator musi dać sobie z tym radę. A tego pewnym być nie można :)

Ale gdyby rzeczywiście - to wtedy, czy np. gniazdo do CAT5 (RJ45) jest waszym zdaniem wystarczająco pewne żeby pracować w sterowniku przemysłowym, do tego np. zimą, w nieogrzewanym pomieszczeniu ?

U¿ytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:l0qlo0$5bc$ snipped-for-privacy@node2.news.atman.pl...

Wygl±da jakby¶ zak³ada³, ¿e po jednym drucie nie da siê w dwie strony. Wystarczy na wej¶ciu dioda i elektrolit do zasilania urz±dzenia i co¶ podgl±daj±cego napiêcie przed diod±. P.G.

NIE. Jednak nie musisz stosowaæ standardowych RJ45. Mo¿na zalutowaæ DB9, które jest jako¶ciowo du¿o bardziej skuteczne. Mo¿na zastosowaæ po³±czenia ¶rubowe, ale najlepszym rozwi±zaniem wydaj± siê byæ koñcówki lutownicze. Lutownica w ka¿dym lepszym sklepie jest dostêpna i kosztuje taniej ni¿ m³otek. RJ45, RJ12 to z³om, polegaj±cy na tym, ¿e okr±g³y drucik "muska" blaszkê. A¿ dziw bierze, ¿e zastosowano je powszechnie w³a¶nie w telefonii i przy szybkiej transmisji danych. Jakakolwiek praca poza warunkami ~25stC/24/7/365 powoduje ich degradacjê. I dlatego zachêcam do pierwotnego pomys³u: 1-wire. Przy powszechnym u¿yciu szybkiej, dwukierunkowej drogi radiowej (nazwijmy to

1-air), sens wielo¿y³owych po³±czeñ przewodowych utopi³ siê jakie¶ 20 lat temu. Dobrym pocz±tkiem by³o BNC, ale upad³o.
-- . pozdrawiam Sylwester £azar http://www.alpro.pl Systemy elektroniczne. http://www.rimu.pl -oprogramowanie do edycji schematów i projektowania PCB.

W dniu 2013-09-12 10:40, Sylwester £azar pisze:

O qrwa dobrze ¿e moje routery tego nie wiedz± a i setki urzadzen pracujacych w fabrykach.

Nie zakładam. W praktyce to właściwie to nie jest niezbędne - lokalny MCU przy czujniku zadba o wszystko i będzie wysyłał dane. No ale niby zawsze lepiej mieć możliwość komunikacji 2 kierunkowej.

No więc lutowanie czegokolwiek odpada, bo instalator sam sobie skraca odpowiednio kabelek, a lutowanie (zwłaszcza w warunkach polowych). przekracza jego kompetencje o lata świetlne :)

Zaciskanie RJ to jeszcze jako tako, ale też nie jestem pewien.

Teraz kabelek jest 1 żyłowy, no i właśnie zaciskany w złączu z śrubką. Znaczy w 2 złączkach : GND + SYGNAŁ. Dlatego właśnie był pomysł pozostania przy 1 żyle, bo każda dodatkowa oznacza ryzyko złego podłączenia. Taki instalator potrafi nawet kabelek 1 żyłowy odwrotnie podłączyć, i się dziwić, że nie działa. Sprawdzone niestety w praktyce :)

Wadą jest komplikacja, no i ten kabelek jest sporo droższy niż CAT5...

W dniu 11.09.2013 23:00, sundayman pisze:

Do przemysłowego ethernetu nie stosuje się RJ45 chyba, że z pancernymi przykręcanymi wtyczkami. Standardem są wielopinowe okrągłe złącza z gwintem M12.

Chyba siê stosuje i to b.powszechnie. Jak wszêdzie nie nale¿y stosowaæ najtañszych wtyczek, najtañszych gniazd i najtañszych kabli. Poniewa¿ za¶ w³a¶nie ten aspekt jest tutaj najwa¿niejszy (wybór 1-wire to w³a¶nie rozpaczliwa próba redukcji kosztów) przeto uczone dywagacje o "profesjonalizmie" mo¿na sobie w³o¿yæ.

O 1-wire wiem du¿o, b.du¿o. Na tyle du¿o ,¿e ok 12 lat temu zrobi³em dwa projekty slave'ów bazuj±cych na mikrokontrolerach PIC i PSoC (Cypress), które by³y przez firmowy software Dallasa rozpoznawane jako w³asne. Te¿ siê da³em kiedy¶ wci±gn±æ w walkê z gównem, bo klienci chc± tanio. Teraz siê ju¿ nie bawiê w rozwi±zania "aby taniej". Jak klient chce to niech sobie idzie do konkurencji.

1-wire to syf. Nigdy nie pomy¶lany jako system transmisji na du¿e odleg³o¶ci. I nic nie pomo¿e stosowanie cudów -wianków w rodzaju mastera z automatyczn± adaptacj± parametrów transmisji (s± takie). Generalnie zawracanie dupy. Wy³±cznie dla amatorskich celów onanistycznych.

no w moim przypadku , jak już napisałem, chodzi o łatwość montażu. Koszt niespecjalnie ma znaczenie - tak czy owak nie są to duże sumy.

Natomiast komunikacja 1 przewodowa z natury rzeczy musi być bardziej skomplikowana - niemniej, z uwagi na wspomnianych instalatorów może to być bardzo, bardzo wskazane...

Jest też inne zagadnienie - bezpieczeństwo kabla. Ten jednożyłowy, który stosuję jak dotąd wydaj mi się bardziej odporny na zniszczenie niż CAT5. Jedna solidnie spleciona żyła vs. kilka znacznie cieńszych.

A generalnie nie mogę dać kabla o średnicy większej niż 4mm.

Dawno temu czytałem jak ktoś się chwalił instalacją napowietrzną

1wire o długości 800m, podobno działało bez problemu- ściema?

pewnie i może działać. Tyle,że ja tutaj piszać 1wire niespecjalnie mam na myśli dokładnie ten konkretny standard - zwłaszcza, że nie używam w tym przypadku układu dallasa. Może to trochę mylące było :)

Na ile 1wire dallasa działa przy takiej długości to nie wiem. Ale jakaś transmisja chociażby z modulowaniem prądu będzie pewnie działać na dużo większą odległość.

Użytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:l108sl$gce$ snipped-for-privacy@node2.news.atman.pl...

Oczywiście, że będzie działać. Pewnie co najmniej na taką odległość jak miały linie telegraficzne wzdłuż torów na "dzikim zachodzie". Nie wiem jak to było konstruowane, ale pewnie linia musiała zasilić jakiś elektromagnes w odbiorniku (a choćby przekaźnik). To jest wystarczająco policzalne aby dało się teoretycznie dość dokładnie przewidzieć zachowanie sygnałów. Z czasów kiedy w naszym systemie głównym "pokonywaczem odległości" były pętle prądowe mam w szufladzie (no raczej w szafce) 1200m najtańszego kabla typu skrętka telekomunikacyjna (sprawdzałem w realu, czy to, co wychodzi na papierze się potwierdza - potwierdzało się). Nie robiłem eksperymentów z zasilaniem i komunikacją po jednym drucie, ale nie widzę powodów aby miały być niepoliczalne. Pomijam w tym momencie aspekt EMC tematu. P.G.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required