Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

RS485 netwerk

Pagina: 1
Acties:
  • 524 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

ik probeer al lange tijd om een rs485 netwerk op te stellen tussen verschillende PIC16f628a's. De bedoeling is dat mijn pc (rs232) als master werkt, en de pic's als slave. Aangezien het een redelijke afstand bedraagt, is rs485 de oplossing voor zover ik weet. Het lukt me echter niet om een werkend schema te verkrijgen, na dagen prutsen via breadboardje vraag ik graag toch nog is wat hulp. Is er iemand die hier ervaring mee heeft en die me eventueel kan helpen om een werkend netwerkje op te stellen ? De programmatie van pic en comms tussen de pc kan ik zonder problemen alleen voor mekaar krijgen. De hardware is echter een groter probleem. Er is zoveel en zoveel verschillende schema's omtrent dit onderwerp te vinden dat ik eigenlijk door het bos de bomen niet meer zie. Alvast bedankt voor enige reacties.

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
bestaat er niet een MAX485, net als de MAX232?

fflater: ja!... dat is dus een driverchip...

http://bellota.ele.uva.es/~jesus/datasheets/maxim/max485.pdf

Die doet al het werk voor je! Die kan je verder direct aansturen met de PIC

edit: verder googlen...

[ Voor 6% gewijzigd door MeMoRy op 12-07-2006 23:00 ]

U vraagt, wij antwoorden.


  • Aotearoa
  • Registratie: Mei 2005
  • Laatst online: 12:28
OK, als ik het goed begrijp laat je de PIC via rs232 met de PC communiceren, en de PIC's onderling via rs485.
Voor een DMX project (rs485 achtig) heb ik ooit eenzelfde soort opstelling gebruikt. We hebben toen een SN75176A gebruikt om de TTL voltages om te zetten naar rs485. Zie google voor de datasheet. Als je wat meer informatie geeft (een schema ofzo van wat je tot nu toe hebt), dan kunnen we je wellicht iets beter helpen.

  • Invisible_man
  • Registratie: Juni 2006
  • Laatst online: 18:34
Om afstand te overbruggen kan je natuurlijk ook van Bluetooth gebruik maken. Er zijn modules waar je gewoon RS232 mee kan praten, moet je alleen de TTL spanningen omzetten naar ik meen 3V.

Er zijn ook Bluetooth bridges te krijgen die je als draadloze comm-kabel kan gebruiken (met bereiken van wel 100m) die je gewoon op je D9 aansluiting kan pluggen (heb je bij de pic alleen een male-male verloopje nodig).

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
Ik heb een schema'tje voor je, van het beestje dat ik in mijn eindwerk heb gestoken, voor de connectie werden RJ45 stekkers gebruikt (erg handig, netwerkkabels heb je altijd wel liggen, zolang je wat uitkijkt dat je niet inprikt op je router). In het schema mag je alles wat rechts is van de 4 RJ45's weglaten, dat is de omzetting naar RS232, aan dde linkerkant heb je gewoon TTL niveau.
Afsluitweerstanden werden overigens niet gebruikt, het eindwerkbedrijf had met dat schema al jarenlang ervaring dat het probleemloos werkt, dus hoef je die er niet bij te zetten.

Edit: foto is wat wazig, links zijn de labels van boven naar onder: "Tx enable", "Tx from CPU" en "Rx from CPU". De twee linkse chips zijn MAX489's, en de chip rechts is een MAX232.

[ Voor 14% gewijzigd door naftebakje op 13-07-2006 18:09 ]

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
verloopje? :?

U vraagt, wij antwoorden.


  • Invisible_man
  • Registratie: Juni 2006
  • Laatst online: 18:34
Niet erg duidelijk van mij idd 8)7. Wat ik bedoel, de twee apparaatjes die je direct in je D9 connector kan stoppen hebben female aansluitingen zodat ze zo in een pc gestopt kunnen worden. Aan een pic heb je doorgaans een female stekker zitten, zodat je het bluetooth apparaatje er niet op kan zetten. Dus heb je een één op één blokje/kabeltje nodig met aan bijde kanten een male aansluiting, dit heb ik (niet al te duidelijk dus) een verloopje genoemd.

Verwijderd

Topicstarter
ok sorry voor de onduidelijkheid. Heb vlug vlug even schema getekend. Ben wel niet zeker dat de termination juist gebeurd is. Misschien kan iemand dit is checken. Het blijkt alleszins wel te werken, echter pic1 kan ik aansturen via de pc (hardcoded id in de pic) de pic2 niet. Het lijkt wel of de bus blijft open staan ofzoiets.de software die ik probeer aan te passen is die van William en de rgb led. Bedoeling is dus dat ik via soft een id kan gaan selecteren, en dat dan bijgevolg het patroon voor die pic doorgestuurd wordt. De andere pic laat ik dan bvb constant op zacht rood staan, terwijl de andere groen knippert.

Afbeeldingslocatie: http://img304.imageshack.us/img304/9852/schemers4855tp.png

schema is maar snel ff getekend, sla me niet dood als het té slordig is :P

groeten,
Ariff

  • joca
  • Registratie: Oktober 2000
  • Laatst online: 12-07 20:25
Let er wel op dat je de aftakking van de bus voor PIC1 (die zonder afsluiting) niet te lang maakt, anders krijg je je bus moeilijk afgesloten. 120ohm voor afsluitweerstanden moeten het wel doen.

Ipv RS485 kan je ook RS422 nemen, hetzelfde idee alleen dan full-duplex ipv half.

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 19-10 00:17
Invisible_man schreef op donderdag 13 juli 2006 @ 18:14:
[...]

Niet erg duidelijk van mij idd 8)7. Wat ik bedoel, de twee apparaatjes die je direct in je D9 connector kan stoppen hebben female aansluitingen zodat ze zo in een pc gestopt kunnen worden. Aan een pic heb je doorgaans een female stekker zitten, zodat je het bluetooth apparaatje er niet op kan zetten. Dus heb je een één op één blokje/kabeltje nodig met aan bijde kanten een male aansluiting, dit heb ik (niet al te duidelijk dus) een verloopje genoemd.
Dat noem je een gender changer

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Verwijderd

Even een kickje. Ik ben zelf ook bezig met RS-485, maar het punt is dat ik slaves eigenlijk zelf ook een interrupt signal aan de master wil af kunnen laten geven. Het probleem wat je dan krijgt is dat de data transport dan fout kan gaan als data vanaf de master tegelijkertijd wordt verzonden met een intr moment van een slave. Iemand suggesties?

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 18-09 13:34

IWriteCode

Less = more

Verwijderd schreef op woensdag 12 juli 2006 @ 22:01:
Hoi,

ik probeer al lange tijd om een rs485 netwerk op te stellen tussen verschillende PIC16f628a's. De bedoeling is dat mijn pc (rs232) als master werkt, en de pic's als slave. Aangezien het een redelijke afstand bedraagt, is rs485 de oplossing voor zover ik weet. Het lukt me echter niet om een werkend schema te verkrijgen, na dagen prutsen via breadboardje vraag ik graag toch nog is wat hulp. Is er iemand die hier ervaring mee heeft en die me eventueel kan helpen om een werkend netwerkje op te stellen ? De programmatie van pic en comms tussen de pc kan ik zonder problemen alleen voor mekaar krijgen. De hardware is echter een groter probleem. Er is zoveel en zoveel verschillende schema's omtrent dit onderwerp te vinden dat ik eigenlijk door het bos de bomen niet meer zie. Alvast bedankt voor enige reacties.
Wat is de afstand die je moet overbruggen? Met I2C kan je, met extender chips, tot wel 300 meter halen! I2C is de 'standaard' ic intercommunicatie bus, veel PIC chips hebben standaard 2 I2C pinnen.

Less = more


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
Jamal schreef op donderdag 20 juli 2006 @ 17:38:
[...]

