RF komunikacia

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

RF komunikacia

Príspevok od používateľa YellowJacket » 06 Aug 2018, 17:14

Zdravim,

stretol som sa s trocha cudnym problem pri snahe o bezdrotovu komunikaciu medzi dvoma mcu, s ktorym by som potreboval trocha nakopnut. Cudne je na tom to, ze raz to funguje podla ocakavania, raz nie.

Popis:
- procesor c.1 je atmega8, na nu je napojeny transmitter FS1000A. Procesor bezi bez externeho krystalu, na frekvencii 8 MHz, baudrate je 1200. Ma to byt dialkovy ovladac pre jednosmerny motor ( RC auticko ), to znamena mam tam zatial jedine tlacidlo, ktore ked sa stlaci, transmitter bude nonstop zasielat znak 'f'. Ked sa tlacidlo pusti, transmitter prestane vysielat.
- procesor c.2 je atmega32, na nu je napojeny receiver XY-MK 5V. Procesor ma pripojeny externy krystal, bezi na frekvencii 16 MHz. Baudrate je takisto 1200. V nekonecnej slucke sa konroluje, ci nepride znak 'f' a pokial ano, zapni motor az pokial znak zmizne zo vstupu ( je tam delay v pripade maleho sumu ). Miesto motora mam zatial zapojenu LEDku na test.

Problem je v tom, ze po stlaceni tlacidla vysielaca, LEDka raz svieti, inokedy nie. Je to uplne nahodne. Preto som datovu linku z receivera pripojil na PC a sledoval prijmane data. Po zatlaceni tlacidla vidiet, ze chodi blok dat s rovnakou hodnotu, ale niekedy to proste nie je sekvencia znakov 'f' , ale hociakeho ineho znaku. Cize raz je to to, co ocakvam, raz nie. Preto nepredpokladam, ze by problem mohol byt v kode, ale skor niekde inde.
Este chcem spomenut, ze anteny k modulom nemam originalne. Nasiel som na internete, ze pre 433 MHz by mala mat antena 17,3 cm , takze som tam priletoval priblizne 17 cm dlhe vodice smerujuce zvislo nahor.
Vie mi niekto poradit, v com by mohol byt problem? Pokial mate podozrenie, ze je to softwarova chyba, mozem prilozit kod. Dakujem Vam vopred.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa peterple » 06 Aug 2018, 18:11

Čo na toto povedať? Ak je to v poriadku tak to funguje, ak nie, tak voľakde voľačo nefunguje. Osciloskop asi nemáš? Ten test čo si urobil je fajn ale nijak ti nezmenšil okruh podozrivých. Ja by som pripojil vysielač rovno na PC a ako druhé by som na priamo spojil vysielač s prijímačom. Inak mi guľa nefunguje. Tie zdrojové kódy si mohol dať rovno. Chyba môže byť aj tam. Napríklad ako testuje vysielač že znak je vyslaný a môže poslať ďalší?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
otep69
Stály člen
Stály člen
Príspevky: 208
Dátum registrácie: 31 Okt 2008, 00:00
Bydlisko: Jarok
Vek: 35
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa otep69 » 06 Aug 2018, 18:58

Tiež som sa raz snažil rozchodiť komunikáciu so spomínanými modulmi, po dlho predlho troubleshootingu som prišiel na to, že problém bol v samotných moduloch. Aby som dosiahol stabilný príjem tak som musel ísť s rýchlosťou rapídne dolu až na 240baud.
Keď si nevieš dať rady (samozrejme keď vyskúšaš to čo ti poradil Peterple) môžeš to vyskúšať ako sa to bude správať a ak by to náhodou bolo v tom môžem ti len vrelo doporučiť tieto moduly:
https://www.ebay.com/itm/2PCS-433Mhz-HC ... 54459b259d
Trošku drahšie, ale som s nimi nadmieru spokojný.
0
Teší ma Peter.
F*ck me I am Famous ...
Čo nejde silou, pôjde silou ešte väčšou.

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6202
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: RF komunikacia

Príspevok od používateľa pocitujlasku » 06 Aug 2018, 19:21

tie moduly su vhodne na pomale posielanie dat. nezvladaju ked tam zacnes chrlit data. Na viac dat som pouzival, neviem presne oznacenie, ale bola to bezdrotova nahrada serioveho portu - tam som sa dali posielat na jeden prijimac aj z viacerych modulov a kolizie boli minimalne.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

joži
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Júl 2014, 10:55
Bydlisko: Lazany

Re: RF komunikacia

Príspevok od používateľa joži » 06 Aug 2018, 23:37

na seriovy UART prenos použivam Xbee moduly XB24-001 maju seriovy UART, konfigurovatelne cez AT prikazy. ak by trebalo vačší dosah tak potom XBP24 tie sú 100mW vykonom.
potom ešte použivam HOPE moduly RFM01 a RFM02 na 433 alebo 868Mhz ale tie su cez SPI komunikaciu.

-- Spojený príspevok 06 Aug 2018, 22:41 --

este chcem vyskušat tieto ale zatial nemam skusenosť:
https://www.tme.eu/sk/details/rfm85w-43 ... ectronics/
prijimač
https://www.tme.eu/sk/details/rfm210lcf ... ectronics/
0

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 07 Aug 2018, 10:23

peterple napísal:Osciloskop asi nemáš? ...... Ja by som pripojil vysielač rovno na PC a ako druhé by som na priamo spojil vysielač s prijímačom.
Osciloskop nemam. Pripojil som vysielac priamo k PC a pri zadavani sekvencii znakov 'f' priamo cez terminal prijmac uspesne vsetko detekoval. Z toho mi vychadza, ze mam pravedepodobne zle nastaveny baudrate, pripadne pocitam s nespravnou frekvenciou procesora c1, teda atmega8 ( s ktorou pracujem teraz prvykrat, doteraz som pouzival iba 32 ).
Vyskusal som nizsi baudrate ( 600 ), a opat, po pripojeni transmittera priamo na PC vsetko slapalo. Ale procesor nie a nie fungovat korektne. Chcel by som teda poziadat o radu, ci nepracujem ozaj s nespravnou hodnotou frekvencie. Nejake info:
Procesor ma na puzdre oznacenie ATMEGA8 16PU, predpokladam ale, ze to je klasicka ATMEGA8, kedze tak som si ju ziadal v predajni. Ked som googlil datasheet, naslo mi cisto pre ATMEGA8. Fuse bity som nastavil tieto: low fuse = 0xe4 ; high fuse = 0xd1 , tzn frekvencia procesora 8 MHz bez externeho krystala. Baudrate vyratavam podla vzorca: UBRR = (F_CPU / ( 16 * BAUD)) - 1 ;; takze pri baudrate 600 vychadza UBBR ako 832.
Ak je podla vas chyba niekde v tomto, budem rad za kazdu radu. Vdaka.


peterple napísal:Tiež som sa raz snažil rozchodiť komunikáciu so spomínanými modulmi, po dlho predlho troubleshootingu som prišiel na to, že problém bol v samotných moduloch. Aby som dosiahol stabilný príjem tak som musel ísť s rýchlosťou rapídne dolu až na 240baud.
Skusil som nizsiu frekvenciu, vid vyssie a musim povedat, ze vystup na transmitteri bol "plynulejsi" ( dioda nepreblikvala, takze asi menej chyb pri prenose ). Pokial vsetko zlyha, neostane mi nic ine, ako pouzit ine moduly. Na tychto som sa v podstate chcel ucit.

pocitujlasku, jozi: vdaka, ak uz si nedam rady s tymito, tak pouzijem nieco silnejsie, ako mi aj radite.
0

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 09 Aug 2018, 09:35

// UPDATE

Teraz tomu nechapem uz vobec. Vyzera to, ze baudrate je nastavena spravne, pretoze po prepojeni TX a RX oboch procesorov, teda priamou komunikaciou obidenim vysielaca/prijmaca ide prenos presne podla mojich predstav. Ak som zapojil transmitter na PC, zasielal som vstup z klavesnice a sledoval som vystup z receivera, robilo to to, co som chcel a bez chyb. No uz ked som nechal komunikaciu na procesoroch, opat chyby. Som uplne mimo, ako je mozne, ze samostatne funguje aj prenos iba medzi procesormi navzajom, aj prenos s pouzitim iba prijmaca, ale vsetko spolu uz nejde. Viete niekto poradit, v com moze byt problem?

// UPDATE

Tak pani, problem vyrieseny. Sice nemam ani potuchy preco, ale pokial som posielal iba jeden znak, robilo to problemy, a nie vzdy prislo to co som zaslal. Akonahle som ale zacal zasielat dva znaky za sebou ( priklad, nie 'f' , ale '+' a potom 'f' ), vzdy dorazilo presne to, co som zaslal.
Kazdopadne, dakujem Vam za vase rady a cas.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa peterple » 09 Aug 2018, 18:44

tak toto skôr ukazuje na sw problem. Megy totiž majú pre UART dvojbytovú FIFO. Takže tam môžeš poslať dva znaky plnou rýchlosťou a potom sa musí čakať na odvysielanie. No a na to sú tam dva rôzne príznaky. Jeden infornuje že sa vo FIFO uprázdnilo jedno miesto a môže sa tam teda poslať ďalší znak. Druhý informuje že vysielanie skončilo. Myslím že chyba je práve v tomto. Navyše si neodhalil príčinu, iba si to obišiel dosť nevhodným spôsobom. Tá linka totiž nemôže stratiť pri prenose ani byte, a nie to každý druhý.

Ako prvé som sa pýtal na to ako to máš v sw vyriešené.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 10 Aug 2018, 08:01

peterple napísal:Tá linka totiž nemôže stratiť pri prenose ani byte, a nie to každý druhý.
Jedna sa o dialkovy ovladac pre RC auto, myslim, ze strata jedneho, alebo par byte-ov neohrozi funkcnost programu. Nejde o zasielanie nejakych binarnych dat, ktorych hodnotu potrebujem na dalsi vypocet a podobne. Ide cisto o signal, dopredu/dozadu.
O lepsom rieseni neviem, ak mi vies poradit, aspon nasmerovat, rad si necham poradit. Kazdopadne nechapem, ako bolo myslene to, ze sa straca kazdy druhy bajt. Ked sledujem prijate data receivera cez PC, tak prichadza sekvencia oboch znakov, teda nieco taketo +f+f+f+f+f+f . A softwarovo potom najpr citam, ci bol prijatyznak '+' . Ak ano, cita sa dalej a ak je to 'f' ,pripadne 'r' , vykona sa patricna operacia.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa peterple » 10 Aug 2018, 16:53

Keď prenáša všetko tak potom je to OK. Ja som pochopil ten tvoj update tak že posleš +f a pride f ale vždy v poriadku. Kdežto predtým si posielal stále f a často prišlo niečo úplne iného.
Poučenie z krízového vývoja žiadne. Zrazu to funguje. Niet čo ďalej riešiť.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 10 Aug 2018, 19:51

Nuz, ci niet co riesit. Ano, sice to funguje, ale rad aj rozumiem veciam, ktore robim a toto je pre mna trocha zahada. Na mnohych zahranicnych forach alebo v clankoch som si vsimol, ze takmer vzdy zasielaju prvy byte oznaceny ako "dummy data" , kvoli synchronizacii. Ale ziaden popis okolo tohto byte-u som nenasiel. A tak sa zda, ze je to dost dolezita zalezitost, kedze aj v mojom pripade to zachranilo cely prenos. ( pripominam, ze v pripade priameho prepojenia dvoch procesorov prenos fungoval aj bez tohto dummy byte-u ).
0

joži
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Júl 2014, 10:55
Bydlisko: Lazany

Re: RF komunikacia

Príspevok od používateľa joži » 10 Aug 2018, 20:07

Ja si nemyslím že by sa strácali data na sériovom porte. Skôr sa strácajú data pri RF prenose. A to môže byť tým že je to AM modulacia bez akejkoľvek kontroly dat. Pochybujem že by ten modul mal menchester..... ak sa chceš uistiť tak použi ibe rf moduly.
Ešte sa mi nestalo aby sa strácali data na uarte. Síce robim iba s c51tkovym jadrom s inými nemám skúsenosti žiadne ale predpokladám ze komunikácia po uarte je všade rovnaká.
0

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 10 Aug 2018, 20:21

Data sa nestratili, pretoze kolko byte-ov som poslal, tolko bolo dorucenych. Akurat ze vo vacsine pripadov skomolenych. A nie, tieto moduly nemaju ziadnu kontrolu dat. Nemyslel som si, ze tym, ze pouzijem akysi uceleny paket ( dummy byte, samotne data, chcecksum ), tak to vyriesi problem so zlymi datami v receiveri. Kedze som videl, ze sa prijma nieco uplne ine, ako sa vysiela, tak som hladal problem inde. Pri mojom dalsom projekte uz s niecim takymto budem ratat, no zial budem to robit automaticky bez toho, aby som chapal, preco jeden "synchronizacny" byte sposobi to, ze to celu nasledujucu komunikaciu nerozhadze.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa peterple » 10 Aug 2018, 20:52

Jáj takto. Ja som si tvoju prvú otázku domyslel zlým smerom. Zmiatlo ma tam slovo nonstop vysielať. Tak som si podsunul predpoklad že ti to blbne počas dlhého prenosu a nie na jeho začiatku.
Takže teraz k tomu že prečo treba poslať na začiatku nejakú dummy správu mino nejakých "paketov" Sú na to dva dôvody:
  1. Prijímač sa pri strate nosnej uspí, lebo šetrenie energiou je dnes v móde. Takže po jej objavení je potrebné počkať až sa tam rozbehnú nejaké oscilátory a stabilizuje sa ich f (ak sú potrebné k príjmu a dekódovaniu )
  2. Nastavenie zosilnenia. Pretože sú to zvyčajne mobilné veci kedže ide o bezdrátový prenos tak je normálne že prijímač a vysielač medzi sebou mení vzdialenosť a orientáciu. To vedie k tomu že prijímaný signál má rôznu veľkosť a treba ho zosilniť vždy trochu inak. O toto sa stará obvod označovaný ako AVC (automatické vyrovnávanie citlivosti) No a ten na svoje správne nastavenie potrebuje nejakú dobu.
Stačí sa pozrieť na priebeh burstov pri infračervenom diaľkovom ovládaní. Tam sa na začiatku vždy posiela nosná f po určitú dobu. Niektoré kódovania májú túto inicializáciu dlhšiu ako je potom samotná správa.

Takže v prípade AM modulácie by som povedal že najlepší dummy byte je buď 0xFF alebo 0x00. Podľa toho čomu zodpovedá signál s plnou intenzitou nosnej. Alebo 0x55, alebo 0xAA kedže tam sú oba stavy v rovnakom pomere. Ale toto sú len také moje špekulácie.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

stefanSK
Pokročilý člen
Pokročilý člen
Príspevky: 752
Dátum registrácie: 24 Jún 2010, 00:00
Bydlisko: Trnava
Vek: 68

Re: RF komunikacia

Príspevok od používateľa stefanSK » 10 Aug 2018, 21:52

peterple problém s príjmom popísal presne a moja skúsenosť s modulmi s AM moduláciou potvrdzuje všetko od bodu 2 do konca.
Po príjme prvého bytu sa prijímač snaží nastaviť AVC a "referenčnú úroveň" pre dekódovanie núl a jednotiek (na osciloskope prvý prijatý byte v prijímači vyzerá ako krivka nabíjania sa kondenzátora modulovaná datami, ostatné sú už posadené na konštatnej jednosmernej úrovni. To som dávno meral s modulmi AURELxxx). Ak nechceš na začiatku posielať dummy byty, tak si kódovanie urob tak, že prvé napr. 2Byty budu obsahovať rovnaký počet núl a jednotiek. Skús napr:

0xc3, 0x69
elebo:
0x71, 0x33
......

či obidva znaky sa prijmú korektne.
0
S.K.

kamilko
Stály člen
Stály člen
Príspevky: 269
Dátum registrácie: 21 Okt 2017, 14:07
Bydlisko: kosice

Re: RF komunikacia

Príspevok od používateľa kamilko » 11 Aug 2018, 07:04

Dobre rano stara mama, to sa vie o tychto jednoduchych moduloch davno ze treba vyslat prvy byte aby sa zosynchronizovali.
A tusim sa ako prva vysiela postupnost 01010101
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: RF komunikacia

Príspevok od používateľa peterple » 11 Aug 2018, 08:11

Dobré ráno starý otec. Ako to myslíš zosynchronizovali? Prenos je asynchrónny. Moduly majú vlastné osc ktoré bežia samostatne (teda nesynchonizovane). Čo máš tým pojmom teda na mysli že sa konkrétne urobí? Synchronizáciu prenosu robí ten kto ich riadi teda UART. A to pomocou štart a stop bitov na začiatku a na konci každého prenášaného údaja.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
YellowJacket
Pokročilý člen
Pokročilý člen
Príspevky: 503
Dátum registrácie: 05 Feb 2012, 11:58
Bydlisko: Hrinova
Vek: 33

Re: RF komunikacia

Príspevok od používateľa YellowJacket » 11 Aug 2018, 08:48

kamilko napísal:Dobre rano stara mama, to sa vie o tychto jednoduchych moduloch davno ze treba vyslat prvy byte aby sa zosynchronizovali.
A tusim sa ako prva vysiela postupnost 01010101
Tu staru mamu si nabuduce odpusti, v tejto problematike ( RF komunikacia ) som uplne cudzi, tak je logicke, ze robim chyby, na ktorych sa chcem ucit.

Peterple, stefansk: krasne vysvetlenie, velmi ste mi pomohli, dakujem. K+
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok