[ Anorgan @ 23.11.2004. 23:24 ] @
Zelio bih si sloziti sklopku pomocu 2 tranzistora, tako da jedan sluzi za ukljucivanje, drugi za iskljucivanje, ali sve to preko racunala i RS-232 porta. Ideja mi je da isprogramiram microcontroler P12C508 tako da ovaj skuzi kad mu ja posaljem podatak preko serijskog porta (u vidu "start" ili "1") da otvori jedan svoj port, a kada dobije drugi signal (u vidu "stop" ili "0"), zatvori prvi port i otvori drugi. Da li mi netko moze pomoci i gdje mogu naci vise informacija o tome?
[ obranko @ 25.11.2004. 03:51 ] @
Pozdrav,

Vidi se da znas sta hoces. Sve sto treba da uradis je da odredis koji ce pinovi PIC sluziti za komunikcaiju sa PC (1 pin je dosta plus masa - najbolje je da sa PC RS232 strane koristi neki od modem kontrolnih signala. ) a koji ce pinovi paliti i gasiti tranzistore (po jedan pin za svaki tranzistor). Zatim, zna se, sedi pa pisi kod za PIC. Kod ne bi trebao da ima vise od 20-30 bajtova.
Kod za PC je isto vrlo jednostavan. Kada korisnik pritisne dugme ON ti setujes kontrolnu liniju (modem kontrol signal) na visoko. Kada korisnik pritisne drugo dugme, ti setujes kontrolnu liniju na nisko.
PIC kod: posmatras ulaznu liniju sa PC RS232. Kada je visok napon ti ukljucis prvi tranzisor a iskljucis drugi. Kada ulazna linija ima nizak napon, ti iskljucis prvi tranzistor a ukljucis drugi.
U slucaj kada nije potrebno da napon na tranzistoru bude stalno visok kada ukljucujes/iskljucujes , onda gornji kod ima jednu malu izmenu. Kada ukljucis jedan tranzistor, startujes neki tajmer a kada on istekne iskljucis tranzistor.
[ Anorgan @ 25.11.2004. 20:33 ] @
Puno hvala na odgovoru. Ali ne bih hteo da koristim visok i nizak signal, vec da posaljem neki podatak u vidu jedinica i nula. Naime, nisam vest u programiranju mikrokontrolera, ovo mi je prvi uradak. Da li neko ima primer nekakve komunikacije RS-232 i PIC-a? Mozes li da mi objasnis malo bolje ovaj modem kontrol signal?
[ obranko @ 26.11.2004. 15:14 ] @
Pozdrav,

Jednostavnije je da koristis modem control signal-e. Ako zelis da koristis UART ("...vec da posaljem neki podatak u vidu jedinica i nula") program je nasto malo komplikovaniji. Ukoliko PIC ima ugradjen UART problem je minimalno komplikovaniji (naime treba da inicijalizujes UART, zatim da u petlji proveravas da li je primio podatak sa RS232 linije, pa da proveris koji je podatak i td...). Ako PIC nema UART, onde treba da korisits "bit bang" sto kada se prevede na normalan jezik znaci da moras da napravis prijemni deo UARTa softverski. To je za nijensu komplikovanije od predlozenih resenja. Ako zelis to da radis, javi pa da ti objasnim kako.
Da se vratim na modem control signal-e. RS232 komunikacija ima (izmedju ostalih i ove signale):
- TX (serial data out)
- RX (serial data in)
- RTS (request to send)
- jos nekoliko signala nebitnih za ovaj slucaj
Kolicina informacija koju ti zelis da prenese je 1 bit (iskljuceno/ukljuceno). Znaci dovoljno je da imas jednu liniju koja moze da ima dva stanja. Znaci dovoljno je da izaberes jedan od modem control signal-a (onaj koji je output a to je cini me se RTS).
UART u PC je kompatibilan sa 16450 uartom (podatke mozes naci na web-u).16450 ima kontrolni registar koji sluzi za setovanje modem control signal-a.
Kada zelis da posaljes signal ukljuci sklopku, u 16450 modem control register upises podatak koji setuje RTS liniju na 1. Kada zelis da iskljucis, upises podatak koji setuje RTS na 0.
U ovom slucaju ti modem control signal-e koristis kao da imas 1 bitni output port. To sto je ovaj signal namenjen za kontrolisanje modema ne menja na stvari.
Ako ti je potrebno jos neko objasnjenje, pitaj.
[ Anorgan @ 26.11.2004. 16:31 ] @
" u 16450 modem control register upises podatak koji setuje RTS liniju na 1. Kada zelis da iskljucis, upises podatak koji setuje RTS na 0."

