Fórum témák

» Több friss téma
Fórum » RFM12BS
 
Témaindító: Thowra, idő: Márc 6, 2009
Lapozás: OK   10 / 12
(#) sargarigo válasza pucuka hozzászólására (») Máj 28, 2012 /
 
Semmi gond, talán lesz más A napokban szerintem nekiugrok akkor, aztán lehet hogy jövök kérdezni..
(#) efiscp válasza sargarigo hozzászólására (») Jún 1, 2012 / 1
 
Szia!

Én a Bővebben: Link hozzászólásban lévő csatolmány alapján hegesztettem össze, és oda-vissza kommunikálgatok vele stabilan 9600 bps-en. Amire szerintem figyelj:
1. Inicializálásnál a parancssorozatot többször küldd (ha csak egyszer küldtem, nem mindig ette meg, úgyhogy egy ciklusban 50x küldöm, így mindig stabilan feláll).
2. Inicializálás után adj neki FIFO resetet.
3. Packetben mindig legyen elöl preamble (AFC hangolódás miatt) és sync pattern (érvényes adat kezdetét jelzi), utána mindig legyen pár dummy byte (adó lekapcsolásánál ennek a küldése szakadjon meg, ne az érvényes adaté).
4. Minden átvitel után legyen FIFO reset, különben érvényes érkezett adatnak tekinti a dummy byte-okat.

Szerintem első körben csak a status regiszter olvasását próbálgasd, utána jöhet a rádiózás. Nálam a bekötés:

nRES: 10k tápra
GND: föld
DCLK/CFIL/FFIT: floating
CLK: floating
nIRQ: D7
FSK/DATA/nFFS: 10k tápra
nSEL: D6
SDO: D5
SDI: D4
SCK: C7
nINT/VDI: floating
VDD: táp

Igény szerint elküldhetem a fent linkelt hsz. alapján írt kódomat (PIC-re CCS C-ben). Remélem, segítettem.
(#) efiscp válasza efiscp hozzászólására (») Jún 1, 2012 /
 
Ja és ne felejts el CRC ellenőrzést végezni.
(#) sargarigo válasza efiscp hozzászólására (») Jún 1, 2012 /
 
Igen, ez már releváns segítség, köszönöm szépen!
(#) Báddzsó hozzászólása Jan 12, 2013 /
 
Sziasztok, végre én is működésre bírtam a modulokat. Olyan kérdésem lenne, hogy miért veszik el kb. minden 20. packet? Teljes egészében nincs vett bájt. Legalábbis úgy tűnik.
Érdekes módon amúgy ha egymás mellett van az adó és vevő kb 30cm-re, akkor az adatok fele nem jön át.
Még azt is szeretném megtudni, hogy a kondit hány pF-re kellene állítani, honnan lehet megtudni ezt az infót? Köszönöm!
(#) Báddzsó válasza efiscp hozzászólására (») Jan 12, 2013 /
 
Én szoftveresen kommunikálok a modulokkal, mindig "megeszi" a beállításokat...
Az nRES lábat nem kell felhúzni, alapból fent van belül 100k-val az adatlap szerint.
Sokat segített a linkelt hsz-ed! Köszi!
(#) efiscp válasza Báddzsó hozzászólására (») Jan 12, 2013 /
 
Amikor még csak ismerkedtem a modulokkal, építettem egy tesztáramkört (pontosabban kettőt), teljesen ugyanolyan kapcsolással. Az adó másodpercenként elküldött egy sorozatot, a vevő meg kiírta egy kijelzőre. A vevő indítása után nem mindig sikerült neki az adatokat fogadni, viszont valamennyi számú reset után működött. Amikor ciklusba raktam az inicializálást, megszűnt a probléma.
Szerintem a packet eltűnésének az okát úgy tudnád a legkönnyebben kideríteni, hogy két vevőt építesz, és nézed, hogy melyik mikor nem veszi. Ha mindkettőnél ugyanakkor, akkor valami determinisztikus hibád lesz (valószínűleg az adó oldalon), ellenkező esetben nem.
Hova szeretnéd a kondit rakni? Én emlékeim szerint csak egy hidegítőt építettem be, azt is egy olyan nyákra, amin van egy nagy trafó és 8 relé.
(#) Báddzsó válasza efiscp hozzászólására (») Jan 12, 2013 /
 
Sajnos csak 2 modulom van, így a tesztelési ötleted kizárva...
Arra a kondira gondoltam ami (tudtommal) a modulon van a kvarcnál. A modul 0x80 -as kezdetű regiszterébe kell beállítani. 12 vagy 12,5 pF-et adnak meg a legtöbb példaprogiban...
Mivel kimaradások vannak és nem leállások az adatátvitelben nem hiszem, hogy újra kéne állandóan inicializálni... Az egész beállítási parancssor újraküldésére gondolsz ilyenkor amúgy?
A FIFO-t azt ürítem mindig...
A hozzászólás módosítva: Jan 12, 2013
(#) efiscp válasza Báddzsó hozzászólására (») Jan 12, 2013 /
 
Ja igen, azokkal lehet játszani, de szerintem ott jó érték a 12,5pF. Gondolom azért lehet állítgatni, mert máshol (pl. MCHP) meg tudod venni csak az IC-t, és neked kell köré építened a sallangot. Ekkor természetesen te választod meg a kondikat is, és ezért van ez a lehetőség.
Nem kell újrainicializálni adatküldés/fogadás után, én sem teszem. Amikor elkezd futni a program, egy ciklusban többször meghívom az init()-et (persze paraméterezve), de ez a ciklus csak egyszer fut le. Ezután a végtelen ciklusban már csak az adatregiszterbe öntöm a byte-okat, nem állítgatom át a beállításokat.
A FIFO resetet nagyon helyesen teszed, valahol az adatlapban eldugva megtalálható, hogy arra szükség van.
A hozzászólás módosítva: Jan 12, 2013
(#) 0anubis0 hozzászólása Ápr 24, 2013 /
 
Üdv!
Már hetek óta próbálkozom az RFM12B modulal, elolvastam a teljes topicot és az összes létező leírást. PIC18F4520-as vezérlőt használok, mely 3.4V-on üzemel 8Mhz-n, ASM nyelven írom a programot, hardware-s SPI-vel mely aktív 1, felfutó élre, 8/64MHz-vel üzemel.
A kommunikáció működik a vezérlő, és az RF modul között, kitudom olvasni a status regisztert is.
3 fő problémám van az adóvevővel:
-Mikor az adó küld, a vevő érzékeli (ATS), de fogadni nem tudja (szerintem legalább az FFIT-nek kellene 1-re váltania ha érkezett megfelelő mennyiségű adat)
-nIRQ folyamatosan 0 a vevőnél, erre volt 1 külön tesztem hogy csak kiolvastam a status regisztert és töröltem a fifo-t és így is 0 maradt. (status regiszter szerint egy megszakítási bit sem volt aktív)
-nem működik

A következő elv alapján próbáltam beüzemelni:
ADÓ:
Initalisation (példa program alapján 868Mhz-s típusra módosítva)
TX engedélyezése
adat írása a modulnak:
nSEL = 0
b8(TRANSMIT PARANCS)
AA AA AA 2D D4 (PREAMBLE, ID)
EGY BYTE ADAT
AA AA AA (ELMÉLETILEG AZ ADAT VÉGÉT JELZI)
nSEL = 1
TX TILTÁSA
KÜLDÉS ELŐRÖL KEZDÉSE

Vevő:
INITALISATION
STATUS REGISZTER OLVASÁSA FOLYAMATOSAN
(próbáltam úgy is hogy a synthesizer-t kikapcsoltam, de szintén nem érkezett adat)
(#) efiscp válasza 0anubis0 hozzászólására (») Máj 5, 2013 /
 
Szia!

Írtam levelet.
(#) vicsys válasza efiscp hozzászólására (») Máj 5, 2013 /
 
És miért nem itt osztod meg...?
(#) efiscp válasza vicsys hozzászólására (») Máj 5, 2013 /
 
Mert a kolléga is levélben írt nekem (még áprilisban), és gondoltam, ide is beszólok, hogy lássa. Amennyiben fölösleges, nyugodtan törölhető a post, de igény esetén bemásolhatom ide a levelet.
A hozzászólás módosítva: Máj 5, 2013
(#) vicsys válasza efiscp hozzászólására (») Máj 5, 2013 /
 
Azt gondolom, hogy egy jó megoldás, nagy segítség lehet egy később erre járó fórumozónak. Tehát, csak ezen része a lényeg.
(#) foxi63 válasza 0anubis0 hozzászólására (») Máj 5, 2013 /
 
Szia!
Elméletileg az NIRQ láb csak akkor lesz alacsony, ha a fifoba már beérkezett az adott számú bit, és beérkezett a már 2D D4 azonosító is előtte.Ha állandó alacsony szint van, akkor talán nincs beállítva hogy a fifoba mennyi bitnek kell beérkeznie, hogy megszakítást kérjen az NIRQ.
8008- as parancs fifo engedélyezés
CA80-as parancsnál is nézz körül!
Bekapcsoláskor 5msec várakozás és utána init, A kimenő byte-ok egymás után csak akkor mehetnek, ha kiolvasod a status regiszer első bitjét (SDO) és ha az magas, csak akkor mehet a következő byte. A többi olvasása felesleges.
üdv: Foxi
(#) Wéber László hozzászólása Nov 12, 2013 /
 
Üdv!
Kérem jelentkezzen, aki letöltötte a mellékelt szoftvert:
Bővebben: Link

Link javítva a LINK gomb használatával. - moderátor
A hozzászólás módosítva: Nov 17, 2013
(#) pipi válasza Wéber László hozzászólására (») Nov 12, 2013 /
 
Hali!
A linked kicsit széthullott...
A 0.0MB hosszú fájlokra gondolsz?
Szerintem írj nekik a kontakt fül alatt.
A hozzászólás módosítva: Nov 12, 2013
(#) foxi63 hozzászólása Dec 6, 2013 /
 
Nagyon leült ez a topic, pedig nem rossz modulok ezek. oda/vissza szépen működnek.
(#) efiscp válasza foxi63 hozzászólására (») Dec 7, 2013 /
 
Akkor ezek szerint sikerült összehozni kútfőből
(#) foxi63 válasza efiscp hozzászólására (») Dec 7, 2013 /
 
Szia!
Igen Az egyik oldal kiküldi az adatokat, és átvált vételre figyeli az eltelt időt, ha nem jön válasz visszatér false értékkel, tehát nem "fagy le" a progi .A másik veszi a csomagot, és visszaküldi a nyugtázást, vagy a válasz adatokat. Az Egyik fele USB-vel kapcsolódik a PC-hez.
Az adatcsomagok vétele megszakításban működik, tehát nem kell figyelni programból.
A csomag mérete 1- 32 byte, de lehet akár 250 is. Mivel az USB puffere 64 byte, így értelemszerűen nem kell nagyobb.
(#) efiscp válasza foxi63 hozzászólására (») Dec 8, 2013 /
 
Én is hasonló módon oldottam meg, csak nekem nem megszakításból megy.
(#) Hilo hozzászólása Feb 9, 2014 /
 
Sziasztok,
Rádiós adó-vevő modulok topicban már elkezdtem kérdezgetni, de inkább ide jönnék segítségét, anno foxi63 ajánlotta ez a modulpárt és szimpatikus volt amit írt róla.
Amire első körben kéne: Két PIC közti komunikáció.
Amihez: RC autó átalakítva (gyerkőcnek),
PICek: 2x pic16F88x (ez tuti van otthon),
távolság: lakáson belül, nagyobb játszótéren (kb 20-30 m nyílt téren),
adatok: kb 16 bitnyi adat.
Jól gondolom hogy ilyen igényeket ez bőven kielégít?
(#) foxi63 válasza Hilo hozzászólására (») Feb 9, 2014 /
 
Bőven!
A PIC-et milyen nyelven programozod?
assembly, vagy C ? mert van mindkettőre progi.
Mivel egyirányú az adatátvitel, egyszerűbb a dolog.
Ajánlatos az RFM modul saját 10MHz -es órajelét felhasználni a PIC-nek.
Ha jól gondolom, a jobbra/balra irányt szervo viszi, és van egy szénkefés motor, ami előre/hátra megy.
(#) Hilo válasza foxi63 hozzászólására (») Feb 9, 2014 /
 
Szia, köszi a gyors választ.
Assembly ben terveztem C ben még nem programoztam PIC-et.
Ennek a modulnak a használatakor kell x bites azonosítót is küldeni, vagy ezt már kezeli a modul? Az a 8.6 cm-es antenna meg van adva hogy milyen, venni kell hozzá vagy csak egy drót is megteszi? A 10MHz-es órajel mindekét oldalon jó ötlet, ez szembe sem jutott. Jól gondolod, a jobbra/balra irányt szervo viszi, és van egy szénkefés motor, ami előre/hátra megy. A vezérlés programozását meg tudom oldani, maximum kérdzek majd, de szeretem az ilyenekt magam csinálni, ebből tanulok , addig szeretnék eljutni hogy 8, 16 bitnyi adatot stabilan tudjak küldeni és fogadni. Illetve milyen távolságra fog működni nekem ez?
Előre is köszönöm!
(#) foxi63 válasza Hilo hozzászólására (») Feb 9, 2014 / 1
 
Szia!
Az adatlap szerint 100m ha látják egymást. 3km az rfm12bp
A modul elindításához ki kell adni pár parancsot, és ezek között szerepel egy olyan két byte-os azonosító is, amit az adó kiküld amikor kezdi az adatsorozatot. a vevő csak akkor kezdi el feltölteni a vevőpuffert, ha ez az azonosító előbb beérkezik.Nekem 60byte-os csomagokkal dolgozik.
Antennának akármilyen darab drót jó,csak a 1/4 hullámhosszra kell figyelni.
Az adás a következő AA AA AA 2D D4 hasznos byteok CRC AA AA
A kezdő AA számokra a vevő szinkronizál, 2D D4 azonosító és a hasznos adatok után egy ellenőrző szám , és a puffer kiürítése : AA AA
Neked az adás 20mS időnként 10 byte. Az adatsebességet állítsd 9600-ra.
(#) foxi63 válasza Hilo hozzászólására (») Feb 9, 2014 / 1
 
A vevő oldalon az NIRQ lábat célszerű a Bport RB0 -ra tenni, mert, ha érvényes adat van, akkor megszakítást generál.
(#) Hilo válasza foxi63 hozzászólására (») Feb 9, 2014 /
 
Köszönöm. Ha jól vettem ki 9600 az alap beállítás adatsebességre.
A vevő oldalon gondolom előre be kell állítani azt a 2 byte os azonosítót? (Így akár egy adóval több vevővel is kommunikálhatok, az azonosítóval meghatározva a cél vevőt?)
Küldéskor a PIC milyen lábon küldi az adatokat? EUSART al kommunikál? Küldéskor akkor ha jól értem küldök AA AA AA (szinkronizálásra) + 2 byte azonosító + hasznos adatok (nálam 2 byte egyenlőre) + ellenőrző szám (ez micsoda?) + AA AA (buffer ürítés parancsa?).
Ez megy akkor el egy csomagban, amiből a hasznos adatok mennek át a picnek a többit a modul kezeli? Az alap beállításait kell a modulnak állítgatni?
Amit írtál 100m/3km most hogy is van? Köszönöm előre is.
(#) Báddzsó válasza Hilo hozzászólására (») Feb 9, 2014 / 1
 
Üdv, ha már itt vagyok mondok pár hasznosat:
Először is szerezd be az rfm12b adatlapját ha nem lenne meg. Nem árt a rajta lévő ic adatlapja sem (rf12b). Az adatlapokban van példaprogram is amiből sok kérdésre találsz választ.
rfm12b: 100m
rfm12bp: 3km
erre szükséged lehet: rfm12b parancs kalkulátor
(#) Hilo válasza Báddzsó hozzászólására (») Feb 9, 2014 /
 
Köszi, maradok frm12b-nél, mind árban, mind teljesítményben megfelel nekem egyenlőre.
Jól értelmezem hogy ez egyben adó és vevő is, tehát ebből kettőt kell vennem?
Adatlapot átnézem majd a napokban majd jövök még vissza kérdezni.
Köszönöm az eddigieket!
(#) foxi63 válasza Hilo hozzászólására (») Feb 9, 2014 /
 
Szia!
Amikor kiküldesz adatokat, abba belerondíthat más zavar.Csak akkor lehetsz biztos az adatok helyességéről, ha ellenőrizni tudod őket. Adás előtt egy regisztert lenullázol. Minden kiküldendő számot kiküldesz és egyben hozzáadod a regiszterhez. utoljára kiküldöd ennek a regiszternek az értékét is.A vételkor szintén összeadod a beérkezett számokat, és összehasonlítod az utolsó beérkezett számmal. Ha stimmelnek ,helyes az átvitel, ha nem el kell dobni az adatot. és a puffert tiltani, újra engedélyezni.( ekkor várja a következő azonosítót)
Én teljesen szoftveres programot használok.
Az adatlapban lévő programnál jóval nagyobb sebességet lehet elérni, az teli van lassítással.
A hozzászólás módosítva: Feb 9, 2014
Következő: »»   10 / 12
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem