Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 sty 2025, o 08:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 32 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 27 kwi 2014, o 13:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Sporo różnistych RFM'ów jest na rynku. Duża część już nie produkowana schodzi już ze stanów magazynowych i powstaje problem co wybrać.
Założenie z grubsza jest takie - centralka która co jakiś czas odpytuje kilka rozproszonych po domu czujników o dane i wystawia to w czytelnej formie na LCD/www.
Jakiego teraz transceivera użyć żebym mając książkę Mirka podołał w uruchomieniu tego? Początkowo zakładałem pójście na łatwiznę i użycie RFM12, ale czy jest sens pchać się w starocie?

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 13:53 

Pomógł: 0

Musisz sobie zadać pytanie czy dać coś sprawdzonego czy przyszłościowego, sam odszedłem od modułów RFM na rzecz wifi, co prawda cena jest znacznie wyższa, ale implementacja przyjemniejsza, a zasięg większy, oraz dużo większe możliwości przesyłu danych.

Zobacz u samego źródła czyli http://www.hoperf.com/rf/fsk_module/
Wybór masz spory i nie ma co liczyć że time to life będzie trwał wieczność ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Wiesz... przydało by się adresowanie i WakeOnRadio czego rfm12 nie posiada.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Wszystko zależy od potrzeb. Ja używam RFM73 i nie narzekam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 19:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Jak z zasięgiem wewnątrz budynku?
Bo mam do pokonania dwa stropy i blaszany dach w jedną stronę i pewnie z metr (w sumie) ceglanej ściany w drugą i obawiam się, że 2.4G może mieć z tym problemy.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 19:42 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

RFM69CW ma to co potrzebujesz:
- Listen Mode - oszczędzanie energii
- SyncWord - jako adres sieci 8 bajtów
- NodeAddress - adres w sieci 1 bajt
- BroadcastAddress - adres rozgłoszeniowy 1 bajt
i coś jeszcze:
- DC-Free Data Mechanisms (jak mogłeś sobie wyczytać w zielonej książce Mirka to nadawanie przykładowo samych zer kładzie komunikacje, bo układ ARW traci synchronizację)
- CRC - nie trzeba tego robić na piechotę
- AES - szyfrowanie ramek

Jest zgodny pinowo z RFM12B w obudowie SMD, a w razie czego jest jeszcze mocniejsza wersja RFM69HCW.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 20:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Miło... przyjrzę się temu :)

Migracja z RFM12B do RFM69CW

Edit @ 29.04.2014:
Dzisiaj kurier przyniósł kilka sztuk RFM69CW... "będzie zabawa, będzie się działo..."

Jakby ktoś miał już jakieś zręby biblioteki i zechciał się podzielić to będzie mi bardzo miło.
Póki co staram się przeanalizować TO

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2014, o 21:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

No i zacząłem przeportowywać podaną wyżej ("TO") bibliotekę na AVR... Ciekawe czy coś mi z tego wyjdzie...(?)

Edit @ 01:41 - Narazie wiesza się na init :evil:

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2014, o 23:40 
Offline
Nowy

Dołączył(a): 05 maja 2014
Posty: 1
Pomógł: 0

przerobienie tej biblioteki na AVR nie jest specjalnie trudne - zacznij od zamiany klasy na strukturę (te same parametry) i pozmieniaj tylko referencje w funkcjach ;)
trzeba też przerobić wszystkie metody Arduinowe niestety, no i bool na uint8_t. Oprócz tego uruchomienie przerwania którym będziemy obsługiwali DIO0 z tej biblioteki.

Zabrałem się za RFM69HCW jakiś czas temu, udało mi się w ten weekend uruchomić komunikację między dwoma modułami ale biblioteka jest "porozwalana" i w powijakach. I tylko sztywne Rx, Tx, bez Listen Mode. Jak ogarnę lepiej to mogę się podzielić gdyby się nie udało ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2014, o 09:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Udało się dogadać z RFM69 - czyta rejestry. Init przechodzi nawet.
Trzeba zobaczyć w tym ich kocim datasheecie co dalej żeby ustawić konkretną częstotliwość i nadawać/odbierać...

_________________
Czekamy na RedBook'a!



Ostatnio edytowano 7 maja 2014, o 14:26 przez szopler, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2014, o 13:14 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