Da li to znaci da je RS-232 port celo vreme ukljucen?

Hvala vam na savetima, jos malo cu se informirati na netu. Pozdrav!
[ obranko @ 26.11.2004. 18:53 ] @
Pozdrav,

Ako radis pod DOS-om ili Windows (a verovatno i pod svim ostalim PC operativnim sistemima) serijski portovi se inicijalizuju pri ukljucenju racunara. To znaci da je sve inicijalizaovano i da je port spreman da prima i salje podatke.
Da skratim, odgovor je DA.
[ InTheStillOfTheNight @ 02.12.2004. 13:00 ] @
a zašto jednostano ne radis sa paralelnim portom on je jednostavniji a za svaki relej sastavis shemu od 1 tranzistora........
[ strajo @ 05.01.2005. 15:18 ] @
e sad...hm sve zavisi sta stvarno hoces...
Elem interfejs PIC-PC je dosta lako napraviti pri cemu se, u istinu, najcesce ljudi odlucuju da to sa strane PC-a bude rs232. Ja sam konkretno radio sa 16F84 pri cemu sam morao napraviti svoju rutinu za rs232 komunikaciju na strani PIC-a (jer ovaj nema rs232 interface), jer sve sto sam nasao na netu za rs232 i pic ili ne radi ili radi ali nepouzdano. Sad postoji vise faktora koji tu mogu prestavljati problem:
1. RS232 kao komunikacija kod koje prijemnik zna da je na komunikacionoj liniji 0 ili1 gledajuci razliku potencijala izmedju komunikacione linije i mase je jako podlozna smetnjama t.j. uticajima sredine. Sto je komunikacioni vod duzi, to je i greska veca, sto znaci da ako hoces pouzdan sistem moras ubaciti i neki protokol, odnosno skup pravila komunikacije, cime bi stitio korisan podatak (nek se ljudi ne zavaravaju sa bitom pariteta - nema tu ljeba, CRC - prekomplikovano)
2. Sta se desava sa uredjajem kad otkacis PC od njega? Ako hoces da on pamti zadnje sto si mu poslao onda tu dolazi i, recimo, neka mala memorija - par d flip-flopova.
Naravno, ukljucenje ili iskljucenje necega se radi preko relea - najjednostavnije. (gledaj da nadjes one iskrine PR (postanski relej, al moze da progura oko 6 ampera cini mi se)

E sad predlog:
Sto se tice komunikacije radi sa RS485, dakle napravi konvertor RS232-RS485. Tad komunikacioni medj, t.j. kabl mozes razvuci do 1500m, odnosno kilometar i po. Zavisno od upotrebljenog drajvera za RS485, prijemnika mozes imati do 255 po liniji (npr LTC1485 - cini mi se, a 255 jer ih treba nekako adresirati, jel ).
Sam , nazovimo, komandni uredjaj radi sa D flip-flopom da bi pamtio stanje

I najposle: Ako si se toliko zarazio s tim, dio mog diplomskog rada mogu da ti sibnem na mail, gdje sve lijepo pise sta i kako treba uraditi, ukljucujuci i assemblerske sekvence, kako na PC-u tako i na PIC-u

Pozdrav i izvinite na gnjavazi