Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   1 / 12
(#) Pali79 válasza pucuka hozzászólására (») Márc 23, 2019
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.
(#) pucuka válasza Pali79 hozzászólására (») Márc 22, 2019
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
(#) Pali79 válasza pucuka hozzászólására (») Márc 22, 2019
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?
(#) pucuka válasza Pali79 hozzászólására (») Márc 22, 2019
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.
(#) Pali79 válasza pucuka hozzászólására (») Márc 22, 2019
Hmmm. Az nem a két modul közti átviteli sebesség?
(#) pucuka válasza Pali79 hozzászólására (») Márc 22, 2019
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.
(#) Pali79 hozzászólása Márc 22, 2019
Sziasztok!
Látom jó rég nem írt ide senki... Nem tudja valaki, hogy ennek a modulnak milyen sebességen tud dolgozni az SPI?
(#) foxi63 hozzászólása Okt 17, 2015
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

RFM12_ASM.ZIP
    
(#) pucuka válasza foxi63 hozzászólására (») Okt 16, 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".
(#) foxi63 hozzászólása Okt 16, 2015
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.
(#) pucuka válasza Droot hozzászólására (») Szept 18, 2014
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.
(#) Droot válasza pucuka hozzászólására (») Szept 18, 2014
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á?
(#) pucuka válasza Droot hozzászólására (») Szept 17, 2014
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.
(#) Droot hozzászólása Szept 17, 2014
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 )
(#) k3gy3tl3n válasza yety hozzászólására (») Jún 20, 2014
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.
(#) yety válasza Pet91 hozzászólására (») Máj 12, 2014
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!
(#) Pet91 hozzászólása Ápr 27, 2014
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
(#) Pet91 válasza foxi63 hozzászólására (») Ápr 22, 2014
Köszönöm szépen
(#) foxi63 hozzászólása Ápr 22, 2014
Hali!
Itt a C verzió:

rfm12b.c
    
(#) foxi63 válasza Hilo hozzászólására (») Márc 5, 2014
Szia!
Sajnos én csak SMD modult használok, ott ilyen gond nincs...
A hozzászólás módosítva: Márc 5, 2014
(#) Hilo hozzászólása 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!
(#) Hilo válasza foxi63 hozzászólására (») Feb 27, 2014
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.
(#) foxi63 válasza Hilo hozzászólására (») Feb 27, 2014
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
(#) Hilo hozzászólása Feb 27, 2014
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!
(#) Hilo válasza foxi63 hozzászólására (») Feb 21, 2014
Szia, akkor újra nekifutok.
FIFO-ba adatot a következő metodikával adok át:
  1. SCK_ - 0
  2. NSEL - 0
  3. 16 x {
  4. SDI_ -0 vagy 1 küldendő bit értékének függvényében
  5. SCK_ - 1
  6. SCK_ - 0
  7. } SDI_ értéket forgatással cserélem
  8. NSEL - 1

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!
(#) foxi63 válasza Hilo hozzászólására (») Feb 20, 2014
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.
(#) Hilo válasza foxi63 hozzászólására (») Feb 20, 2014
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
  1. WRITECMD:
  2. BCF SCK_ ; léptetőjel logikai 0-ra
  3. BCF NSEL ;modul aktiválása
  4. MOVLW .16
  5. MOVWF COUNT1 ;számlálóba 16
  6. W00:
  7. BCF SDI_ ; kimeneti érték logikai 0-ra
  8. BTFSC ADATH,7 ;SDI_ logikai 1 lesz ha az ADATH, 7 bit 1-es
  9. BSF SDI_
  10. BSF SCK_ ;léptetőjel logikai 1-ra (1 bitnyi adat SDI_ lábról ekkor megy át modulba)
  11. NOP ;vár
  12. RLF ADATL,F ;forgatás
  13. RLF ADATH,F ;forgatás
  14. BCF SCK_ ;léptetőjel logikai 0-ra
  15. NOP ;vár
  16. DECFSZ COUNT1 ;ha mind a 16 bit elment akkor kilép a ciklusból
  17. GOTO W00
  18. BSF NSEL  ;modul deaktiválása
  19. RETURN

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.
(#) foxi63 válasza Hilo hozzászólására (») Feb 19, 2014
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

RFM12B.pdf
    
(#) Hilo válasza foxi63 hozzászólására (») 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.
(#) foxi63 válasza Hilo hozzászólására (») Feb 17, 2014
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
Következő: »»   1 / 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