Fórum témák

» Több friss téma
Fórum » LT8920, XY-WA/B Arduinóval
 
Témaindító: RangerHU34, idő: Okt 2, 2020
Témakörök:
Lapozás: OK   1 / 1
(#) RangerHU34 hozzászólása Okt 2, 2020 /
 
Sziasztok, ahogy a címből is adódik az LT8920-as adó-vevő modulról és annak Arduinóval való használatáról lenne szó. Ha valaki találkozott már ezzel a modullal és működésre bírta (lehetőleg arduinóval), akkor azt megköszönném, ha megosztaná itt, mert nekem fogalmam sincs, hog hogy kéne. Két dolgot találtam több órányi kutatás után. Az egyik az LT8900/10/20-as könyvtárak és az azokhoz tartozó teszt kódok a github-on, a másik egy arduino fórumon lévő téma, ahol az egyik hozzászólás is arról szólt, hogy nem tudja az illető, hogy működik a modul. Ha valaki esetleg tud külföldi fórumot ahol ez a téma van boncolgatva nekem az a link is jó.

A válaszokat előre is köszönöm.
(#) vargham válasza RangerHU34 hozzászólására (») Okt 3, 2020 /
 
Meddig jutottál el? Bekötötted? I2C vagy SPI? Kérdésre válaszol?
(#) RangerHU34 válasza vargham hozzászólására (») Okt 3, 2020 /
 
Összekötöttem SPI szerint, de igazából csak úgy, hogy amit a kódból meg tudtam fejteni, mert kapcsolási rajzot sehol nem találtam. A Serial-ban meg olyan hibák jöttek elő, hogy "CRC is error" meg, hogy "Packet Read Fail". Amiket tudom nagyjából, hogy mit jelentenek, csak miután fogalmam sincs, hogy valóban jól van-e össze kötve (a nem létező kapcs. rajz miatt), így azt sem tudom, hogy mi okozza ezeket.
(#) xaint hozzászólása Hé, 18:36 /
 
Sziasztok!

Én is beszereztem a címben említett modulokból.

Én a HESTORE-ból rendeltem (https://www.hestore.hu/prod_10040713.html), ahol egyébként van pinout diagram, és az a GitHub-os forráskód amit gondolom ti is próbáltatok működésre bírni.

Összekötni a kettőt egyszerűen úgy kell, hogy megnézed az Arduino-d (pl UNO) lábkiosztását, és az SPI lábait összekötöd az XY-WA modullal.

Amire figyelni kell, hogy az XY-WA transmitter 3.3 voltos (max: +3.7V), és a data pin-eknél sem említi az adatlap, hogy 5V toleráns lenne, ezért ha 5V-os az Arduino-d, szükség van level shifter-re. (megjegyzem: az egyik modult a fejlesztés idejére, ami kb 1-2 óra volt, én is szintillesztő nélkül használtam, tehát az adat lábak 5V-os jelet kaptak és kibírták, de ugye erre abszolut nincs garancia)

Na szóval ami kell, hogy a fenti példakód működjön, az az, hogy az SPI inicializálást kicserélitek a példakódok elején, mert az már nem valid.

Tehát ezt:
  1. SPI.begin();
  2. SPI.setBitOrder(MSBFIRST);
  3. SPI.setClockDivider(SPI_CLOCK_DIV64);


Erre:
  1. SPI.begin();
  2. SPI.beginTransaction(SPISettings(250000, MSBFIRST, SPI_MODE2));


Ekkor elvileg már nem CRC ERROR-t kell kapj.

Így teszteltem, és az alap 1MBPS sebességgel, szabadtéren, úgy, hogy néhány faág, meg gally azért útban volt, ~180 méter hatótávot tudott. Már ez sem annyira rossz (tekintve az áramfelvételt), de engem jobban idegesített, hogy sehogy sem tudtam lassabb kommunikációra bírni. Mert mondjuk 62KBPS sebességen még nagyobb hatótáv érhető el. (Még a GitHub-os forrás leírásában is írja a szerző, hogy: Note: Data rate may have issues when setting other value than 1Mbps., de tudtam, hogy ennek működnie kell)

Végül az egyik, azt hiszem ebay-es eladónál a termék leírásában találtam rá arra a fontos sorra, amire a chip datasheet-jében sem, hogy 1MBPS-nél kisebb sebességnél a SYNCWORD_LEN maximum 32bit lehet.

Ma ezt átállítva működött a leglassabb sebességgel is, de távolságtesztet még nem csináltam.

Remélem tudtam segíteni!
A hozzászólás módosítva: Hé, 18:37
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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