Ik zou graag over een afstand van maximum 50 meter, via een gewone niet afgeschermde kabel (2x 0.75m²), gegevens verzenden naar en van een PIC.

De kabel ligt al een tijdje klaar, en had oorspronkelijk als doel een 24V spanning te sturen naar het uiteinde.

Maar ik ben ambitieuzer geworden.
Ik zou graag verschillende parameters willen monitoren en deze bidirectioneel kunnen verwerken.
De gegevens zijn low-fi (ik bedoel zijn aan of af toestanden van 230V signalen), en de sturingen zijn licht aan licht uit toestanden. Dus geen storingshypergevoelige signalen.
Ik ben al lang blij met een transmissie van 1byte/seconde.
De intervallen voor de metingen en de sturingen zijn echt niet kritisch (om de 5 seconde een meting is prima)..

Ik zoek dus een systeem om via een onbeschermde kabel toch redelijke signalen te kunnen versturen naar en van een PIC.
Ik weet eigenlijk niet welk protocol ik daarvoor kan gebruiken.

Kan er iemand mij in gang helpen met dit domoticaprojectje?
Dit met voor ogen dat ik maar een amateur ben...

Bedankt in ieder geval

RS-232 op lage baudrate moet zeker kunnen voldoen.

Je wil de kabel gebruiken om de PIC en-nog-wat te voeden, èn om ermee te communiceren? Dan kan je het voedingsdeel scheiden door --in serie met de positieve draad-- zowel aan het begin als aan het eind een spoel op te nemen. Het communiceren kan dan gebeuren met pulstreintjes die je via een C op het deel tussen de spoelen superponeerd.

Je zou bijv hier inspiratie op kunnen doen: http://www.circuitsonline.net/forum/view/52801/
Data (RS-232) en power over twee dezelfde, uitwisselbare draadjes (maar ook beschreven is hoe je dit met aparte datalijn kan doen, wat een veel simpeler interface geeft)

Dit is succesvol getest voor 20 meter kabel op 2400 baud, maar met wat lagere snelheid gaat 50m ook misschien wel.

Hier is een applicatie, door iemand anders met deze opzet gemaakt: http://www.bramblyhill.com/Picaxe/serialPower.aspx

PS: de nodes mogen ook hun eigen voeding hebben, het protocol blijft hetzelfde

Met vriendelijke groet
/Jurjen

Of je gebruikt maar 2 draadjes en RS485.
Dit ontwerp kun je eenvoudig zelfbouwen.

Of I2C met een P82B715 als buffer. Haalt 300 mtr op 100kHz, op lagere snelheid zelfs max. 1600 mtr...

Ik zou ook voor RS485 gaan met bijvoorbeeld een MAX485 of 75176 driver IC. Nadeel met 2 draden is dat je processor in een "direction" signaal moet voorzien.

[Bericht gewijzigd door bprosman op (36%)]

Kan zeker over >100 meter met RS485, weet ik uit ervaring (windwijzer ergens in de tuin op een dak, en data versturen naar een display binnen). De kabel was een gewone niet-afgeschermde telefoondraad. 2 aders voor de stroomvoorziening en 2 aders data (D+ en D-). Met goede afgeschermde kabel kan je met RS485 zelfs kilometers overbruggen. MAX485 transceiver chips gebruikt, aan elke kant een, en de microprocessors (PICjes) schakelen tussen zenden en ontvangen. Je moet dan natuurlijk wel een handig protocolletje verzinnen zodat er geen communicatie verwarring kan onstaan.

De schakeling die ik poste los alle problemen voor je op.
Geen directioneel signaal, geen problemen met isolatie en defecten door onweer e.d. Gewoon plug and play.
Je hebt zelfs geen protocolverandering nodig voor de aanpassing.

True, het schema is niet eenvoudig.

Bedankt al iedereen!
Ik ga daar eens naar kijken.
Het is niet echt de bedoeling dat de tweede schakeling gevoed wordt door de eerste.

Ben niet zo thuis in het wereldje van RS....
Wel las ik ergens dat RS232 en RS485 op elkaar lijken.

Ik programmeer die dingen met Flowcode dus zal moeten zoeken wat die voor protocollen aan kan.

Nogmaals bedankt, post gerust verder ;-)

Wel las ik ergens dat RS232 en RS485 op elkaar lijken.

Het belangrijkste verschil is denk ik dat RS485 differentieel is. Voor een digitale '1' moet D+ hoger zijn dan D-, en voor een digital '0' omgekeerd (D+ < D-). Het grote voordeel is sterk verbeterde/verminderde storingsgevoeligheid. Als er bijvoorbeeld onverhoopt een een inductiestroompje op je verbindingsdraad wordt geinduceerd, dan gebeurt dat bij D+ en D- allebei, en dat maakt dus voor het signaal niks uit (ze gaan beide wat omhoog of naar beneden in voltage, maar het gaat om het -verschil-). Bij RS232 wordt alleen gekeken naar het signaalniveau t.o.v. aarde.

Precies.

Het is een differentieel systeem, gelijk aan een gebalanceerde microfoon.
Maar dan met digitale signalen.

Storing op de kabel wordt in beide draadjes ongeveer gelijk ingekoppeld en deze stroing wordt er in de ontvanger door de opbouw eenvoudig weer uitgefilterd.

Als je nog niet met RS485 gewerkt hebt, nog wat info:
10 ways to bulletproof rs485, een application note van National.

- - big bang - -

Om zonder RS485 chipsje toe te kunenn, en er geen voeding overhoeft, kan je toch gewoon differentieel zenden. Twee pennen van je PIC aansluiten en altijd de ene hoog de andere laag maken. Of andersom. En dan gewoon gaan pingpongen: ene kant (master) stuurt een byte, en verwacht er 1 terug. Als er niks terugkomt, probeert hij het nog eens. De slave wacht gewoon totdat ie een byte krijgt.

Om zonder RS485 chipsje toe te kunenn, en er geen voeding overhoeft, kan je toch gewoon differentieel zenden.

Dat kan maar is over grote afstanden niet aan te raden.

Op TTL-niveau communiceren over 50m is niet onmogelijk, als je het maar goed aanpakt.
Om te beginnen kan je de aarde als "3e draad" gebruiken. Het spreekt voor zich, dat die aarding aan beide uiteinden van goede kwaliteit moet zijn.
Vervolgens kan je 1 draad gebruiken om te zenden, en de andere om te ontvangen. Zo kan de software eenvoudiger blijven.
Elke draad dient dan aan het uiteinde afgesloten te worden met een stel weerstanden, bv. 1k tussen lijn en GND en 470R tussen lijn en Vcc. Dan gebruik je stroomsturing ipv. spanningssturing, hetgeen minder storingsgevoelig is, en tevens reflecties onderdrukt.
Als laatste dient een goed-omschreven protocol gebruikt te worden, dat mogelijke fouten in de communicatie herkent. Een checksum is daarbij een aanrader.

Op TTL-niveau communiceren over 50m is niet onmogelijk, als je het maar goed aanpakt.

Jakkie, moet er toch niet aan denken dat daar machines aan hangen. Voor een "lampje voor de hobby" zou je t kunnen overwegen, van de andere kant, leg je zo'n kabel door de tuin kun je dr ook wel een doosje reserve buffers bijzetten.

Vervolgens kan je 1 draad gebruiken om te zenden, en de andere om te ontvangen.

Daar zou je de standaard UART zelfs voor kunnen gebruiken en RS232 (op TTL) nivo doen maar dan weer niet op 50 Meter. Bovendien heeft de TS maar 2 draden, geen GND.

Als laatste dient een goed-omschreven protocol gebruikt te worden, dat mogelijke fouten in de communicatie herkent. Een checksum is daarbij een aanrader.

Dat zowiezo maar om een protocol (sterker) te maken vanwege de hogere gevoeligheid in Laag 0 (je hardware - TTL) zou ik ook niet doen.

[Bericht gewijzigd door bprosman op (10%)]

Op 7 april 2008 12:42:20 schreef bprosman:
Jakkie, moet er toch niet aan denken dat daar machines aan hangen.

Voor een industriële toepassing zou ik het ook niet met TTL-lijntjes doen. :-)

Voordeel van mijn suggestie is, dat de TS meteen aan de slag kan zonder extra-IC's en de bijbehorende printen. Een snelheid van 1MBit/sec. kan hij wel vergeten, maar 10kBit/sec. moet mogelijk zijn.

Voor een industriële toepassing zou ik het ook niet met TTL-lijntjes doen.

Ik schrok al :-) maar gelukkig zitten we weer op een lijn :-)

Ik ben wat aan 't stoeien geweest met hetgeen ik aan verlengkabels bij de hand heb, zo' 27m lengte in totaal.
Dit krijg je aan het eind te zien, als je er aan het begin een TTL-signaal van 100kHz inpompt:
http://www.uploadarchief.net/files/download/27mkabel1.jpg

Een afsluitweerstand van 1k brengt geen zichtbare verbetering.
Maar met een Thevenin-afsluiting (680R naar Vcc en 330R naar GND) en een serieweerstand van 47R tussen TTL-bron en kabel ziet het er veel beter uit:
http://www.uploadarchief.net/files/download/27mkabel3.jpg

De amplitude is nu iets kleiner, maar nog steeds groot genoeg om door de ontvanger als '0' en '1' herkend te worden. Waarschijnlijk kan het signaal nog verbeterd worden door meer-gepaste weerstanden te kiezen.

Indrukwekkend.

Maar heb je al eens nagedacht over flinke storingen op die lijn?
Zoals een impuls van 50V o.i.d.

Leuk voor je logica. ;)

Misschien helpt een terminator?

Op 7 april 2008 21:10:50 schreef Bart Hiddink:
Maar heb je al eens nagedacht over flinke storingen op die lijn?
Zoals een impuls van 50V o.i.d.

Voor een domotica-projectje zie ik nog niet zo snel stoorbronnen opduiken die 50V op de lijn injecteren. Maar een weerstandje van 10k tussen afsluiting en µC kan nooit kwaad, natuurlijk.

@RES: Die Thevenin-afsluiting is een terminator.

Op 7 april 2008 21:16:47 schreef RES:
terminator?

terminator:P waarschijnlijk iets anders, wat ik niet snap...

De techniek die Pros bedoelt wordt fail-safe biasing genoemd, staat uitgelegd in het artikel dat ik hogerop postte.
Wordt bij industriële bussen (zoals) Profibus wel meer toegepast.

- - big bang - -