Fórum témák
» Több friss téma |
Fórum
Köszönöm, megtaláltam végre. Nagyon sok adatlap kering a neten és némelyik elég hiányos. Egyet találtam amiben az időket írja is. Nagyon sok adatlapban csak a diagram szerepel mindenféle adat nélkül.
Az adatlapon megtalálod a jelek időzítéseit.
Találtam egy kis irodalmat, nézd végig, választ kaphatsz a kérdéseidre, van tervezési segédlet is. Bővebben: Link
Köszönöm, de a kérdés az lett volna, hogy a működtető mikrovezérlő SPI órajelét hány MHz-re lehet állítani?
Igen. Az 1,2 kbps lehet az amivel üzembiztosan számolhatsz. Sajnos ezeknek nincs nagy rendelkezésre álló sávszélességük, így a sebesség sem szédítő. Ha nagyobb sebesség kell, válassz 2,4 GHz -es modult.
Hmmm. Az nem a két modul közti átviteli sebesség?
Az adatlap azt írja, hogy 115,2 kbps max. külső szűrővel 256 kbps.
Az adónál belső adatregiszterrel 172 kbps, az FSK bemeneten 256 kbps. Bár a > 200 m távolságot, 1,2 kbps sebességnél garantálja.
Sziasztok!
Látom jó rég nem írt ide senki... Nem tudja valaki, hogy ennek a modulnak milyen sebességen tud dolgozni az SPI?
Most hogy előkerült a topik, felteszek egy régebben irt példa progit assembly-ben programozóknak...
A hozzászólás módosítva: Okt 17, 2015
Attól függ, mit tekintesz vevőnek. A vevő RF része mindig vesz valami zavart, zajt, amiből a kimenetére kreál valamilyen jelsorozatot. Valamilyen ehhez kapcsolódó inteligenciának (processzornak) kell eldönteni, hogy meddig zavar, meddig jel, és milyen adatok szólnak neki, amit tehet a "fifóba".
A vevő vár egy azonosító számra (2D D2 ) és a fifóba csak ezután kerül adat., tehát nem vesz a vevő felesleges zavart.
Ezt én így megmondani nem tudom, Mivel a szakmám rádiós, nagyjából az ITU-R ajánlásait ismerem, azt se mindet. Ami a nagyobb baj, hogy ezeket (nem kevés) pénzért árulják, és nyugdíjasan se szükségem, se pénzem nincs rá. Szerintem kerüld meg elegánsan a problémát, az adatlapok bővebb, magyarázó ismertetésével.
Köszönöm a korrekt magyarázatot! Egy kis bemutatót kellene róla írnom és tudnom kellene, hogy melyik ITU ajánlás tartozik hozzá?
Az ITU ajánlások azért vannak, hogy különböző berendezések együtt tudjanak működni.
Neked csak saját magaddal kell együttműködnöd. A rádiós kompatibilitást a gyártó elintézte, a termékei megfelelnek a megfelelő harmonizált szabványoknak, ajánlásoknak. Ha nem alakítod át, azzal neked nem kell foglalkoznod. Rádiós átvitelnek vannak specialitásai. Az adónak a vevővel közölnie kell, hogy ébredjen fel, és készüljön fel az adatok fogadására. Mivel az átvitel soros, és asszinkron szükséges némi előzetes jeleket küldeni. Ezt az átvitelt vezérlő processzornak kell megtenni. A vevő modul adatlapjából láthatod, hogy az első vett jel után mennyi idő múlva lesz vételkész. Ez ideig nem lehet hasznos adatokat küldeni a vevőnek, mert nem is fogja látni, és az utána kötött proci nem fogja tudni értelmezni. Erre az időre valamilyen kódot küldesz, pl 1010101, ennek már van bitmintája, és eltér az eddíg random módon a zajból gyártott bitmintától. A vevő is felébred, az adatlapon megadott időállandóval beáll az AGC -je, és a továbbiakban veszi a küldött biteket. Hogy a vételi oldalon a proci is tudja, hogy most már neki jönnek az adatok, egy címet kell neki küldeni, amiből azonosítja, hogy neki szólnak majd az utána következő adatok. Ezeket bepakolod egy csomagba, és ezt küldöd a vevőnek. Mivel tudod, hogy a csomagon bellül a szinkronjel, és a preambulum milyen hosszú, ki tudod válogatni a vevő oldalon.
Sziasztok!
Egy kis segítségre van szükségem. Miért van szükség a preamble és sync kódokra, illetve milyen szabványnak felel meg a kódolása? ( szabvány alatt innen gondolom: Bővebben: Link )
Szia! Nekem is az ANT felirattól távolabbi lyukba kellett tennem az antennát, az ANT felirat mellett közvetlenül a föld van. Rengeteg kép van neten ahol mégis az ANT mellé teszik... lehet hogy az újabb rev4.0 ban már máshogy van, meg kell nézni melyik megy a földre és a másikat kell használni.
Szia, abban biztos vagy, hogy a másik lukba kell forrasztani az antennát?! Érdekes módon ezen a képen nem úgy van mint az én rfm12b rev4.0-ás esetemben és itt lehet, hogy a másikba kell: http://plischka.at/images/RFM12B_DIP_1.jpg
De ha nem tévedek, akkor a balun végére kéne forrasztani és nálam pl már jó helyre nyomták az ANT jelzést. Megerősítést kérek , mert nem biztos, de nekem megy... szóval talán inkább érdemes figyelni, hogy ne a földbe forraszd az antennát, hanem a balunra. Igaz?! Üdv!
Sziasztok!
Nekem most sikerült beüzemelnem egy ilyen trasceiver párt foxi63 aranyat érő segítségével. Gondoltam megosztok pár észrevételt, és gondot amibe - leginkább a tapasztalatlanságom miatt - sikerült beleütköznöm: Ha valaki a Wiki-ről művelődik az SPI-ről és nem elég alapos, akkor lehet hogy csak addig olvas amíg azt nem állítja a cikk, hogy MISO=SDI, igen ám, de csak a mesteren, tehát miután nem megy a kommunikáció egy ideje már, az adatlapot alaposabban tanulmányozva a modul SDO lába kimenet!! Lehet hogy a reset láb belül is gyengén fel van húzva, de nekem csinál furcsa dolgokat a modul ha 10k-val nem húzom fel. Sajnos mint rájöttem a mikro C nem fogad el globális változókat használó függvényt az interruptban. Lehet trükközni, de a flagek használata egyszerűbb. Ha nem megy az inicializálás, akkor érdemes az órajel átállítás paranccsal nézni, hogy van-e kommunikáció, ez ugyanis jól mérhető egy kicsit jobb multiméterrel is. Ha van, de az inicializáló parancsok kikapcsolják az órát, akkor érdemes kommentezéssel megkeresni melyik szó a hibás. Az én modulom például nem működik CC17 és CC37 pll beállításokkal 5MHz-es órajel fölött. Lehet hogy megint én nézek el valamit, de CC77-el eldöcög egyenlőre. Akinek nem SMD tokozású a modulja, az figyeljen, hogy az antenna helyen két luk is van, ugyanakkor az antennát fixen nem oda kell bekötni amelyik mellé oda van írva hogy ANT. Hirtelen ennyi volna
Szia!
Sajnos én csak SMD modult használok, ott ilyen gond nincs... A hozzászólás módosítva: Márc 5, 2014
Sziasztok,
A tüskés változathoz (RFM12B-868-D) hol lehet kapni ha lehet ráhúzható dugót? Az NDR-T elvileg rámegy, de a hozzá tartozó NSR házak már biztos nem. Ehhez a NXT-G kéne ha a 2mm-es távot veszem alapnak, viszont ahhoz a házak egy sorosak, és a két hatos házat csak lefaragva tudnám egymás mellé tűzni. Ami még eszembe jutott hogy, ráhúzom az érintkezőket, kinyomom műanyag ragasztóval és száradás után lehúzom, azaz saját házat csinálok neki. Köszönöm a válaszokat előre is!
Szia, Először is köszönöm a választ.
Nem akarom/akartam átírni a programot, viszont ha nem saját programot használok, addig nem állok neki amíg át nem látom teljesen. Alap célom hogy átlássam/megértsem a modul működését, új dolgokat tanuljak, ehhez viszont elengedhetetlen néha a sok, néha már fárasztó kérdés/boncolgatása a dolgoknak.
Szia!
1. igen működőképes.. 2. 200msec azért kell, hogy a bekapcsolási tranziensek lefussanak (PIC tápja perifériák stb.) 3.A timer2 más feladatot is ellát, de az adáscsomagokat is az időzíti, pl másodpercenként 20x küld adatokat. 4. Amikor vételről átváltasz adásra vagy fordítva, akkor kell 150uSec időt várni. 5.base band block a vevőrészhez van.... A 10MHz csak azért van utoljára állítva, mert az init parancsok a doksi alapján nagyjából sorba mennek, és ott is az az utolsó. 6. Az éter teli van mindenféle szeméttel, nem kell feleslegesen terhelni.hogy megy állandóan az adó. Más is szeretné ezt a sávot használni. Ráadásul 1/20 adás/szünet arány jelentősen kiméli a tápot, főleg, ha elemes... egyébként működő komplett programot kaptál, felesleges átírogatni.... üdv.: Foxi
Valaki tudna válaszolni az utolsó hozzászólásomra, mert a hétvégén neki állnék és előtte mindenképpen szeretném átlátni a dolgokat.
Köszönöm előre is!
Szia, akkor újra nekifutok.
![]() FIFO-ba adatot a következő metodikával adok át:
Az adatlap küldés diagramján (19. oldal) azt vettem ki hogy a NIRQ lábat kell vizsgálni és az ha alacsony értéken van akkor mehet a 16 bitnyi adat. (Ezt jól értem? Ez így működő képes?) Adó oldalon sorban ezt kell a programnak csinálnia: - SDO_, SDI_, SCK_, NSEL, NIRQ lábak beállítás (ki/bemenet, stb) - Szükséges regiszterek definiálása - várunk 200mSec-et (ez a modulnak kell hogy magához térjen?) - (Miért generálunk megszakítást TIMER2 vel, ez a rész nem tiszta.) - Modul beállítása táblázatból (a 10Mhz-re váltás miért az utolsó?) - Program lényegi része. (adatküldés pl.) Adatküldéskor a program engedélyezi a "transmitter"-t, vár 150mSec az éledésre. Engedélyezi a "base band block"-ot. (Ez micsoda? Ez a "2D D4"-es azonosítós rész?) Miért kell a "transmitter"-t lekapcsolni küldés után? Csak spórolunk az elemmel van vagy más oka is? Köszönöm a türelmet és a segítséget is!
Szia!
Nem jól értelmezed! Először is azért kell várni,mert lassabb lehet az átvitel, mint a PIC sebessége. A küldési parancs kiadásával, kell várni amíg az SDO nem lesz 1 ezután már nem nézzük a küldendő 16 bit belefér a modulba! Ha megfigyeled az DSO pollingolását, az nem más, mint a status regiszter kiolvasási 16 bites parancsa, adat=0 NSEL=0 SCK= 1 erre beolvasódik a statusreg első bitje, ami nem más, mint hogy küldhető-e a következő adat. Ha küldhető, abbahagyjuk a statusreg további beolvasását, (SCK=0 NSEL=1) és továbblépünk a writecmd rutinra. Az adás végén az AA AA talán kiüríti a fifo-t ??, de kell biztosan!! Igen van WriteCMD(0xCA83); fifo reset és ezután nem is töltődik semmi a fifoba, csak a 2d d4 adat beérkezése után a következő byte.
Sziasztok,
Igyekeztem értelmezni a modul leírását és a minta programokat, az angol tudásom sajnos nem a legjobb, de megteszem amit tudok. Leírom hogy értelmeztem a dolgokat kérlek javítsatok ki ha rosszul értettem. A picből a fifo-ba töltöm fel az adatokat, akkor ahogy mondtad ez mindig 16 bit. Az első 8 bittel határozom meg milyen adat jön, a második 8 bit meg a beállítás/adat. Ezzel állítom be a modult minden alkalommal amikor üzembe helyezem. Adatlapon fent van minden beállítás, ez a rész tiszta. Az adat küldéskor mindig "B8yy"-metódussal megy, azaz ha akarok küldeni több adatot akkor pl.: B8AA, B8AA, B8AA, B82D, B8D4, B8yy, B8xx, stb... Ha küldök akkor sorban először AA, AA, AA - ezek a szinkronizáláshoz kellenek ; 2D, D4 - azonosítók ; Küldendő adatok ; küldött adatok ellenőrző byte-ja (ezzel ellenőrzöm majd a fogadó oldalon hogy a kapott adatokból semmi nem veszett el) ; AA, AA (az utolsó két AA mire kell?) Ha megjött a 16. bit akkor NIRQ alacsonyra vált ezzel jelez ha jól értem? Ezután visszavált logikai 1 re ás mehet a következő 16 bit? Amit írtál a PIC ből való küldés a modulnak ez ha jól értem, kommentekben kérdezek
Olyat írtál kommentben hogy SDO_ láb jelzi ha mehet a következő bit. Ez miként van? Ha jól értettem a programot, vizsgálom a SDO_ lábat és ha logikai 1 van rajta akkor mehet a következő bit. Én úgy értelmeztem a metodikát hogy: SCK_ láb logikai 0-án van / SDI_ lábra kiteszem a küldendő bit-et. / SCK_ lábat logiaki 1 re váltom, ezzel a modul olvassa az SDI_ értékét és tölti fifo-ba / ekkor a SDO_ lábon még logikai 0 van. / modul feldolgozta a SDI_ lábról a bitett és SDO_ felé logikai 1 et jelez/ ekkor SCK_-t 0-ra állítom, akkor SDO_ is visszavált logikai 0-ra / folytatom a következő bittel / 16. bit után jelez a NIRQ láb hogy megjött a 16. bit és megy a küldés. Van olyan parancs, kell e használni ami fifo-t kiüríti? Köszönöm előre is, ha ezt már átlátom akkor jön a fogadás.
Szia!
Először is a modul adatlapját nézd meg, különösen a küldhető parancsoknál! FIFO igen regiszter, file input file output . A modulnak mindig 16 bites parancs megy ki.Ha adás üzemmódban vagy akkor 1byte kivitele a Transmitter Register Write paranccsal történik, ami áll a 0x B8yy 16 bites parancsból az yy a 8bites adat. Fogadáskor az NIRQ láb jelez, ha megtelt a fifo kiolvasható az adat (beprogramozható 1-16 bit ig, hogy mikor jelezzen) NSEL : folyamatos küldési üzemmód is van, de nem küldheted el a parancsot, csak ha azt tudja fogadni a modul (SDO polling vagy NIRQ) SPI adatátvitel :eddig nem foglalkoztam vele. Igen minden parancs az olvasási parancs is CLK és SDI -n keresztül megy, azonban az olvasási parancs igazából 8 bites, a másik 8 órajel alatt már érkezik is sorban a 8 bit az SDO lábon. Az NIRQ láb csak kérelmet jelez, ha a fifo megtelt, illetve adáskor kéri a következő adatot. (adáskor inkább az sdo polling-ot használja a gyári példa progi) Akár megszakításra is felhasználható (sőt...) A hozzászólás módosítva: Feb 19, 2014
Sziasztok,
El tudnátok mondani részletesen hogy is megy ez az adat átvitel a PIC és a modul között? Vagy egy forrást ahol utána tudok részletesebben olvasni? Elolvastam az oldalon lévő anyagokat, fórum topic-okat amiket ezzel kapcsolatban találtam de nem tiszta még mindig. Kérdeznék sorban akkor? A fifo tulajdonképpen micsoda? Ha jól vettem ki egy adatregiszter, ami jelen esetben 16 bites és a modulban van. Küldéskor ebbe töltjük bele az adatokat és ezt küldi ki, fogadáskor ebbe jön az adat és ezt olvassuk ki. Ezt jól értem? NSEL az azt hiszem tiszta, ha logikai 0 van akkor használom a modult, ha épp nem használom akkor logikai 1? Folyamatosan küldök adatokat akkor folyamatosan logikai 0 van? SPI adatátvitel hogy működik itt, mert még mindig nem tiszta. Olyasmit szűrtem le hogy 2x8 bitet küldök a modulnak amit a SCK lábon órajellel vezérelve bitenként adom át a modulba ami a fifo-ba forog bele? Nagyon nem tiszta ez nekem. ![]() A modul beállítása is SDI lábon keresztül történik, és az adatküldés is? "NIRQ láb alacsonyra vált ha a küldés befejeződött". Alapból ez logikai 1 en van? Ha elküldte az adatot akkor logika 0 ra vált majd vissza 1 re? Ezt meg megszakításra használható fel? Köszönöm a segítséget és elnézést ha fárasztó vagyok.
Szia!
Alapvetően 5 lábbal kell foglalkozni. SDI SCK SDO már adott. NSEL : logikailag alacsony az aktív szint, és a modul kiválasztására való! Mivel az sck és sdi lehet párhuzamosan más perifériák működtető jele is , a modul csak az nsel alacsony szintjén reagál rá. NIRQ láb adáskor és vételkor is jelez, ha a modul tudja fogadni a következő byte-ot, illetve a fifo-ban van már annyi beérkezett bit ami az initben meg lett adva. Lehetőség van a modul Status regiszterét is kiolvasni, ekkor a 0 parancsot kell kiadni, illetve mindegy hogy milyen szám megy parancsnak, ha az első bit nulla.Status beolvasásakor az első beérkező bit ha 1 akkor küldhető az adat... A többi láb nem használatos, ha nem egyedi üzemmódot akarsz beállítani, NRES resetláb, belsó ellenállással felhúzva, nem kell vele foglalkozni. A másik pedig,hogy a PIC belső rc oszcillátora nagyságrenddel rosszabb, mint egy kvarcoszcillátorról kapott jel. A hozzászólás módosítva: Feb 17, 2014
|
Bejelentkezés
Hirdetés |



, mert nem biztos, de nekem megy... szóval talán inkább érdemes figyelni, hogy ne a földbe forraszd az antennát, hanem a balunra. Igaz?!