Wat is de afstand die je moet overbruggen? Met I2C kan je, met extender chips, tot wel 300 meter halen! I2C is de 'standaard' ic intercommunicatie bus, veel PIC chips hebben standaard 2 I2C pinnen.
Met Bluetooth zou je ook 1 kilometer ver draadloos internet kunnen verzenden, maar daar is het nooit voor bedoeld. I2C is een bus voor korte afstanden, binnen een toestel (als het ff kan binnen dezelfde printplaat), en is nogal storingsgevoelig. Je extender zal de storing die ontstaat op elk stuk echte I2C netjes doorgeven, waardoor je serieus moet ontstoren, en stevige beperkingen bekomt.
RS485 is puur bedoeld als bus voor langere afstanden, DMX dat gebruikt wordt voor lichtaansturing op fuiven enzo is gebaseerd op RS485. Ontstoring is puur hardwarematig al voorzien (Differentiële signalen, hogere spanningen, twisted pair kabels).
En wat je zegt over veel chips die voorzien zijn, bewijst imho dat je niet weet waar je mee bezig bent. RS485 hang je via 1 chipje aan de USART, die elke microprocessor heeft. I2C komt maar op (ruwe gok) 15% van de PIC's voor.
Verwijderd schreef op donderdag 20 juli 2006 @ 17:27:
Even een kickje. Ik ben zelf ook bezig met RS-485, maar het punt is dat ik slaves eigenlijk zelf ook een interrupt signal aan de master wil af kunnen laten geven. Het probleem wat je dan krijgt is dat de data transport dan fout kan gaan als data vanaf de master tegelijkertijd wordt verzonden met een intr moment van een slave. Iemand suggesties?
Elke x tijd de slave's pollen. Je kan bijvoorbeeld bij het initialiseren de slave's detecteren (hun adres zenden en vragen om een antwoord, als ze antwoorden zijn ze er), en dan gewoon constant de slave's aflopen om te luisteren of ze iets te zeggen hebben.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • Invisible_man
  • Registratie: Juni 2006
  • Laatst online: 18:34
die elke microprocessor heeft. I2C komt maar op (ruwe gok) 15% van de PIC's voor.
Ze komen dan heel wat meer voor dan je denkt (geen 100% iig, maar zeker veel meer dan 15%). De I2C poort zit alleen vaak verstopt doordat deze een aansluiting deelt met een gewone IO-poort.

Maar dan blijft het feit dat I2C voor communicatie op de print is bedoeld (tussen Pic en een RTC bijvoorbeeld). Wat mischien wel interesant is om naar te kijken is Can-bus. Deze wordt ook veel in auto's toegepast voor de communicatie tussen de verschillende electronische onderdelen Afhankelijk van de snelheid, kan volgens internet de afstand bij 5kB/s wel 10 km zijn. In hoevere dit klopt weet ik verder niet precies. Er zijn wel PIC's die Can ondersteunen, maar dat zijn er wel heel weining. Er zijn volgens mij wel Ic's te krijgen waarmee je een adaptor kan maken tussen I2C en Can, of mischien wel de UART en Can.

Verwijderd

Can, DMX, Ethernet, tis allemaal gebaseerd op RS-485, zolang ge uw LVDS signalen niet deftig aangestuurd / afgesloten krijgt moogt ge nog op uwe kop staan en zult ge er geen afstanden mee halen.
Mijn tip: houd het simpel, gebruik gewoon de UART in 9-bit modus met de MAX485, nekeer da da werkt kunt ge zelf nog een protocol uit de grond stampen om uw communicatie naar uw eigen zin te trekken.

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 19:33
Invisible_man schreef op vrijdag 21 juli 2006 @ 09:14:
[...]

Ze komen dan heel wat meer voor dan je denkt (geen 100% iig, maar zeker veel meer dan 15%). De I2C poort zit alleen vaak verstopt doordat deze een aansluiting deelt met een gewone IO-poort.
...
Ik weet ze goed genoeg zitten, trust me. De populairste en meest gebruikte PIC's zijn maar gedeeltelijk voorzien van I2C, dat was wat ik wou zeggen. 16F628 is erg populair bij hobbyisten, en heeft geen I2C, er worden erg veel minimalistische PIC's gebruikt (6 pinnetje's, heel beperkt maar net voldoende voor kleine goedkope toepassingen) zonder I2C.

Volgens Microchip zelf (ik heb wat documentatie liggen), we zoeken een systeem met meerdere onderdelen (meer dan 2), is voor <= 100 meter LIN, zigbee en Ethernet geschikt, en voor <= 1.5km CAN of RS-485. I2C is voor <= 1 meter.
Enige wat realistisch is, is CAN of RS-485, en de laatste is imho gemakkelijker. CAN vereist (volgens microchip zelf) 2 I/O pinnen (geen UART ofzo, dus zelf bitbangen veronderstel ik), en een transceiver.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.

Pagina: 1