 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Sre Dec 10, 2008 1:53 pm Naslov sporočila: RTS ter DTR pri rs232 |
|
|
Pozdravljeni,
Povezati skusam WS2300 vremensko postajo z AVR-jem s pomocjo rs232 protokola. Da se WS2300 "zbudi" rabi linijo RTS high, DTR pa low. Zanima me ali je kot high dovolj +5V ali mora biti +8-15V?
LP, Damjan
|
|
Nazaj na vrh |
|
 |
polh Član


Pridružen-a: Pet 08 Apr 2005 18:27 Prispevkov: 225 Aktiv.: 0.95 Kraj: Maribor-Ljubljana
|
Objavljeno: Sre Dec 10, 2008 1:55 pm Naslov sporočila: |
|
|
To je odvisno od same postaje. Preveri kakšne nivoje vhodnih signalov zahteva ali če je kakšen MAX232 že na postaji.
Lp
|
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Sre Dec 10, 2008 2:02 pm Naslov sporočila: |
|
|
Kaksne nivoje zahteva ne vem (oziroma ne najdem podatkov). Bom preveril, ce je na postaji ze max232...sporocim.
LP, Damjan
|
|
Nazaj na vrh |
|
 |
polh Član


Pridružen-a: Pet 08 Apr 2005 18:27 Prispevkov: 225 Aktiv.: 0.95 Kraj: Maribor-Ljubljana
|
Objavljeno: Sre Dec 10, 2008 2:14 pm Naslov sporočila: |
|
|
Malo sem pobrskal po internetu in ima postaja v spec. navedeno, da ima com port za priklop na pc. To pomeni da potrebuje 8-15V vhodne signale(oz. kolikor pač so specifikacije rs232 protokola). Za pretvorbo 5V->8-15V bo pa najlažje če uporabiš namenski čip max232, ki ti naredi to pretvorbo.
|
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Sre Dec 10, 2008 2:25 pm Naslov sporočila: |
|
|
Kakor vem max232 pretvarja samo TX ter RX signale? Kako pa vezem DTR ter RTS preko max232 (uporabim TX2 ter RX2)?
LP, Damjan
|
|
Nazaj na vrh |
|
 |
polh Član


Pridružen-a: Pet 08 Apr 2005 18:27 Prispevkov: 225 Aktiv.: 0.95 Kraj: Maribor-Ljubljana
|
Objavljeno: Sre Dec 10, 2008 3:05 pm Naslov sporočila: |
|
|
Tocno tako. Max pretvarja samo nivoje. Max-u je vseeno kateri signal mu daš.
|
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2105 Aktiv.: 8.86 Kraj: Ljubljana
|
Objavljeno: Sre Dec 10, 2008 4:57 pm Naslov sporočila: |
|
|
RS232 nivoji.
|
|
Nazaj na vrh |
|
 |
PrimozL Član


Pridružen-a: Tor 21 Mar 2006 10:55 Prispevkov: 404 Aktiv.: 1.72 Kraj: okolica Vipave
|
Objavljeno: Sre Dec 10, 2008 10:12 pm Naslov sporočila: Re: RTS ter DTR pri rs232 |
|
|
damjanmi je napisal/a: |
Zanima me ali je kot high dovolj +5V ali mora biti +8-15V?
|
Večina RS232 čipov (MAX, HIN, 75232, ...) je povsem zadovoljnih, če jim daš namesto negativne napetosti 0V in za pozitivno napetost samo +5V. Običajno en 74HC14 na izhodu mikrokrmilnika povsem zadostuje tudi pri hitrosti 115200 bps.
Mogoče sem imel srečo, ampak nisem še naletel, da taka rešitev ne bi delala. Da se razumemo, to je za prototipe in domačo rabo. Resne naprave morajo še vedno zagotavljat pravilne napetostne nivoje.
LP Primož.
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.60 Kraj: Kranj - struževo
|
Objavljeno: Čet Dec 11, 2008 10:23 am Naslov sporočila: |
|
|
Predvidevam, da se vremenska postaja tudi napaja preko teh linij? Ali ima ločen napajalnik?
MAX poleg tega da pretvarja nivoje jih tudi invertira. Zato direktna povezava ne bo delovala.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Pet Dec 12, 2008 12:11 am Naslov sporočila: |
|
|
Napajanje ima posebaj. Avr se poveze, vendar prihaja do pogostih napak, tako da moram velikokrat ponoviti prenos, kdaj pa postaja sploh ne odgovori. Za DTR ter RTS linije sem uporabil kar 0, +5V.
LP, Damjan
|
|
Nazaj na vrh |
|
 |
