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


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Ned Apr 17, 2011 11:32 pm Naslov sporočila: Linx RF in mikroC |
|
|
Rad bi izdelal napravo, ki bo lahko sprejemala podatke iz druge naprave. Pošiljal bom temperaturo ozračja. Naročil sem LINX sprejemnik in oddajnik. Programiram v mikroc. Uporabil sem example za manchester kodiranje, vendar na LCD dobim samo naključne znake ne glede na to, ali je oddajnik prižgan ali ne. Če odstranim RX in TX in mikrokrmilnika povežem z žico, dobim lep sprejem. Torej predvidevam, da je s kodo vse vredu? V priponki prilagam sheme, izvorno kodo in nekaj slik mojega projekta.
Prosim, če si lahko kdo vzame nekaj minutk in pregleda sheme in izvorno kodo, če mogoče najde kakšno napako. RF modul lahko napajam z max 3.6V zato imam za napajanje sprejemnika in oddajnika kar posebaj 3V batarijo. Čip pa napajam s 5V. Datasheet sem prebral vsaj 3x v celoti in mi je kar precej razumljiv zato nimam pojma, kje sem naredil napako. Uporabljam 8MHz kristal, za anteno pa sem uporabil bakreno žico dolžine približno 17cm. Nekje sem zasledil, da naj bi bila antena ozemljena. V datasheetu piše, da potrebujem 50 ohmsko anteno. Poizkusil sem jo tudi ozemljiti in dodati 50 ohmski upor, vendar ni bilo nobene razlike.
Nastavitve projekta v mikroc
Povezava do nastavitev
Kratek film o delovanju naprave
Povezava do YouTube
Oddajnik
- Datasheet
- Protoboard
- Schematic
| Koda: |
// Manchester module connections
sbit MANRXPIN at RC7_bit;
sbit MANRXPIN_Direction at TRISC7_bit;
sbit MANTXPIN at RC6_bit;
sbit MANTXPIN_Direction at TRISC6_bit;
// End Manchester module connections
char index, character;
char s1[] = "TEXT";
void main() {
ADCON1 = 0x0F;
CMCON = 0x07;
//TXSTA = 0x06;
Man_Send_Init();
while(1) {
Man_Send(0x0B);
Delay_ms(100);
character = s1[0];
index = 0;
while(character) {
Man_Send(character);
Delay_ms(90);
index++;
character = s1[index];
}
Man_Send(0x0E);
Delay_ms(1000);
}
} |
Sprejemnik
- Datasheet
- Protoboard
- Schematic
| Koda: |
// LCD module connections
char GLCD_DataPort at PORTD;
sbit GLCD_CS1 at RB1_bit;
sbit GLCD_CS2 at RB0_bit;
sbit GLCD_RS at RB2_bit;
sbit GLCD_RW at RB3_bit;
sbit GLCD_EN at RB4_bit;
sbit GLCD_RST at RB5_bit;
sbit GLCD_CS1_Direction at TRISB1_bit;
sbit GLCD_CS2_Direction at TRISB0_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB3_bit;
sbit GLCD_EN_Direction at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB5_bit;
// End LCD module connections
// Manchester module connections
sbit MANRXPIN at RC7_bit;
sbit MANRXPIN_Direction at TRISC7_bit;
sbit MANTXPIN at RC6_bit;
sbit MANTXPIN_Direction at TRISC6_bit;
// End Manchester module connections
char error, ErrorCount, temp;
void main() {
ErrorCount = 0;
ADCON1 = 0x0F;
CMCON = 0x07;
//RCSTA = 0x07;
//TRISC.F5 = 0;
Glcd_Init();
Glcd_Fill(0x00);
Glcd_Write_Text("RF MODULE TEST", 0, 0, 1);
Man_Receive_Init();
while(1) {
while(1) {
temp = Man_Receive(&error);
if(temp == 0x0B) break;
if(error) break;
}
do {
temp = Man_Receive(&error);
if(error) {
Glcd_Write_Char('?', 0, 3, 1);
ErrorCount++;
if(ErrorCount > 20) {
temp = Man_Synchro();
//Man_Receive_Init();
ErrorCount = 0;
}
}
else {
if(temp != 0x0E) Glcd_Write_Char(temp, 0, 3, 1);
}
Delay_ms(25);
}
while(temp != 0x0E);
}
} |
| Opis: |
| Sheme ter izvorna koda mojega projekta |
|
 Download |
| Ime datoteke: |
rf.rar |
| Velikost datoteke: |
2.29 MB |
| Downloadano: |
5 krat |
|
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Tor Apr 26, 2011 6:41 pm Naslov sporočila: |
|
|
| Ok zadeva zdaj deluje, ampak sem mogu prestavit na UART protokol. Zdaj pa imam novo težavo. Podatki se lepo prenašajo do 400m ampak samo če imam en oddajnik. Ko priklopim drug oddajnik se podatki nehajo prenašat. Kolker sem bral, lahko UART protokol komunicira samo z eno napravo. Torej kako bi zadevo sprogramiral, ker potrebujem 4 oddajnike in 1 sprejemnik. Kakšna ideja? Pri manchester knjižnjici sem imel veliko težav, ker nisem dobil čistega signala na sprejemniku.
|
|
| Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4882 Aktiv.: 19.76 Kraj: Kobarid
|
Objavljeno: Sre Apr 27, 2011 8:01 am Naslov sporočila: |
|
|
Saj upam, da oddajnike izklapljaš, ko ne oddajaš? V nasprotnem primeru nebo šlo....
_________________ Lep dan
Simon |
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Sre Apr 27, 2011 10:55 am Naslov sporočila: |
|
|
Saj ravno to me zanima. Kako naredit, da ne bo potrebno izklapljat oddajnikov. Vsak oddajnik mi pošlje informacijo v intervalu 300ms. Drugi oddajnik nikakor "ne pride zraven" dokler prvemu dejansko ne odklopim napajanja. Če samo prekinem oddajanje tudi ne pomaga.
Kako so pa recimo narejene one naprava za televoting? Imamo eno napravo, ki posluša in recimo 40 oddajnikov, ki pošiljajo informacije. Vem, da vse hkrati ne morejo pošiljat informacij, ampak vseeno jo lahko če nekdo ne oddaja.
|
|
| Nazaj na vrh |
|
 |
s55m Član


Pridružen-a: Sob 06 Jan 2007 17:07 Prispevkov: 2696 Aktiv.: 11.48 Kraj: Plovdiv-Bolgarija
|
Objavljeno: Sre Apr 27, 2011 11:06 am Naslov sporočila: |
|
|
Sinhronizirano oddajanje v času (vsak oddajnik ima svoj time slot) ali oddajanje na 40 različnih frekvencah. Vsekakor ob uporabi ene same frekvence ne moreš pričakovati, da bo šlo brez ugašanja drugih oddajnikov. In ugašanje drugih oddajnikov ne pomeni tega, da prenehaš oddajati podatke ,ampak to, da popolnoma odstraniš VF nosilec. Nisem pregledoval datasheetov (no sedaj sem jih) tvojih modulov, a verjetno je kaka možnost, da to narediš elektronsko (LADJ v tvojem primeru, a je bolje prekiniti napajanje, da si gotov, da ne moti ostalih)). Kako bodo moduli vedeli, kdaj so na vrsti za pošiljanje, pa je že druga plat zgodbe, saj nimajo nobenega sprejemnika, sprejemna stran pa tudi ne oddajnika, da bi jim sporočila, kdaj so na vrsti za oddajo.
_________________ Physics sucks! It always works against "great" ideas!  |
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Sre Apr 27, 2011 11:23 am Naslov sporočila: |
|
|
ok to mi je jasno. ne razumem pa tega, kako bo potem naprava delovala nekje na prostem, kjer bo recimo več takšnih naprav na frekvenci 433MHz. naprava gre potem najbrž na trg, kjer bodo izdelki ločeni glede na serijsko številko. in če se serijska na sprejemniku in oddajniku ujemata, potem bo sprejemnik sprejel podatke.
Torej bi bilo lažje če bi imel 5 transiverjev?
|
|
| Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4882 Aktiv.: 19.76 Kraj: Kobarid
|
Objavljeno: Sre Apr 27, 2011 12:03 pm Naslov sporočila: |
|
|
Haaa sedaj smo pa tam. Lahko bi to že na samem začetku omenil.
Glej stvari se ponavadi rešijo tako. Vsak oddajnik ima tudi sprejemnik. (no dovolj je tudi samo detekcija signala - DCD)
Torej ko hoče neki oddajnik na oddajo preveri DCD. Če ni signala odda svoje podatke. V primeru, da signal je počaka 10ms*+ naključni čas med 0 in 10ms* To slednje je zelo pomembno. Namreč če se spomnita dva oddajnika hkrati oddati jima do konca življenja ne bo uspelo.
* ta vrednost je izmišljena. Ta čas je čas, ki ga oddajnik rabi za prenos podatka+ malo rezerve
_________________ Lep dan
Simon |
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Sre Apr 27, 2011 12:45 pm Naslov sporočila: |
|
|
Ja razumem. Ampak poglejmo še iz te strani. Jaz izdelam svojo napravo (en sprejemnik in štiri oddajnike). Poskrbim, da se oddajniki po končanem prenosu izklopijo za nekaj ms in vsi smo srečni. Potem pa grem testirat svojo napravo na letališče in tam se najde neka oseba, ki se igra na isti frekvenci kot jaz in nikoli ne preneha oddajat signala na svojih oddajnikih. Torej po neki logiki moji oddajniki ne bojo mogli nikoli "priti zraven" in jih moj sprejemnik ne bo "nikoli slišal". Upam, da veste o čem govorim?
@SimonS: Kako to misliš, da ima vsak oddajnik tudi sprejemnik? Moj ga ziher nima
|
|
| Nazaj na vrh |
|
 |
igor_k Član

Pridružen-a: Pon 19 Jul 2004 11:44 Prispevkov: 1031 Aktiv.: 4.17 Kraj: Rače
|
Objavljeno: Sre Apr 27, 2011 2:22 pm Naslov sporočila: |
|
|
Pa saj imaš na oddajniku pin PDN, s katerim izklopiš oddajnik. Ti moreš samo urediti, da ti oddajnik ne oddaja prepogosto, torej naj oddaja vsako minuto za (recimo) 50ms. Potem je mala možnost, da bosta dva oddajala istočasno. Seveda moraš poskrbeti, da je tisti čas, ko ne oddaja, naključno dolg (recimo 60-70s), da ne pride do sinhoniziranega oddajanja dveh oddajnikov.
Če pa je nekdo z oddajnikom na isti frekvenci potem pa je jasno, da nimaš možnosti.
Vsaj s temi moduli ne.
|
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Sre Apr 27, 2011 2:35 pm Naslov sporočila: |
|
|
Ja zdaj mi je vse jasno Skos sem si narobe predstavljal kako delujejo te frekvence. Torej bom potreboval takšne module, s katerimi bom lahko nastavljal kanale, če se ne motim.
|
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Sre Apr 27, 2011 5:56 pm Naslov sporočila: |
|
|
Evo zadeva deluje z dvema oddajnikoma Zdaj pa samo še tretjega in četrtega skupej spravit. Ta prva naprava lahko deluje samo na 433.92MHz zato se ne da spreminjat kanalov. Morem pa za naslednjič naročit takšne module ki imajo malo večji frekvenčni razpon, če veste kaj mislim (da lahko na sprejemniku nastaviš kanal, na katerem boš). Upam, da sem prav razumel vse skupaj. Ker se ne sme zgodit, da bosta dva uporabnika imela isto frekvenco
|
|
| Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4882 Aktiv.: 19.76 Kraj: Kobarid
|
Objavljeno: Čet Apr 28, 2011 10:41 am Naslov sporočila: |
|
|
Tudi to je možnost, da ima vsak oddajnik svoj kanal (frekvenco). Ampak tu je pa zopet hec, da moraš imeti zopet za vsak oddajnik svoj sprejemnik, ki sprejema določen kanal (frekvenco). Če imaš več sprejemnikov vezanih na eden UART ob primeru več hkrati sprejetih signalov zopet izgubiš podatke. S tem zopet nisi rešil nič.
V praksi so stvari narejene tako, kot sem ti napisal. Nekateri imajo dodano opcijo, če po npr. 10 poizkusih še ne dobi proste frekvence gre prisilno na oddajo.
Je pa tudi res, da če nekdo oddaja na isti frekvenci... beri zakon močnejšega.
_________________ Lep dan
Simon |
|
| Nazaj na vrh |
|
 |