to podobno to samo,
tu jest wiele materiałów dla znających się na rzeczy, czyli nie dla mnie :(

http://www.semtech.com/wireless-rf/rf-t ... rs/sx1231/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2014, o 21:52 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

szopler napisał(a):
Trzeba zobaczyć w tym ich kocim datasheecie co dalej żeby ustawić konkretną częstotliwość i nadawać/odbierać...

Moduły są produkowane na różne pasma. Ustawianie częstotliwości może wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Moduł konfiguruje się wysyłając tablice złożone z rejestru i wartości do wpisania:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wspomagając się zieloną książką Mirka można sobie w końcu przygotować uniwersalne funkcje do wysyłania i odbioru:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W pliku main powinno się znaleźć:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W konfiguracji należy ustawić odpowiednie adresy i potem się ich trzymać. Tu też można posłużyć się tablicą i odpowiednią funkcją:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 28 maja 2014, o 18:04 przez Krauser, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2014, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Pasmo 868MHz to kilka-naście częstotliwości... od 860.48 do 879.54 MHz.
Dobrze, że podałeś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dla (przykładowo) 862.00MHz będzie FRF = 14123008... tej informacji mi m.in brakowało.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 maja 2014, o 21:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Siedzę cały dzień dzisiaj nad tym i niestety bez rezultatów :(

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2014, o 19:29 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Na początek w funkcji RFM69_Send można sobie wstawić adres rozgłoszeniowy (BroadcastAddress), wtedy kod obu urządzeń jest identyczny. Byłoby fajnie jakbyś opublikował plik main.c z konfiguracją przerwań i timera.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2014, o 21:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Obecnie walczę z USI w ATtiny4313 i chyba udało mi się zmusić go do pracy jako SPI (Uwaga dla początkujących: MOSI w USI to DataIN / MISO - DataOUT).
Poprzednio próbowałem software SPI, ale średnio to chodziło chyba ;). Pokombinuję nieco jeszcze zanim wrzucę tu main.c :)

Pewnie średnio poprawne (jak ktoś ulepszy/poprawi to będę wdzięczny) - USI jako SPI Master:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Coś się złego dzieje z tymi modułami na stykówce... dwa już odpowiadają zerem :(, albo mi SPI na M644P źle działa, ale w takie cuda to nie uwierzę.

_________________
Czekamy na RedBook'a!



Ostatnio edytowano 21 maja 2014, o 09:22 przez szopler, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2014, o 12:20 

Pomógł: 0

Można przecież podejrzeć po kompilacji jak wygląda kod asm w pliku .lss



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2014, o 14:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Jest jakaś szansa zablokowania tych modułów na amen? Bo albo mi się uszkodziły (w sumie z niewiadomych powodów - stykówka i konwerter poziomów na 2x ADuM1402), albo jakoś zablokowały.
Dwa mają permanentny stan niski na MISO... jak próbuję odczytać dowolny rejestr to cały czas na analizatorze Saleae dostaję 0x00 w odpowiedzi :/
Sam konwerter poziomów sprawny bo jak odłączę moduł i zewrę linię MISO z MOSI po stronie 3V to odbieram to co wysyłam.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2014, o 19:27 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Brakuje ci w kodzie sterowania CS. Jak ten pin jest w stanie wysokim to moduł RFM69 ustawia wyjście MISO w stan wysokiej impedancji i dlatego odczytujesz 0. Taki stan łatwo rozpoznać woltomierzem. Jak mierzysz pomiędzy MISO i GND masz 0V i pomiędzy VCC i MISO też masz 0V.
Zwracam jeszcze uwagę na sterowanie CS. Do współpracy z modułem CS zerujesz, wysyłasz 2 bajty i dopiero ustawiasz na 1. Przykład jest w funkcji RFM69_write.
Nop'y nie są potrzebne, bo moduł ma szybkie SPI. FSCK maksymalnie 10MHz. Atmel udostępnia gotową bibliotekę AVR319, która się dobrze nadaje, bo pinem SS/CS trzeba dodatkowo sterować.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2014, o 08:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

CSem akurat steruję ręcznie...

Chyba się wyjaśniło :). Mam porąbane funkcje SPI / USI.
Mam coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I różne rezultaty na SPI vs USI :D

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


SPI (M644P, wysyłanie 0x00 w spi_rx):
Obrazek
USI (t4313):
Obrazek


OMG... znalazłem błąd sprzętowy - przerwa w ścieżce/niedolut. I to tak perfidnie, że na VCC przy samym padzie - ilość prądu jaką dostawał po portach wystarczała na sensowne odpowiedzi po SPI ale nie na nadawanie/odbiór.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2014, o 17:48 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Poprawne funkcje zapisu i odczytu dla RFM69, przy wpisywaniu ważne jest ustawienie MSB adresu na 1 (przy okazji update powyżej):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W celu odbioru też należy wysłać 2 bajty. Pierwszy to adres, a drugi jest dowolny, ale dopiero po jego wysłaniu w rejestrze odbiorczym ląduje wartość rejestru RFM69.

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 28 maja 2014, o 18:00 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2014, o 22:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Doszedłem już do tego :). Działa!
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2014, o 07:18 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

BRAWO!!!

a może pokusilibyście się napisać jakiś krótki kursik z miganiem diody:

"Jak podłączyć i uruchomić RFM69"

bo Wasze wywody są dla mnie za mądre :(
wdzięczność moja byłaby wielka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2014, o 14:43 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 2
Pomógł: 0

Witam wszystkich forumowiczów :)
Próbuję zaimplementować całość do atmeg 168, mam problem z odczytem w urządzeniu odbiorczym. Układ nadawczy ma cyklicznie wysyłać dane do odbiornika. Po analizie z oscyloskopem wygląda na to, że jest przerwanie na wyprowadzeniu DIO2 (FifoNotEmpty) w trakcie wysylania i pojawia się sygnał na wyjściu antenowym (wiem że częstotliwość przekracza możliwości oscyloskopu, ale coś się zmienia więc zakładam, że uklada nadawczy działa :) )
Problem mam po stronie odbiornika tzn. nie pojawia się przerwanie na wyprowadzeniu DIO0 (PayloadReady), ani na DIO2. Czym to może być spowodowane ?

Poniżej zamieszczam listingi do programu:

Kod nadajnika:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod odbiornika:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 28 maja 2014, o 13:25 przez michaak, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2014, o 18:57 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W kodzie odbiornika linia RFM69_Rx(); powinna być w "ciele" funkcji main za RFM69_Config();, bo teraz to odbiornik jest w trybie standby

Jak nie korzystamy z przerwań to kod funkcji main nadajnika może wyglądać na przykład tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a odbiornika tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 10:31 
Offline
Nowy

Dołączył(a): 26 maja 2014
Posty: 2
Pomógł: 0

Wyglada na to, że odbiornik się zwiesza w trakcie wykonywania address = RFM69_read(RegFifo);
- czyli po drugim odczycie.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie miałem czasu się wgłębiać dlaczego poprzednia funkcja się zawiesza, ale gdy zmieniłem funkcję RFM69_Read(uint8_t * data) na tą od Szoplera to wszystko zaczęło działać.

Podziękowania dla Krauser'a za cenne fragmenty kodu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 17:58 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Było o jeden while za dużo. Flaga SPIF jest zerowana po odczycie rejestru SPSR i następującej po nim operacji na rejestrze SPDR. Kolejny update.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2014, o 17:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Teraz usiłuję skorzystać z listen mode...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teoretycznie teraz jak wyłapie pakiet spełniający warunki to go odbierze, a wygląda jakby nic nie odebrał bo brak reakcji.
Jak ustawię na odbiór to jest OK.

Edit:
Ustawiłem większą wartość dla ListenResolRx bo pewnie przy domyślnych 64us przy niskim baudrate (2400bps) nie nadążał odbierać bajtów synchronizacji przed przejściem z powrotem w Idle.
Jednak na otrzymaną komendę brak odpowiedzi...

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Edit2:
Stworzyłem funkcję:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I zmieniłem w RFM69_Send...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I wygląda na to że działa choć zdarzają się błędy w odbiorze np. wysyłam komendę "GiveVolt", a dochodzi "GiveVol".

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2014, o 20:59 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Nie lepiej sobie dodać parę bitów:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wtedy konfiguracja wygląda prościej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wyłączenie ListenMode powinno być po odebraniu ramki czyli w kodzie przerwania. Wciskanie tego do RFM69_Send jest dziwne moim zdaniem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przy domyślnych mnożnikach i rozdzielczościach 4.1ms wyjdzie 131,2ms odbioru i 1,0045s stanu Idle. Wypadałoby ustawić nadajnik, aby wysyłał ramkę co 100ms, a odbiornik musi wysłać odpowiedź zanim nadajnik zacznie nadawać kolejną ramkę, bo moduł w stanie nadawania nic nie odbierze. Jest też inna technika, gdzie okres wysyłania jest równy stanowi Idle (ale nie sumie stanu odbioru i Idle) wtedy przy czasach dobranych jak opisano raz na 10 wysłanych ramek jedna dotrze do odbiornika, a on będzie miał dużo czasu na odesłanie odpowiedzi. Błędy w odbiorze są niemożliwe skoro jest CRC. Możesz to dokładniej opisać? Co nadajesz i co robisz z odebraną ramką?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2014, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Nadajnik: co 1s wysyła "GiveVolt" na adres odbiornika.
Odbiornik po odebraniu ramki wyrzuca buffer na UART@38400bps, parsuje go - jedno proste strncmp() i odsyła odpowiedź - wartość napięcia.

W main.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 32 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO