Sida 2 av 4

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 16:32:43
av blueint
Slutat sälja IC kretsat övh?, eller menar du hålmonterat?

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 17:07:59
av JonasJ
Inte vet jag men den enda IC:n jag hittar på deras hemsida är ett seriellt EEPROM från Microchip. Om dom har slutat helt eller bara tomt på lagret har jag ingen aning om.

De sålde tidigare 10 pack av MAX485 som var ganska billigt även om jag just nu inte kommer ihåg hur mycket det var.

Hursomhelt, att bygga ett hemmanätverk ligger på min projektlista och isåfall kommer jag använda RS485. Tycker det är ett bra och enkelt protokoll som dels klarar långa avstånd, flera noder på samma nät och inte kräver någon speciellt krets förutom en billig MAX485. Det man får fundera på är vilka noder som ska ha termineringsmotståndet samt timing men det behövs även för t.ex. CAN.

Med CAN får man mycket nyttigt gratis som t.ex. hårdvarufiltering av adresser men tycker det är lite för overkill för ett enklare nätverk. Jag tycker också man begränsar sig lite till vilka MCU:er man kan använda eftersom chipset behöver en CAN modul (alternativt en extern CAN receiver) medan UART:ar hittar man på mer eller mindre varenda MCU.

1-wire fungerar nog också men får man inte hårdkoda mycket av kommunikationen själv (säkert vill man ha funktioner där det inte finns riktiga 1-wire komponenter)? En UART laddar man med ett värde sedan sköter hårdvaran om resten själv så att du kan fortsätta exekvera ditt program utan att behöva vänta på att UART:en är klar.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 18:32:37
av MiaM
Jag börjar med att tipsa om att ha koll på skillnaden och likheten mellan RS422 och RS485.

RS422 används ungefär som RS232, d.v.s. man har två enheter som pratar med varandra. Full duplex, d.v.s. båda kan sända till den andra enheten samtidigt. Elektriskt så är det balanserat med 5V-nivåer (d.v.s. man behöver inte dyra specialkretsar typ MAX232 med inbyggt "nätaggregat" för att få korrekta signaler på ett bygge med 5V-matning). Tack vare bättre elektrisk karaktäristik än RS232 så kan avståndet vara mycket längre.

RS485 använder samma balanserade 5V-signaler, men här sker sändning och mottagning på samma balanserade par, halv duplex alltså. Poängen med detta är att man kan många enheter på samma buss. Sändkretsen har en on/off-ingång, den styr man lämpligtvis av t.ex. RTS från en "rs232"-utgång på en mikrokontroller, eller just av RTS på rs232-porten på servern.

Om man bygger själv så kan man såklart bygga specialvarianter. Om du redan har en burk som är typisk "server" som i sin tur pratar med alla andra burkar så kan det kanske vara idé att ha ett balanserat par med data från servern till alla slavar, och sedan ha ett annat balanserat par där en slav i taget kan sända tillbaka till servern. I den här varianten är serverns sändkrets "hårt" byglad till "sänd alltid" medan slavarnas sändkrets styrs av respektive slav.

EDIT: Detta verkar mer eller mindre ingå som nån option i RS422-standarden, tror jag efter att ha googlat lite.

OBS att både RS485-varianten och hybridvarianten kan "pajas" av att en slav får tokspel och får för sig att sända när den inte ska.

Vad gäller kontaktdon så tycker jag att du kan välja precis vad du vill (som inte lätt går att förväxla med något annat som du också använder i närheten) eftersom chansen (eller risken?) att det dyker upp något annat än dina egna byggen som pratar RS422/485 antagligen är rätt försumbar, och därför är det ingen större idé att välja nån viss standard.

OBS att alla dessa varianter ska ha termineringsmotstånd vid kabeländarna.

När det gäller mjukvaran så utgår jag från att du väljer RS485 eller mellantinget jag beskrev ovan. (Om du väljer RS422 så är det ju precis likadant som RS232, d.v.s. du behöver en port på servern för varje slav...). En variant är att adressera respektive slav genom att först skicka någon byte som annars aldrig förekommer, t.ex. FF, och sedan slavens nummer. Så fort en slav hör FF så lyssnar den efter nästa byte, om den byten är slavens eget nummer så slås sänd-styrutgången på och slaven börjar prata med servern, annars slås sänd-styrutgången av. (Det kostar så lite att alltid skicka "slå av"-utport-kommandot oavsett om det behövs eller inte, så det kan man lika gärna göra alltid)...
Icecap skrev:Man använder en MAX485 krets istället för en MAX232 och styr riktningen med pinnen som gör detta.

Med rätt terminering (kolla databladet) kan du dra det runt 1500m på vanlig TP.
Om enheterna inte ska svara tillbaka behöver du inte ens att styra kommunikationsriktningen.
75186 är väl både den "klassiska" kretsen och dessutom billigare? Den har kanske sämre data? (Erkänner - orkade inte kolla).

Jag kollade på elfa, Dallas verkar ha en krets som är ännu billigare. Fördelen med 75186 är väl att man kan gissa att den kommer "alltid" gå att köpa, ungefär som 74xx-logikserien o.s.v...

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 21:54:42
av v-g
MiaM:Tack precis lite sån info jag behöver. :tumupp:

