RX868FSK1/TX868FSK1 - funkce a spolehlivost spojení

Zdravím,
rád bych oživil toto téma.
U Flajzara jsem koupil tyto moduly:
flajzar.cz/vf-moduly-868mhz/ … aturni.htm
flajzar.cz/vf-moduly-868mhz/ … hz-fsk.htm

Na vysíláč přivádím dva signály ENABLE a DATA, enable nastavím na 1, chvilku počkám a odešlu data. Na příjímači se ale data neobjeví.
Na výstupu příjímače je neidentifikovatelný sled signálu. Viz obrázek v příloze.

Nemáte někdo radu?

Zkus úplně nakrátko uzemnit anténu přijímače a uvidíš, co leze na výstupu. Je také otázkou, jak mají tyto moduly (přijímací) vyřešenu selektivitu na daném kmitočtu. To co tam máš vidět za rušení, může být šum nebo třeba nějaká telemetrie. I když většina meteostanic používá 343MHz teplotní čidla. Kdysi jsem bojoval s přijímačem od pohonu brány na obou kmitočtech (343 a 868MHz). Malý dosah ovladače ze dne na den. Bylo to rušením z nedaleké GSM BTSky. Sice vysílala na vyšším kmitočtu, ale hltilo to vstup toho přijímače. Pomohla mi pásmová propust na kmitočet 868MHz ( ivo-pt.cz/antenni-propust-pf04-x-i2819.htm ). Dokonce jsem to s nimi i konzultoval a v záloze jsem měl připraven i 16db zesilovač. Ten nakonec nebyl potřeba. To pásmo GSM je docela blízko. Možná tam něco náhodně proleze na vstup.

Tak jsem anténu uzemnil, ale furt z výstupu něco leze, asi to zkusím reklamovat.

Při neaktivním vysílači z výstupu přijímače pořád něco poleze. Výstup se na pár ms uklidní v okamžiku, kdy aktivuješ vysílač. Používám vysílače a přijímače HM-R868 a HM-T868 od HOPE MICROELECTRONICS z TME. Tam se vysílač automaticky aktivuje změnou logické hodnoty na vstupu. Poté přenáší data na přijímač. Pokud se 70ms neobjeví změna log. úrovně na datovém vstupu, tak se vysílač deaktivuje (to je vlastnost vysílacího modulu). Z přijímače lezou nějaký “data” trvale a Ty musíš odfiltrovat ty svoje. Osobně používám na přenos dat UART - a to tak, že posílám sekvenci 0xAA s mezerou o něco větší, než 1 byte pro sesynchronizování přijímače. Po sekvenci bytů 0xAA odešlu přesný počet bytů 0x55 (jako klíč k odlišení synchronizační sekvence a dat) a po něm již následují vlastní data. Sekvence 0x55 a data už nepotřebují mezeru mezi byty, protože přijímač je s vysílačem sesynchronizovaný. Pokud bys nepoužíval krystal (bezpodmínečná nutnost použití krystalu při použití UARTu je jenom mýtus), je dobré nechat mezi jednotlivými byty také nějakou mezeru. Většinou stačí na přijímači nastavit 1 stop bit a na vysílači 2 stop bity. Tím na přijímací straně dosahneš de-facto 1 bit mezeru mezi byty kvůli udržení synchronizace.

Tak jsem zkusil vysílat UART bez zpoždění mezi jednotlivými relacemi a funguje to :slight_smile:

Zdravim
otviram toto tema protoze chci pouzit tyto moduly v aplikaci a mam par dotazu…
jakym zpusobem resite prijem a rozpoznani dat ? kdyz teda z toho porad “neco” leze tak je asi blbost pri pouziti uartu to hodit do preruseni asi co ?

