Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

RS485 problemcici...

[es] :: Elektronika :: Mikrokontroleri :: RS485 problemcici...

[ Pregleda: 8407 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ruzmarin84
obradovic
kraljevo

Član broj: 141743
Poruke: 33
*.adsl-a-4.sezampro.rs.



Profil

icon RS485 problemcici...18.07.2010. u 13:04 - pre 166 meseci
Pozdrav svima...
Imam mali problemcic u vezi rs 485 povezivanja dva mikrokontrolera. Koristim one jeftine sn75176 transievere, nije trenutno imalo nista drugo da se nadje u prodaji...
Komunikacija treba da se ostvari izmedju dva PICa. Oni komuniciraju veoma dobro preko serijske veze (...zahvaljujuci dobrim ljudima sa foruma :) ...)
Zanima me kako da povezem ovaj transiever sa PICom. Drugi i treci pin sam spojio, i povezao na kontrolni port na mikrokontroleru koji ce da mi sluzi za odredjivanje smera komunikacije. Kad probam komunikaciju pomocu nekog rs485 na 232 konvertora, na terminalu primam ono sto posaljem, odnosno nemam odgovor od PICa, vec dobijem poslato. Nasao sam na nekim stranim forumima da treba da postavim neke otpornike izmedju tx i rx, ali mi malo nije jasno...
Ako bi neko hteo da okaci neku semicu koja mu je proradila, pa da prekontrolisem i korigujem ovu moju.
I jos jedno pitanje...
Da li je moguce, odnosno da li se praktikuje da se na jednom pic-u koriste dva sn75176, da jedan stalno bude u stanju slanja, a drugi u stanju prijema, i kako se onda povezuju oni medjusobno... Tako se (cini mi se) ne bih morao zezati sa dvosmernom komunikacijom softverski...
Hvala unapred...
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: RS485 problemcici...19.07.2010. u 08:01 - pre 166 meseci
Za UART komunikaciju između dva i više mikrokontrolera bih preporučio (za mene) bolju alternativu od RS485 tranceiver-a koju koristim već godinama:
1) Umesto RS485 koristiti CAN transiver. Rx transivera ide na Rx mikrokontrilera, isto važi i za Tx. Prebacivanje smera komunikacije nije potrebna.
2) U tom slučaju sve što se šalje preko Tx biće i primljeno na Rx.
3) U slučaju da dva ili više mikreokontrolera u isto vreme šalju neku informaciju, svaki µC može da proveri da li je ono što šalje stvarno i primljeno.
Ako je primljeno više nula u bajtu nego što je poslato, to znači da neki drugi µC šalje bajt većeg prioriteta(nula je na CAN-Busu dominantno stanje, jedan recesivno).
4) Onaj µC koji šalje taj bajt većeg prioriteta( a manjeg sadržaja) neće ni primetitit da je neki drugi µC pokušao nešto da šalje i može da šalje svoje podatke i dalje.
5) Onaj µC koji je primetio da neko u isto vreme šalje bajt sa većim prioritetom, odustaje od daljeg prenosa podataka i čeka da se prenos prvog µC završi
i pokušava kasnije da pošalje svoje podatke, kao kod pravog CAN protokola.
6) Na taj način se vrši arbitriranje na busu sa dva ili više µC.

Naravno treba taj prenos podataka spakovati u Ramove(Frame) sa tačno definisanim zaglavljem(Header), podacima(data field) i nekom kontrolnom sumom na kraju.
U Header-u bi trebalo da se pored identifikacije rama nalazi i podatak o dužini samog rama, uključujući i kontrolnu sumu.

Još pitanja?
 
Odgovor na temu

ruzmarin84
obradovic
kraljevo

Član broj: 141743
Poruke: 33
*.adsl-a-8.sezampro.rs.



Profil