s56al Član

Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 788 Aktiv.: 3.32 Kraj: JN66SI & JN76TM
|
Objavljeno: Pet Dec 12, 2008 8:47 am Naslov sporočila: |
|
|
WS-2300 uporablja RTS / DTR liniji samo za definicijo nivoja (in morda napajanje) komunikacijskega vmesnika RS-232. Ostali deli postaje se napajajo ločeno prek napajalnega konektorja. Definicijo nivoja zato, ker GND (pin 5) na RS-232 priključku WS-2300 ni povezan.
Na DTR /RTS pri WS-2300 zadošča -5V / +5V, sam sem v svoji aplikaciji (povezava s PIC, glej shemo na http://lea.hamradio.si/~s57nan/ham_radio/wx_aprs/wx_aprs.html ) ti dve napetosti peljal celo prek upora 220 Ohm in deluje brez težav. Poraba na teh dveh linijah je vsega nekaj mA.
Pomembno pa je vedeti tudi, da RS-232 vmesnik ni galvansko ločen od ostalega vezja WS-2300, kot bi morda lahko sklepal glede na lastno napajanje komunikacijskega vmesnika iz RTS in DTR. To je pomembno, če bi WS-2300 rad napajal iz česarkoli drugega, kot je priloženi zidni adapter. GND napajanja je približno na nivoju DTR (vmes je verjetno ena dioda ki povzroča padec 0,7V).
Če ni skrivnost, kaj nameravaš izdelati?
LP, Sandi
Nazadnje urejal/a s56al Pet Dec 12, 2008 8:54 am; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
s56al Član

Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 788 Aktiv.: 3.32 Kraj: JN66SI & JN76TM
|
Objavljeno: Pet Dec 12, 2008 8:51 am Naslov sporočila: |
|
|
damjanmi je napisal/a: |
Napajanje ima posebaj. Avr se poveze, vendar prihaja do pogostih napak, tako da moram velikokrat ponoviti prenos, kdaj pa postaja sploh ne odgovori. Za DTR ter RTS linije sem uporabil kar 0, +5V.
LP, Damjan |
Napake pri komunikaciji z WS-2300 so znana težava te vremenske postaje in se pojavljajo tudi pri 100% pravilnih nivojih na RS-232 priključku. So posledica nerodno napisanega firmwarea, ki v trenutkih, ko obdeluje informacijo iz vremenskih senzorjev, prekine komunikacijo na RS-232. Enako se dogaja, ko sinhronizira čas preko vgrajene DCF ure. V takih primerih je WS-2300 gluha za "povpraševanje" prek RS-232 ali pa prekine pošiljanje podatkov v sredini že začetega paketa in tega nikoli več ne nadaljuje. Grdo, ampak je treba vzeti v zakup. Z nekaj spretnosti pri programiranju so te težave enostavno rešljive s ponavljanjem povpraševanja.
LP, Sandi
|
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Pet Dec 12, 2008 9:49 am Naslov sporočila: |
|
|
Hvala za link ter obrazlozitev. Delam pa podobno kot ti, vendar bom jaz podatke prenasal preko gsm-a.
LP, Damjan
|
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Pet Dec 12, 2008 12:32 pm Naslov sporočila: |
|
|
Postajo sem povezal na avr preko max232 na DTR ter RTS sem pripeljal -8/+8 iz max232 pin 2 ter 6. Na avr-ju sem nastimal usart na 2400 8N1, avr ima frekvenco 8MHz.
Podatke lahko berem kadar postaja sprejema signal iz brezzicnih senzorjev (na zaslonu postaje se med tekstom temp ter humidity pojavi ikona) kadar pa omenjene ikone na zaslonu ni, pa podatkov ne morem brati. Postaja odgovori pravilno na init byte 0x06, odgovor je 0x02, ko pa posljem naslednji byte pa ni odgovora.
Statusni register UCSRA, ki ga avr uporablja pri serijski komunikaciji, sem "vezal" na portb, tako da lahko vidim status. Ko ne morem prebrati podatkov mi statusni register ne vklopi bita 7 - ta bit sporoci, da je sprejem 8 bitov koncan.
S56AL - kako si pa ti napisal program? Ne vem ali je problem v programu ali kje drugje.
LP, Damjan
|
|
Nazaj na vrh |
|
 |
s56al Član

Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 788 Aktiv.: 3.32 Kraj: JN66SI & JN76TM
|
Objavljeno: Pet Dec 12, 2008 9:41 pm Naslov sporočila: |
|
|
Vse, kar moraš vedeti, načeloma piše v datotekah v priponki. Datoteke sem pred časom snel s spleta, mislim pa, da spletna stran, kjer sem jih našel, več ne obstaja, zato jih pripenjam tukaj. Ostalo je stvar domišljije pri programiranju in pa tvojih zahtev, kako pogosto želiš sveže podatke s senzorjev oz. kako dolgo lahko ostaneš brez njih.
Program, ki sem ga spisal za vmesnik na prej navedenem linku par sporočil nazaj, komunicira z WS-2300 s pomočjo treh programskih "modulov" okvirno na naslednji način:
V glavni programski zanki se periodično proži poizvedba po podatkih, ki jih v aplikaciji potrebujem, v presledkih približno 7s. To je izvedeno s programskim modulom, imenujva ga "proži poizvedbo", ki za vsako različno poizvedbo (temp., ura, rH, p, ...) postavlja posebne zastavice (ustrezen bit v pomnilni lokaciji) za vsako od poizvedb in sicer ciklično v prej omenjenih časovnih zamikih. Ko drugi programski modul, ki prav tako teče v glavni programski zanki, imenujva ga "pošlji", to zastavico zazna, odpošilja po UART ustzrezen paket za poizvedbo po podatkih v zamikih eno sekundo. Tako "tečnari" vse dokler je dotična zastavica postavljena. Posamezni byte-i znotraj paketa se pošiljajo v fiksnih časovnih presledkih če se prav spomnim 10ms (10ms je perioda izvajanja glavne programske zanke, ki hkrati opravlja več opravil, na ta način je dosežen nekakšen "multytasking" ).
Tretji modul je realiziran v prekinitveni rutini UART, kjer se vsak na novo sprejeti byte po UART iz WS-2300, shrani v poseben sprejemni buffer tipa FIFO. Ob vsakem novem sprejetem znaku prekinitveni podprogram preveri, ali se v bufferju nahaja veljaven paket s podatki (header + veljaven checksum). Kakor hitro je veljaven paket prepoznan, ta isti modul podatke iz paketa prebere in shrani v ustrezne spremenljivke za nadaljno obdelavo ter briše pripadajočo zastavico, ki jo je postavil modul "proži oddajo". Aplikacija tako čaka s poizvedbami do postavitve naslednje zastavice oz. takoj prične z naslednjo poizvedbo, če je bila medtem s strani modula "proži poizvedbo" postavljena še kakšna od zastavic poizvedbe po podatkih.
Tako v principu. Je še nekaj podrobnosti (npr. prioritete pošiljanja paketov s poizvedbo kadar je zaradi neodzivnosti WS-2300 hkrati postavljenih več zastavic poizvedbe, ipd...) ampak to je pač treba rešiti glede na izvedbo programa tvoje aplikacije.
Za vsak primer je v glavni programski zanki še četrti modul, ki preverja veljavnost podatkov in če 3 minute ni svežega paketa z določenim podatkom odloči, da podatki s senzorja niso več na razpolago. Vendar pri normalno delujoči WS-2300 (priklučeni delujoči senzorji) takega primera v rednem delovanju nisem opazil, pa teče aplikacija z gornjega linka v tem trenutku na najmanj treh lokacijah sedaj že več mesecev zapored, na katerih delovanje redno spremljam.
Nekaj minut po vklopu (ne spomnim se več natančno koliko, morda 5 ali 8 ali nekaj podobnega) WS-2300 vedno skuša sinhronizirati svojo uro prek vgrajenega sprejemnika radijske ure DCF-77. Takrat prek vmesnika RS-232 ni možno dobiti podatkov lahko tudi do 3 minute.
Še en problem je znan za WS-2300 in tudi omenjen na več mestih na Internetu, ki pa se ne dogaja pri vseh serijah WS-2300. Gre je problem občasnega naključnega prikaza hitrosti vetra 25,5 m/s (92 km/h). Za podrobnosti poišči na spletu. Problem sem v svoji aplikaciji odpravil programsko s posebnim algoritmom.
Opis: |
|
 Download |
Ime datoteke: |
Komunikacija_ws2300_UART.zip |
Velikost datoteke: |
27.09 KB |
Downloadano: |
13 krat |
Nazadnje urejal/a s56al Pet Dec 12, 2008 9:52 pm; skupaj popravljeno 2 krat |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 9 dni
Powered by phpBB © 2001, 2005 phpBB Group
|