Jak jsem psal výše, dělal jsem zařízení s moduly HOPE MICROELECTRONICS. Příjem řeším pomocí UARTu a přerušení. Když se nevysílá, tak to chytá samozřejmě blbosti, ale jakmile se zapne vysílač, je na lince klid. Takže zapnu vysílač a odešlu preamble 20x 0xAA, 10x 0x55. Mezi jednotlivými byty je “klid” na dobu jednoho a půl bytu kvůli synchronizaci přijímače. Na straně přijímače počítám 0xAA. Pokud jich napočítám alespoň 10 bez přerušení, očekávám 0x55. Jakmile přijde přesně 10x 0x55, vím, že následují data a jsou odfiltrovány nesmysly, které to chytá, když se nevysílá. Vysílač je nastaven na 8N2, přijímač na 8N1. Tím se automaticky zajišťuje synchronizace vysílače a přijímače při dlouhých paketech (nepoužívám krystaly). Data jsou pak zabezpečena tím, že posílám byte a za nim hned jeho negaci (jenom u dat, nikoliv u preamble). U přijímače zkontroluji, jestli souhlasí data a negace a pokud ne, zastavím příjem a čekám na další preamble.

Takže přerušení bych nezavrhoval. Stejně musíš to, co leze z přijímače nějak trvale zpracovávat (zahazovat/analyzovat/přijímat) a pomocí přerušení je to asi nejelegantnější. Ber to tak, že trvale přijímáš data a z nich vybíráš pouze ty, které potřebuješ.

noo, mam mensi problem s RX868FSK1,
primac(TX868FSK1): data prijmam pres preruseni a hned je posilam do PC,(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,ERRORS,STOP=2)
vysilac (RX868FSK1):nastavim enable na log 1, pockam 1ms, odesilam 20x 0xaa + 10x 0x55 + data 8bit + data negovane ,enable do log 0,2x po sobe,to cely v sekundovych intervalech (baud=2400,xmit=PIN_c6,rcv=PIN_c7,ERRORS,UART1,STOP=1)

a na strane primace mezi tim bordelem nic neleze, nic co by pripominalo nakej naznak vysilanych dat, pak sem prisel cirou nahodou kdyz ten modul chytnu jemne mezi prsty ze strany zacne to posilat , pokud ho pustim zase to nejde,
pak sem skousel nechat enable v log 1 a vysilat, nic , jen bordel, opet pri uchopeni modulu to zacalo sypat data v sec. intervalech a vysila to i kdyz ho pustim az do vypnuti napajeni

takle se chovaj dva vysilaci moduly,odskouseno s 2ma ruznimi PICy pri napajeni 5V, 3,3V , 3V z baterek,zadna zmena
vubec nechapu cim to je, nejake napady ?

[code]while(true)
{
output_high(LED);
delay_us(500);
output_high(ENABLE);
delay_ms(1);
for(l=0;l<2;l++)
{
for(i=0;i<20;i++)
{putc(0xaa); delay_us(10);}
for(i=0;i<10;i++)
putc(0x55);
putc(j);
k=~j;
putc(k);
}
delay_us(50);
//output_low(ENABLE);
delay_us(500);
output_low(LED);

delay_ms(1000);
j++;

}[/code]

To vypadá, jakoby moduly měly problémy s rozběhem oscilátoru …

I jemný dotik na ten oscilátor a jde to. Je blízko na straně takže je možný že když to chytnu tak to má vliv na ten oscilátor ? Šlo by tomu nějak pomoct ? Přidat kondik/odpor

Zkus se inspirovat tady : petr-kubac.blog.cz/1206/vidlakov … cilatory-3

Jako první bych zkusil ten Rf (cca 1M) paralelně na krystal.

takze: skousel sem ten odpor, bez vysledku, ale, po pripajeni to fungovalo a za chvily uz zase ne, prisel sem na to ze kdyz se to trochu ohreje tak to jede i bez toho odporu,nemel sem cas se s tim patlat tak sem objednal moduly co si zminoval vyse ale na 433mhz (HM-R433/HM-T433) a ty jsou v pohode,na 868MHz nemaj porad primac

k tem modulum HM-R433/HM-T433:
primac-antena cca 17cm dratku,4.8V,umisteno na balkone ve 4p
vysilac-antena pro 868MHz,43mm od flajzara…,2.7-2.55V,v ruce na louce

putc(0xff); delay_ms(1);// putc(0xff); delay_ms(1); putc(0xff); delay_ms(1); for(l=1;l<3;l++) { for(i=0;i<20;i++) {putc(0xaa); } for(i=0;i<10;i++) {putc(0x55); } putc(l); putc(key); k=~key; putc(k); delay_us(500); }prima viditelnost,cca 330m s antenou jak koliv (proste v ruce za chuze),nad 330m pouze (spolehlive) s antenou kolmo k zemi az do 490m,takze spokojenost