Du råkar händelsevis inte mena 75176 (tex 73-149-66) instället för 75186?

Fasen blir ju billigare o billigare detta isf :D

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 21:57:24
av Icecap
MAX485, ST485... finns ett antal kloner av den krets i 8 pin DIL eller SOIC, alla har samma pinout så man kan nog räkna med att de kommer att finnas i många år framåt.

Hursomhelst, RS485 passar bra där en master frågar slav och får svar men dåligt där sändning kan utlösas spontant.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 1 december 2009, 23:08:45
av v-g
Hmm scheisse blir mycket att tänka på detta :humm:

Jag tackar och bockar för all hjälp nu känns det som jag har nog mycket på fötterna för att åtminstone kunna testa lite. Det ska ju alltid ske några :wall: medan ett projekt pågår annars är någor fatalt fel :mrgreen:

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 2 december 2009, 01:21:29
av rickardg
v-g skrev: Du råkar händelsevis inte mena 75176 (tex 73-149-66) instället för 75186?
Fasen blir ju billigare o billigare detta isf :D
Tänk på att man får vad man betalar för. Gjorde nyligen en konstruktion på jobbet med en 75176 där det slutade med att vi fick skrota en hel hög 75176:or då jag fick byta upp mig till en MAX483ECSA+ (73-231-57), den senare har 15kV ESD-skydd (jämfört med 2kV för den förstnämnda), lägre last, lägre strömförbrukning och dessutom slewratebegränsning och failsafe operation. Finns andra mer prisvärda alternativ som tex SN65HVD3082E, kanske inte behövs så tåliga kretsar för din applikation men tänk på att det är rätt stor skillnad på olika 485-drivare.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 2 december 2009, 10:25:34
av v-g
rickardg:Tack för att du matar på med kunskap, jag såg faktist den skillnaden i späningstålighet men tänkte att jag provar ett gäng billiga (går ju 3 på 1) och hoppas på det bästa. Det är ju heller inge professionellt system (som jag antar att du jobbar med) så ingen dör ju förrutom mitt ego :oops:

För övrigt gillar jag inte alls Maxims datablad.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 2 december 2009, 13:44:27
av blueint
rickardg, Vad är det för miljö som gör att upp till 15 kV förekommer?

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 5 december 2009, 19:35:13
av rickardg
v-g, det är en bra idé att börja med billiga kretsar om du bara vill testa lite, de flesta är pin-kompatibla så det går att uppgradera senare om man kommer på att det behövs.

blueint, ingen särskilt brusig mijö, var inte krav på 15kV utan snarare att 2kV verkade vara för lite då några procent av drivkretsarna dog i (ej ESD-säkrad) labmiljö, problemet försvann efter uppgraderingen till tåligare kretsar, sen om det var själva ESD-tåligheten eller att kretsen var allmänt robustare vet jag inte.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 6 december 2009, 13:19:21
av HenkiBoy
Har du kommit någonvart med hemmanätverket?

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 6 december 2009, 13:58:21
av v-g
om du menar mig så har jag beställt en RS232-->RS485 adapter och jag ska lägga av en brakare på Elfa. Börjar där men tur nog så har jag ju 100% beläggning på min tid så detta måste komma utöver detta :D

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 6 december 2009, 14:21:54
av HenkiBoy
v-g: Var har du beställt adaptern?
Jag är själv lite sugen på att laborera med kommunikation, rs-485 verkar trevligt!

Hade varit häftigt att ha en dator eller en "huvud terminal" med en lite kraftigare pic och en LCD och sen små noder med PICar där var nod har sin uppgift.
Men tyvärr är detta ett ide/dröm som är en bra bit utanför min kunskap. :cry:
Men drömma kan man alltid.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 6 december 2009, 14:26:56
av v-g
Jag kan inte ett piss heller men 232 får jag ju att fungera sen är det ju egentligen bara första tecknet som är det svåra resten är bara påbyggnad :vissla:

Köpte denna

Säkert värsta skiten men 25 kronor känns som att jag överlever eller vad tror du? ;)

För att se vad man behöver så köper man skit sen vet man att ok det var skit nu vet jag vad jag ska kolla efter.

Re: Kommunikation i hemmanätverk mellan µc:s typ RS232

Postat: 6 december 2009, 20:45:33
av rickardg
Ett tips är att köra med 9-bitars kommunikation som de flesta microcontrollers stödjer för att få interrupts vid paketstarter (msb = adressbytesindikering), blir väldigt mycket enklare att skriva koden som hanterar protokollet och dessutom får processorerna ute i noderna det väldigt mycket mindre stressigt, nackdelen är att det inte går att använda en sådan konverterare du köpt för att kommunicera på bussen med då PC-uart:er inte stödjer 9 databitar. I mitt jobbprojekt som använder 9-bitarskommunikation har jag istället en nod med en microcontroller med dubbla uarter som interface mellan RS485 och PC, en sådan nod användes även som sniffer vid utveckling av protokollet.