# RS232 / USB / Bezvadu komunikācija >  HM-R un HM-T bezvadu moduļi

## Onkulis

http://web.argus.lv/shop/productinfo...NS/hwindex.htm
http://web.argus.lv/shop/productinfo...NS/hwindex.htm

868 MHz, FSK modulācija. Ieslēdzot tikai uztvērēju, kas caur max232 pieslēgts pie COM`a, terminālī redzami kautādi random simboli- troksnis:


Savkārt ja raidītājs ir ieslēgts un sūta datus(no kontroliera), tad tie tiek saņemti bez traucējumiem. Periodiski sūtot simbolus ar intervālu 0.1s troksnis nav redzams vispār, tikai tad uzkarās termināls. 

Vai tā ir jābūt? Varbūt kādam ir pieredze ar šiem moduļiem?

----------


## JDat

Kā sauc to mikreni kura tur uzlodēta virsū?

----------


## next

> Periodiski sūtot simbolus ar intervālu 0.1s troksnis nav redzams vispār


 Nu tak manuaalii skaidri rakstiits:


Vari proveet shito fiichu likvideet, bet tad raidiitaajs nepaartraukti straavu teerees.

----------


## Onkulis

> Kā sauc to mikreni kura tur uzlodēta virsū?


 Bez nosaukuma. 




> Nu tak manuaalii skaidri rakstiits:
> 
> 
> Vari proveet shito fiichu likvideet, bet tad raidiitaajs nepaartraukti straavu teerees.


 Tas ir rakstīts par raidītāju. Es prasu vai tā ir uztvērēja normāla darbība.

----------


## karloslv

> Nu tak manuaalii skaidri rakstiits:
>  3978
> 
> Vari proveet shito fiichu likvideet, bet tad raidiitaajs nepaartraukti straavu teerees.


 Upd: Pārlasīju, sapratu, ka tas par standby attiecas tikai uz raidītāju. Tad man nav ideju, kāpēc, ja nu vienīgi tiešām radio traucējumu fons ir pietiekams, lai raidītājs to uztvertu. Var pārbaudīt barošanu, vai tā ir pietiekami tīra.

Vienkāršs fiksais labojums būtu protokola līmenī ieviest ziņojuma sākuma indikāciju, katras pārraides sākumā sūtīt "XXXXX" vai ko tādu, kas troksnī rastos ar mazu varbūtību.

----------


## zzz

Leetie modulji ir taisiiti uz superregjeneratora baazes, taa kaa troksni bez signaala shie var sataisiit cik tik vajag, jo iipashi ja kjiinieshi ir ietaupiijushi visu iespeejamo. 

Vai taa ir normaala uzvediiba tieshi shim modelim, zina dievinsh un pashi kjiinieshi. Datashiitaa shie neko praatiigu uzrakstiijushi nava, var meegjinaat pajautaat razhotaajam pa taisno.

----------


## Onkulis

Acīmredzot vienīgais risinājums ir likt klāt kontrolieri uztvērēja galā un ieviest indeksāciju. Tā laikam sanāk ja grib pa lēto  :: . Tikai nesaprotu kapēc terminālis karās no tās datu plūsmas.

----------


## next

Terminaalis var uzkaarties tikai pats peec savas iniciatiivas.
Varbuut datu buferis paarpildaas a varbuut kautko no taas zupas interpretee kaa vadiibas komandas.

PS. rekur jau citi arii pamociijushies ar tiem shtruntiem:
http://easyelectronics.ru/radiomodul...resheniya.html

----------


## Onkulis

> Terminaalis var uzkaarties tikai pats peec savas iniciatiivas.
> Varbuut datu buferis paarpildaas a varbuut kautko no taas zupas interpretee kaa vadiibas komandas.
> 
> PS. rekur jau citi arii pamociijushies ar tiem shtruntiem:
> http://easyelectronics.ru/radiomodul...resheniya.html


 Kāds var izskaidrot šo?

Нашел — если отправить 255, то канал поднимается сразу же и шлет дальше данные без ошибок вообще.

Es nesapratu kādā sakarā sūta 255? Sūta kā char? Un kas un kapēc tad notiek? Tā ir iebūvētā komanda tajā raidītājā? Slikti saprotu pa krieviski. Man nebija nekādu problēmu, ka nepareizie simboli nāktu, vai ka nepareizi tiktu uztverti. Problēma ir tikai tā pļura, kas gāžās kad neraida.

----------


## JDat

Uztvērējam ir kaut kāda automātiskā regulēšana (kipa AVG vai tml) un tajā pat laikā nac sqeltch iestādāms. Tad kad tu neko neraidi, tad jamais klāusās "šņākoni" un pū pa datu pinu uz tavu seriālo portu. Tas 255 is domāts: nosūtīt 0xFF simbolu. Principā lai dabūtu daudz maz stabilus sakarus klāt jāiemauc arī error detection/error correction. Tur ir dažādi algoritmi. Tieši tas ar ko mikrokontrolieris varētu nodarboties.

Interesei paskaties izejas kodu priekš šitā verķa PDF programmēšanas dokumentā.
Tur ir tāds sākums:


```
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0x2D);//SYNC HI BYTE
RF12_SEND(0xD4);//SYNC LOW BYTE
RF12_SEND(0x30);//DATA BYTE 0
RF12_SEND(0x31);//DATA BYTE 1
```

 Sākumā tiek nosūtīts sync dati (0xAA;0xAA,0x2D;0xD4) lai uztvērējs saprot kas notiek. Ja uztvērējs saprot, tad tiek sūtīti tavi dati (0x30 (space simobls) 0x31 ("1" simbols).
Uztvērējs tev to tad dos ārā to kas sākas ar data byte 0 utt. Preamble un Sync nedos.

Tava uztvērēja konstrukcija ir salīdzinoši tupa un tev pašam jānodrošina lai uztvērējs saprot kas notiek. Vai nu paeksperimentē ar sync patterniem un uztvērēja softs sāk tālāk sūtīt/apstrādāt saņemots datu tikai pēc tam kad ir korekti saņemis sākumu, vai arī liec lai to dara mikrokontrolieris. Kādu sync pattern sūtīt lai strādātu stabili? To eksperimentālā kartā janoskaidro. Tā ka uz priekšu

----------


## next

> Es nesapratu kādā sakarā sūta 255? Sūta kā char? Un kas un kapēc tad notiek?


 Taapeec ka neizlasiiji visu.
Tur taaalaak komentaaros ir skaidrojums  :: 

Пока сидел в сортире понял откуда все беды....

----------


## karloslv

Labs apraksts, prieks lasīt, ka cilvēki domā un diskutē kvalitatīvi.

----------


## next

UART uztveereejs sinhronizeejas ar uztveramo baitu peec startbita saakuma.
Ja datu liinijaa ir troksnis tad visu laiku notiek sinhronizaacija un drazas "uztvershana".
Un tad var sanaakt taa ka saakoties iistam raidiijumam uztveereejs jau atrodas uztvershanas ciklaa un startbits tiek piefikseets kaa dati.
Savukaart baita uztvershanas ciklam beidzoties iistais raidiijums veel turpinaas un kaads no datu bitiem tiek uztverts kaa naakoshaa baita startbits.
Taa tiks sabojaata naakoshaa baita uztvershana un teoreetiski tas var turpinaaties neierobezhoti ilgi.
Simbolam ar kodu 255 nav datu bita kas vareetu tikts uztverts kaa starta bits, taapeec jau peec pirmaa baita sinhronizaacija normalizeejas.

----------


## Onkulis

Paldies visiem, problēmu atrisināju. Uztvērēja galā kontrolieris, kas ieslēdzas padod tālāk informāciju, tikai kad atnāk 'xxx'.

Ja nu kādam noder tad šeit arī kods PIC kontrolleriem:

Uztvērējs:



> rxbyte2=rxbyte1;
> rxbyte1=rxbyte0;
> rxbyte0= getch();
> 
> 
> if(rxbyte0 == 'x' && rxbyte1 == 'x' && rxbyte2 == 'x')
> {
>     if(i==0)
>     {
> ...


 Raidītājs:



> void interrupt Isr(void)    //Paartraukuma apstrade
> {
>     if ((TMR0IE & TMR0IF) == 1)    
>     {
>             n++;
> 
>             if(n == 30)
>             {
> 
> ...


 Vēl uztvērēja vajag iestrādāt aizsardzību, lai automātiski pēc kāda laika aizver pārraidi, ja nu tomēr kautkas nogļuko, bet citādi strāda daudzmaz stabili.

----------


## sharps

Arī es argusā pasūtīju šos RFus. Jāpaeksperimentē. Sāku netā meklēt šādu tādu infu par šiem un uzdūros šim.

http://habrahabr.ru/post/139947/#habracut

----------


## next

Tiem raidiitaajiem ir veel viens nepiemineets graabeklis.
Kad raidiijumaa pauze un raidiitaajs aizgaajis guleet tad no jauna iesleegties vinjsh var apmeeram peec 10 ms.
Taatad pirmie baiti eeteraa neaizies.

----------