icon Re: RS485 problemcici...19.07.2010. u 16:49 - pre 166 meseci
Imam jos jedno pitanje...
U mom slucaju potrebno je samo da povezem dva mikrokontrolera, bez potrebe za dodavanjem jos. Vazno je samo da dobacim nesto manje od 200m. Da li bih morao, da menjam kod da bi to proradilo na CAN magistrali? I koji chip mi preporucujes da koristim?
Ako imas mozda bi mogao da okacis neku semu, da znam kako to da povezem
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: RS485 problemcici...20.07.2010. u 09:03 - pre 166 meseci
Citat:
Komunikacija treba da se ostvari izmedju dva PICa. Oni komuniciraju veoma dobro preko serijske veze...

Jedan je Master a drugi Slave, ili svako može da šalje u svakom trenutku(Multimaster)?
Jesi li razmišljao o protokolu?
Citat:
Nasao sam na nekim stranim forumima da treba da postavim neke otpornike izmedju tx i rx, ali mi malo nije jasno...
Da, Rx i Tx pin treba da imaju Pull-Up prema VCC od recimo 10k. Razlog je taj da ovi pinovi budu na definisanom stanju i kada je µC bez napona,
ili kada se resetuje.
Citat:
Da li je moguce, odnosno da li se praktikuje da se na jednom pic-u koriste dva sn75176, da jedan stalno bude u stanju slanja, a drugi u stanju prijema, i kako se onda povezuju oni medjusobno...

Praktikuje se, ali ti onda treba dva para provodnika(+masa). Ako koristiš neki CAN tranceiver onda ti treba samo jedan par(+masa).
Citat:
Tako se (cini mi se) ne bih morao zezati sa dvosmernom komunikacijom softverski...

Kao što sam već opisao, sa CAN transiverom sve što se pošalje preko Tx biće i primljeno preko Rx, a ako neko drugi šalje podatke onda se oni (naravno) pojavljuju samo na Rx pinu CAN transivera.
I to bez ikakvog prebacivanja pijem-predaja.
Citat:
Da li bih morao, da menjam kod da bi to proradilo na CAN magistrali? I koji chip mi preporucujes da koristim?
Transiver služi samo kao posrednik, logičko 1 se prenosi kao logičko 1, bez obzira da li promene u vremenu logičkog nivoa odgovaraju CAN ili UART normi. To je samo
fizički posrednik. Sa stanovišta softvera ti je isto da li si ta dva PIC-a spojio direktno žicama(Tx na Rx i obratno) ili između imaš neka dva transivera(RS485, CAN, RS232).
Koji bi mogao koristiti? Možda PCA82C251(Philips) ili MCP2551(Microchip).
Samo obrati pažnju da brzina prenosa(baud rate) ne bude preniska jer većina ovih transivera "ne podnosi" kada je Tx isuviše dugo na 0, jer je ovo dominantno stanje i ako je
jedan od čvorova defektan ili ima softversku grešku ona bi logička 0 na Tx pinu zatvorilo komunikaciju između ostalih čvorova. Pogledaj uostalom datasheet.

Citat:
Vazno je samo da dobacim nesto manje od 200m.

Vodi računa da se oba uređaja, ondnosno njihova masa, 0V, NE UZEMLJUJU jer se može desiti da je potencijaljna razlika isuviše velika i transiveri onda ne mogu da radi.
Zato NE UZEMLJAVATI ili uzemljiti SAMO jedan uređaj, a drugi treba da dobije masu(0V) ili preko širma ili preko dodatnog provodnika većeg poprečnog preseka.
Prikačeni fajlovi
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
217.169.223.*



+10 Profil

icon Re: RS485 problemcici...20.07.2010. u 09:25 - pre 166 meseci
Ovako sam ja pravio i radi. Otpornik od 120R koji je vezan na A i B stavljas samo na dva uredjaja prvi i zadnji u nizu a svi ostali izmedju idu bez njega. Bitno je na komunikacionom vodu dobiti impendansu oko 60R.
__*__
*___*
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: RS485 problemcici...

[ Pregleda: 8407 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.