MarkoM Član

Pridružen-a: Tor 12 Sep 2006 15:29 Prispevkov: 2825 Aktiv.: 11.84 Kraj: Lovrenc na P.
|
Objavljeno: Čet Apr 28, 2011 12:24 pm Naslov sporočila: |
|
|
Poglej zigbee module. Npr. od microchipa bi moral sprejemati in oddajati na par 100m, saj ima ojačenje 20dBm. Z ojačenjem 0dBm, sem na prostem (LOS) s podobnimi moduli komuniciral do cca. 200m.
Na teh lahko nastavljaš poljubne kanale, kodiraš podatke, v glavnem zigbee ti nudi precej možnosti. Sam bi se za to odločil, sploh če misliš to serijsko proizvajati.
|
|
| Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4882 Aktiv.: 19.76 Kraj: Kobarid
|
Objavljeno: Čet Apr 28, 2011 12:33 pm Naslov sporočila: |
|
|
Drži
S tem se rešiš marsikakšne težave. Naši so nekaj delali za JENNIC-om. Poceni in imajo odlične knjižnice že pripravljene. V večini primerov sploh ne rabiš zunanjega mikrokontrolerja!
_________________ Lep dan
Simon |
|
| Nazaj na vrh |
|
 |
xpolhecx Član


Pridružen-a: Sre 02 Feb 2011 3:06 Prispevkov: 276 Aktiv.: 1.49
|
Objavljeno: Čet Apr 28, 2011 2:44 pm Naslov sporočila: |
|
|
Ravnokar sem se spravu pisat prispevek pa sta me prehitela. Zadeva je takšna. Naprava se bo proizvajala serijsko in moram zagotovit, da se naprave med seboj ne bodo motile. Torej potrebujem module, kjer lahko nastavljam frekvenco oziroma kanale in vas spet prosim za nasvet glede nakupa, ker morem nujno vedet do te sobote kaj bomo naročili.
Trenutno imam LR serijo in sem uspel prenašat podatke do 400m (v datasheetu piše do 900m). Potrebujem frekvenco 433MHz ali 902MHz pa recimo vsaj 20 do 30 različnih kanalov. Domet mora biti minimalno 300m. Gledal sem izdelke od Linxa in imajo takšne module (902MHz ~ 928MHz) ampak v datasheetu piše, da je domet do 300m (torej predvidevam da bojo nesli nekje do 100m kar je premalo). Moduli od Linxa so mi všeč, ker dejansko nimaš kaj dosti za nastavljat in so dokaj preprosti za uporabo.
Za vse nasvete vam bom zelo hvaležen Ta problem s štirimi oddajniki sem že rešil tako da vsak oddajnik oddaja v različnih intervalih ker ni takšne sile da bi se morali podatki prenašat tako hitro (oddaja 40ms, potem pa je na pavzi 800ms)
|
|
| 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: 233 dni
Powered by phpBB © 2001, 2005 phpBB Group
|